Skip to content

feat(auth): authorize API routes by capability - #162

Draft
djwhitt wants to merge 6 commits into
oidc-api-tokensfrom
oidc-api-capabilities
Draft

feat(auth): authorize API routes by capability#162
djwhitt wants to merge 6 commits into
oidc-api-tokensfrom
oidc-api-capabilities

Conversation

@djwhitt

@djwhitt djwhitt commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a dedicated API authorization Plug after authentication and before body parsing
  • enforce the closed query, ingest, and catalog-management route matrix
  • preserve public health, internal-secret metrics, route obscuring, authenticated catch-all 404s, and static credentials
  • prove denied malformed/oversized requests are not parsed and cannot reach service or catalog clients

Tracker: T-233

Validation

  • ../bin/x mix ci
  • ../bin/test
  • ../bin/x mix dialyzer
  • exhaustive signed-token route-matrix tests and independent security review

Stack

Depends on #161. This is layer 5 of stack #151.

Stack managed with GitHub Stacks CLI.

Apply a closed compile-time route capability matrix after authentication and before body parsing. Query, ingest, and catalog-management routes now return generic 403 responses for authenticated principals without the required capability while static credentials preserve existing access.

Denied requests do not parse bodies or reach catalog and service clients.
@djwhitt djwhitt changed the title oidc api capabilities feat(auth): authorize API routes by capability Aug 15, 2026
@djwhitt
djwhitt marked this pull request as draft August 16, 2026 00:09
Carry the hardened provider cache, separated token profiles, updated lower stack, and current origin/main into the published capability layer without rewriting existing commits.
Propagate the unambiguous key-set and refresh-worker lifecycle fixes through the published capability layer without rewriting existing commits.
Propagate the validated public host, fixed callback route, and bounded browser scope settings through the published API capability layer without rewriting existing commits.

Tests: ../bin/x mix ci
Tests: ../bin/test
Tests: ../bin/x mix dialyzer
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