Skip to content

feat(auth): require trusted permission resolvers - #208

Closed
zuohuadong wants to merge 1 commit into
mainfrom
codex/fail-closed-permission-resolvers
Closed

feat(auth): require trusted permission resolvers#208
zuohuadong wants to merge 1 commit into
mainfrom
codex/fail-closed-permission-resolvers

Conversation

@zuohuadong

Copy link
Copy Markdown
Owner

Summary

  • make Supabase and SSO getPermissions() fail closed unless the app provides a trusted resolver
  • remove implicit permissions from user-editable Supabase metadata and SSO ID Token claims
  • document usePermissions() / createFeatureGate() as UI rendering helpers, not authorization boundaries
  • make createFeatureGate() require exact permission strings and add Svelte/Vitest coverage

Validation

  • bun run check
  • bun run test
  • bun run build
  • bun run lint
  • git diff --check
  • NPM_CONFIG_CACHE=/tmp/svadmin-pr-bqxCkt/npm-cache bun run pack:check

Notes

  • This is a breaking authorization hardening change.
  • API routes, data providers, and database/RLS policies must still enforce authorization independently.
  • Custom menu and direct resource-route access-control guards remain a separate UI hardening follow-up.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying svadmin-example with  Cloudflare Pages  Cloudflare Pages

Latest commit: 2f37ed2
Status: ✅  Deploy successful!
Preview URL: https://54b390b0.svadmin-example.pages.dev
Branch Preview URL: https://codex-fail-closed-permission.svadmin-example.pages.dev

View logs

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying svadmin with  Cloudflare Pages  Cloudflare Pages

Latest commit: 2f37ed2
Status: ✅  Deploy successful!
Preview URL: https://064ff251.svadmin.pages.dev
Branch Preview URL: https://codex-fail-closed-permission.svadmin.pages.dev

View logs

@zuohuadong

Copy link
Copy Markdown
Owner Author

Superseded by #211, which combines the trusted-resolver architecture from this PR with the stronger UI-only documentation language from #209. All conflict-free, all tests pass.

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