Files
git.stella-ops.org/docs/specs/symbols/api.md
StellaOps Bot d63af51f84
Some checks failed
api-governance / spectral-lint (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
oas-ci / oas-validate (push) Has been cancelled
SDK Publish & Sign / sdk-publish (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
Policy Simulation / policy-simulate (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
up
2025-11-26 20:23:28 +02:00

1.7 KiB
Raw Blame History

Symbol Server API

Imposed rule: All API responses must include tenant scoping and content digests; cross-tenant symbol access is forbidden.

Base path: /api/v1/symbols (service: Symbol Server / Export Center plugin).

Endpoints

  • GET /manifest returns SYMBOL_MANIFEST/v1 for the tenant.
    • Headers: X-Stella-Tenant (required)
    • Query: image_digest (optional filter), build_id (exact match)
  • GET /files/{path} stream a symbol file by relative path in manifest.
    • Headers: X-Stella-Tenant
    • Responds with Content-SHA256 header and ETag; 404 if tenant mismatch.
  • POST /ingest upload a symbol bundle (tar or OCI artifact) and manifest.
    • Headers: X-Stella-Tenant, X-Stella-Attestation (optional DSSE digest)
    • Validates manifest checksum, entry digests, and tenant.
  • GET /health readiness/liveness.

Error model

  • Problem+JSON; include tenant, correlation_id, and policy fields when access is denied.
  • Rate limits: 429 with Retry-After; deterministic budget per tenant.

Security

  • Auth via Authority-issued JWT; enforce symbols:read/symbols:write scopes.
  • Tenant check on every request; manifest tenant must equal header.
  • Optional DSSE attestation digest header is recorded and surfaced in /manifest under source.attestation.

Caching & offline

  • Console/CLI cache manifest + files in CAS; revalidate via If-None-Match on GET /manifest.
  • Offline kits mount symbol bundle read-only; API client can be pointed at file:// CAS handler for air-gapped use.

Observability

  • Emit counters per tenant: symbol_manifest_requests, symbol_file_bytes_served, symbol_ingest_failures.
  • Logs include build_id, image_digest, tenant, attested flag.