Overview
A service account is a non-human identity for CI and integrations. Tokens start withshipd_sa_, are shown once, and can be scoped, bound to a project/environment, expired, and revoked.
Prefer this over a personal management key (shipd_mgmt_) for GitHub Actions and other integrations.
Steps
1
Create the account
Dashboard → Settings → Service accounts → Create service account. Name it after the job, e.g.
github-actions.2
Mint a token
Open the account. Create token. Pick the smallest scopes the job needs. Every
shipd push needs flag:update; add flag:create for additions, flag:archive with --prune, flag_state:update for non-production default-only changes, and flag_production:toggle for production, definition changes, or additions. Bind it to web-app at the project level when the job creates or changes flag definitions. Environment-bound tokens are for environment-only reads and state operations. Optionally set an expiry.3
Use it in CI
--project and --env are required.5 and reports the queued request instead of claiming that change is live. See Review production changes.
Related: Service account tokens · Sync flags in CI · SDK keys, management API keys, and service account tokens.