tree: 83133bc04d9bead8bd3b1faa1320871861a25300 [path history] [tgz]
  1. auth_service/
  2. components/
  3. config_service/
  4. samplepy3/
  5. swarming/
  6. third_party/
  7. ui/


This directory contains the AppEngine services needed for a LUCI infrastructure.

Every single microservice below is optional. Please mix and match based on your needs.



  • auth_service/ Authorization Server. Provides centralized group management and group database replication across services.
  • config_service/ is a project configuration distribution server that supports importing from repositories.
  • isolate/ Isolate Server is a Content-Addressed Cache running on AppEngine backed by Cloud Storage.
  • swarming/ Swarming Server is a task distribution engine for highly hetegeneous fleet at high scale.

Supporting code

  • components/ contains the modules shared by all services in this repository. This includes the embeddable part of auth_service to act as a client for auth_service, ereporter2, tooling for testing and deployment.
  • third_party/ contains shared third parties. Services using these should symlink the packages inside the root server directory so it becomes available in sys.path.
  • third_party_local/ constains testing or tooling related third parties that are not meant to be ever used on a AppEngine server.


All services can be managed with ./tools/gae, including running locally or pushing a new version. Use ./tools/gae help for an up to date list of commands available.


Pushing new code to an AppEngine instance doesn't change the default version.

To push a new version of one of the services, do:

cd <server> # for example, config_service
./tools/gae upload -A <instance_name>

As described in the output by the tool, you can access it to <version>-dot-<name> until you switch the default version.

Changing the version

To make the new code live, you need to change the default version:

cd <server> # for example, config_service
./tools/gae switch -A <instance_name>

gae will propose the versions already uploaded and will propose the latest one by default.

External dependencies

luci-py leverages Chromium specific functionalities: CIPD (hermetic package management) and ts_mon (monitoring). Neither are strictly required for operational purpose.