README

The Token Server

The token server is responsible for minting short-lived (<1 hour) stateless access tokens for Swarming bots. It uses PKI to authenticate bots.

Code layout:

  • frontend, backend - entry points for GAE service binaries.
  • devcfg - luci-config config files when running locally.
  • impl - the root package with all implementation guts.

Directories

Path Synopsis
Binary backend implements HTTP server that handles requests to 'backend' module.
Binary backend implements HTTP server that handles requests to 'backend' module.
Binary frontend implements HTTP server that handles requests to 'default' module.
Binary frontend implements HTTP server that handles requests to 'default' module.
Package impl holds code to initialize the server environment.
Package impl holds code to initialize the server environment.
certchecker
Package certchecker contains implementation of CertChecker.
Package certchecker contains implementation of CertChecker.
certconfig
Package certconfig contains code to work with imported CAs and their CRLs.
Package certconfig contains code to work with imported CAs and their CRLs.
machinetoken
Package machinetoken implements generation of LUCI machine tokens.
Package machinetoken implements generation of LUCI machine tokens.
serviceaccountsv2
Package serviceaccountsv2 implements MintServiceAccountToken RPC.
Package serviceaccountsv2 implements MintServiceAccountToken RPC.
services/admin/adminsrv
Package adminsrv implements Admin API.
Package adminsrv implements Admin API.
services/admin/certauthorities
Package certauthorities implements CertificateAuthorities API.
Package certauthorities implements CertificateAuthorities API.
services/minter/tokenminter
Package tokenminter implements TokenMinter API.
Package tokenminter implements TokenMinter API.
utils
Package utils contains a variety of small utility functions used by other tokenserver packages.
Package utils contains a variety of small utility functions used by other tokenserver packages.
utils/bq
Package bq contains helpers for uploading rows to BigQuery.
Package bq contains helpers for uploading rows to BigQuery.
utils/identityset
Package identityset implements a set-like structure for identity.Identity.
Package identityset implements a set-like structure for identity.Identity.
utils/policy
Package policy contains implementation of Policy parsing and querying.
Package policy contains implementation of Policy parsing and querying.
utils/revocation
Package revocation contains utilities for implementing token revocation.
Package revocation contains utilities for implementing token revocation.
utils/shards
Package shards provides a low level support for implementing sharded set of []byte blobs.
Package shards provides a low level support for implementing sharded set of []byte blobs.
utils/tokensigning
Package tokensigning implements utilities for RSA-signing of proto messages.
Package tokensigning implements utilities for RSA-signing of proto messages.