blob: a5e89808d8a8a172fdab5e52adf1781b729b7991 [file] [log] [blame] [view] [edit]
# Cros SDK Server
## About
The SDK Server provides a user interface for many Build API, cros, and repo commands with the overall goal of managing a single chroot, intended to make the average ChromeOS developer workflow simpler.
## Running the SDK Server
To run the SDK server simply run the sdk_server symlink found in chromite/contrib/sdk_server. This will start both the grpc server and the web server. To close the server simply kill the process using CTRL+C. In the future well add functionality for the server to be run as a cros command.
## Features
- Chroot Information, including
- Date chroot was created
- Date last updated
- Path to Chroot
- Chroot Version
- Menus for calling a few Build API endpoints which support the options defined in their request protos. These endpoints include:
- SdkService/Update
- SdkService/Create
- SdkService/Delete
- ImageService/Create
- A Build Packages menu, which works by running the three Build API endpoints:
- SysrootService/Create - through build packages
- SysrootService/InstallToolchain - through build packages
- SysrootService/InstallPackages - through build packages
- Endpoints that are listed by the MethodService/Get endpoint are callable by writing custom protos in JSON format (via the Custom menu)
- All above features produce logs that can be toggled and viewed on the dashboard. A history is stored which can be cleared.
- Support for cros_workon commands, including
- Listing all working packages per board
- Options to build individual packages
- A button to stop workon on any package
- Info modals (which display the results of cros workon info) per package
- An Add Packages menu to begin working on any package
- Repo interactions, including
- A panel displaying the output from repo status (relevant files and their
- statuses in the staging area, working directory, etc.)
- A repo sync button
## Future Work
- An integrated bug reporting tool, allowing users to easily upload bugs with stored log information via a Buganizer API
- Ensure that running commands are logged if the server is interrupted
- Modify to use gRPC web, rather than route everything through Python/Flask
- Implementing dedicated cros flash/deploy endpoints
- Expand functionality to handle multiple chroots/branching, in alignment with the goals of go/cros-sdk-server