Skip to content

docs(openapi): add /auth/exchange — closes the gap that hid 2026-05-30 outage#203

Merged
mastermanas805 merged 2 commits into
masterfrom
feat/openapi-auth-exchange
May 30, 2026
Merged

docs(openapi): add /auth/exchange — closes the gap that hid 2026-05-30 outage#203
mastermanas805 merged 2 commits into
masterfrom
feat/openapi-auth-exchange

Conversation

@mastermanas805

Copy link
Copy Markdown
Member

Why

The 2026-05-30 prod-login outage chained 3 failures along /auth/exchange:

  1. Client-side POST never shipped (web test(handlers): raise billing-handler coverage #150)
  2. Client added Accept: application/json → preflight rejected (web test(coverage): db/cache/nosql local providers to >=95% via source seams #151)
  3. api response missing Access-Control-Allow-Credentials: true (api fix(cors): AllowCredentials:true on api so dashboard /auth/exchange works (P0 follow-up) #198)

Even with the new contract-CI gate (api #202), the bug class wasn't catchable because /auth/exchange was literally NOT in the OpenAPI spec — agents had no contract to enforce.

What

Adds the POST /auth/exchange path with the full CORS contract in the description (Allow-Origin, Allow-Credentials, no-preflight, response shape). Snapshot regenerated.

Any future regression to those headers / preflight rules is now visible in the diff that breaks the snapshot-drift gate.

Coverage

OpenAPI-spec text addition. TestOpenAPI_* tests pass locally.

mastermanas805 and others added 2 commits May 30, 2026 19:28
…-05-30 outage

The 2026-05-30 prod-login outage chained 3 failures along /auth/exchange
(client missing, preflight rejected, ACAC missing). Even with the new
contract-CI gate (api #202), the bug class wasn't catchable because
/auth/exchange was literally NOT in the OpenAPI spec — agents and the
typed-client codegen pipeline had no contract to enforce.

Adds the path with the full CORS contract documented in the description
so any future regression to the headers / preflight rules is visible in
the diff that breaks the snapshot-drift gate.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…tion

That error code was emitted by an unreachable defence-in-depth arm that
landed in api#201 and was removed before merge (requireName already
rejects empty/whitespace name upstream of the redeploy branch). The
DeployRequest description still mentioned it; tidied + clarified the
upstream-rejection path.
@mastermanas805 mastermanas805 merged commit 78a7d60 into master May 30, 2026
15 checks passed
@mastermanas805 mastermanas805 deleted the feat/openapi-auth-exchange branch May 30, 2026 14:25
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