A transit service must authenticate Claude calls without hard-coding credentials. What practice fits?
Select an answer to reveal the explanation.
Short Explanation
You'll inject org API keys from the municipal secret store into the SDK—not from versioned config, shared env files, or rider OAuth tokens. Rider tokens prove who's riding, not that your service is cleared to call Claude, and shared keys in env files skip the vault's logging and rotation controls.
Full Explanation
Transit services must authenticate Claude calls by injecting organization API keys from the municipal secret store into the Claude SDK client. Secrets remain outside source control and mobile artifacts, while runtime injection keeps rotation, access logging, and environment separation under platform control for GTFS-adjacent backends. Loading Claude API keys from versioned service config into the SDK client fails because versioned configs can be exposed alongside source code, lack the municipal secret store's access logging and least-privilege controls, and make secret rotation a manual, error-prone process rather than a platform-managed operation. Authenticating Claude SDK calls with short-lived rider OAuth tokens fails because rider OAuth tokens establish end-user identity, not the transit service's organization credentials, and the Claude SDK requires org API keys for backend calls rather than a rider's OAuth session. Provisioning shared developer API keys to staging and production SDK clients via env files fails as insecure distribution that bypasses vault logging, least privilege, and automated rotation discipline, while sharing one key across environments makes revocation and rotation unsafe. Exam caveat: injection must use short-lived or rotatable credentials and least-privilege keys scoped to the transit environment, not a shared forever-key across all city apps. Operational check: confirm the deploy pipeline fetches secrets at runtime, scan repos for key patterns in CI, and rotate a key to verify services pick up the new value without code changes.