Skip to content

Separate question ID signing from caller authentication - #30

Merged
jacobprall merged 1 commit into
mainfrom
codex/issue-20-question-id-signing-key
Oct 28, 2026
Merged

jacobprall merged 1 commit into
mainfrom
codex/issue-20-question-id-signing-key

Conversation

@starmorph

Copy link
Copy Markdown
Contributor

Bearer-token holders can currently sign arbitrary workflow run IDs and use the API to poll or follow up on runs it did not start. Sign question IDs with a required, API-only QUESTION_ID_SECRET, independent of API_TOKEN, and reject invalid signatures before accessing workflows.

The Blueprint generates the new secret. Existing deployments must configure a distinct secret of at least 32 characters before upgrading; old question IDs become invalid. Keep this secret stable across API replicas and restarts. Rotating only the bearer token preserves ID signatures.

Validation:

  • Reproduced the original forged-ID regression: polling returned 200 and follow-up returned 202; both now return 404 without workflow access.
  • API tests: 18 passed, including issued IDs, key rotation, and fail-closed configuration.
  • Independently reran typecheck and the full suite: 84 passed, 1 live-model test skipped. git diff --check passed.

Fixes #20.

@jacobprall
jacobprall merged commit 61f1cb7 into main Oct 28, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

[P1] Use a server-only key for question IDs

2 participants