Skip to content

docs: document Google Cloud service-account auth (API + registry)#25

Merged
acoshift merged 2 commits into
mainfrom
registry-gcp-sa-auth
Jun 17, 2026
Merged

docs: document Google Cloud service-account auth (API + registry)#25
acoshift merged 2 commits into
mainfrom
registry-gcp-sa-auth

Conversation

@acoshift

@acoshift acoshift commented Jun 17, 2026

Copy link
Copy Markdown
Member

What

Document authenticating to deploys.app with a Google Cloud service account — no deploys.app key needed — across the three auth surfaces:

  • API overview (content/api/overview.md) — pass a Google Cloud SA access token as Authorization: Bearer.
  • Registry overview (content/registry/overview.md) — docker login registry.deploys.app -u oauth2accesstoken -p <access-token>.
  • CLI (content/automation/cli.md) — put a SA access token in DEPLOYS_TOKEN (with a gcloud auth print-access-token --scopes=…userinfo.email example).

All three note the two requirements:

  1. The access token must carry the userinfo.email scope — deploys.app identifies the caller by the token's email; a cloud-platform-only token is rejected as unauthorized.
  2. The SA email (<name>@<project>.iam.gserviceaccount.com) must be granted the needed permissions / registry.push/registry.pull via Roles.

The CLI and registry sections cross-link the API section as the canonical reference.

Why

This is the non-obvious auth path we used to push the CLI image from CI (deploys#21) — it applies to the whole API, the registry, and the CLI, so all three are now documented.

Verified: /access/roles/ + /access/service-accounts/ pages exist; registry.push/registry.pull are the real permission strings; the CLI's DEPLOYS_TOKEN is sent as a Bearer token (so a Google access token works), while its ADC fallback mints tokens without an explicit scope — hence the docs steer the SA path through DEPLOYS_TOKEN.

🤖 Generated with Claude Code

Add a subsection on authenticating to registry.deploys.app with a Google Cloud
service account: log in with `oauth2accesstoken` + a short-lived access token,
which must carry the userinfo.email scope (the registry resolves the caller's
identity from the token's email), and grant the SA email a role with
registry.push/registry.pull on the project. Includes a GitHub Actions snippet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@deploys-app deploys-app Bot temporarily deployed to pr-25 June 17, 2026 03:32 Destroyed
@deploys-app

deploys-app Bot commented Jun 17, 2026

Copy link
Copy Markdown

Preview deleted (PR closed).

The API accepts a Google Cloud SA access token as the bearer token (not just the
registry). Document it in the API overview's Authentication section: the token
needs the userinfo.email scope and the SA email must be granted the required
permissions; cross-link the registry section.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@acoshift acoshift changed the title registry: document Google Cloud service-account auth docs: document Google Cloud service-account auth (API + registry) Jun 17, 2026
@acoshift acoshift merged commit 0529359 into main Jun 17, 2026
1 check passed
@acoshift acoshift deleted the registry-gcp-sa-auth branch June 17, 2026 05:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant