Skip to content

docs: cover undocumented API features and fix inaccuracies#22

Merged
acoshift merged 2 commits into
mainfrom
docs-feature-coverage
Jun 16, 2026
Merged

docs: cover undocumented API features and fix inaccuracies#22
acoshift merged 2 commits into
mainfrom
docs-feature-coverage

Conversation

@acoshift

@acoshift acoshift commented Jun 16, 2026

Copy link
Copy Markdown
Member

Audits the docs against the api repo's interface contract (and apiserver enforcement) and closes the user-facing gaps, while correcting several factual errors. Every claim was traced to source before writing.

New coverage

  • WAF rate limiting (networking/waf.md) — a whole shipped feature that was absent: limits, bucket keys (ip/host/asn/country/header/cookie), window/algorithm/mode/status/filter, the 20-limit cap, shadow-mode rollout, and waf.limitMetrics.
  • GitHub (api/conventions.md) — new catalog section for github.link/unlink/update/list, plus a note on the OIDC exchangeToken/notify path; also added cache.*, waf.limitMetrics, and email.send rows.
  • Project observability (access/projects.md) — project.metrics and project.storageMetrics time-series.
  • Disk metrics (storage/disks.md) — disk.metrics (usage + size).
  • Registry (registry/overview.md) — registry.get / getProjectStorage / metrics API examples.
  • Cache (networking/cache.md) — priority and mode field bullets (rest was already covered).

Corrections (docs were wrong, not just incomplete)

  • Audit log (access/audit-log.md):
    • Outcomes are success / failure — not success/forbidden/error.
    • Permission denials are not loggediam.Authorized returns before recordAudit, so the old "query outcome: forbidden to find blocked access" guidance returned nothing and was conceptually wrong. failure means an authorized call that errored mid-execution.
    • Filters are after/before (not from/to), resourceType is lowercase and exact-match, there's no action filter, and actor/limit exist.
    • Retention is a 1-year row-level TTL, not "lifetime of the project".
    • action is a verb (deploy, create, …); actor type is User/ServiceAccount.
  • Roles permission table (access/roles.md) — rewritten from the authoritative lowercase catalog in role.go. Removed strings that aren't grantable permissions (project.update/usage, deployment.pause/resume/rollback/metrics/revisions, registry.delete/deleteManifest/untag), added 8 missing namespaces (WAF, Cache, Env group, Workload identity, GitHub, Email, Dropbox, Static sites), fixed camelCase→lowercase (matching is exact and case-sensitive, so serviceAccount.createKey granted nothing), and noted billing is account-ownership-gated.
  • Sidecars (deployments/configuration.md) — only the Cloud SQL Auth Proxy (cloudSqlProxy) is supported; the doc had described generic name/image/command/env sidecars that don't exist.

Verification

Hugo builds clean (hugo --gc), all pages render. Claims checked against api/ request/response structs and apiserver/ (iam permission matching, audit recording, route/deployer materialization, schema TTL).

🤖 Generated with Claude Code

Audit the docs against the api repo's interface contract and close the
user-facing gaps, plus correct several factual errors verified against
api/ and apiserver/ source.

New coverage:
- WAF rate limiting (limits, keys, shadow mode, waf.limitMetrics)
- GitHub link management in the API catalog
- project.metrics / project.storageMetrics, disk.metrics
- registry.get / getProjectStorage / metrics examples
- IPFS/IPNS/DNSLink route targets (API-only)
- cache override priority/mode fields

Corrections:
- audit log: outcomes are success/failure (not forbidden/error); denials
  are not logged (authz returns before recordAudit); filters are
  after/before + lowercase resourceType, no action filter; retention is
  a 1-year TTL, not project lifetime
- roles permission table: rewritten from the lowercase catalog; removed
  non-grantable strings, added missing namespaces, fixed casing
- sidecars: only the Cloud SQL Auth Proxy is supported, not generic
  containers

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@deploys-app deploys-app Bot temporarily deployed to pr-22 June 16, 2026 09:48 Destroyed
@deploys-app

deploys-app Bot commented Jun 16, 2026

Copy link
Copy Markdown

Preview deleted (PR closed).

These content-addressed schemes are deprecated; don't document them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@acoshift acoshift merged commit 2ac2ea0 into main Jun 16, 2026
1 check passed
@acoshift acoshift deleted the docs-feature-coverage branch June 16, 2026 10:01
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