Skip to content

[comp] Production Deploy#2713

Merged
Marfuen merged 2 commits intoreleasefrom
main
Apr 29, 2026
Merged

[comp] Production Deploy#2713
Marfuen merged 2 commits intoreleasefrom
main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 29, 2026

This is an automated pull request to release the candidate branch into production, which will trigger a deployment.
It was created by the [Production PR] action.


Summary by cubic

Tightens access control for secrets, role management, and integration OAuth. Adds a dedicated secret permission, blocks unsafe role changes, and ties OAuth callbacks to the initiating session.

  • New Features

    • Introduced secret RBAC resource (create, read, update, delete), granted to owner/admin only; auditors and others have no access. Updated API (SecretsController) and UI gating to require secret:*, plus route permission for viewing secrets.
  • Bug Fixes

    • People: prevent admin self-escalation and owner role changes via PATCH; caller cannot change their own role, cannot grant/revoke owner here, and must hold every role they assign.
    • OAuth: validate that the callback is completed by the same signed-in user/org that started the flow; on mismatch, consume state and redirect with session_mismatch. GCP auto-detection is no longer triggered immediately after OAuth.

Written for commit 5627b12. Summary will update on new commits. Review in cubic

github-actions Bot and others added 2 commits April 29, 2026 21:27
…2712)

* fix(api): prevent admin self-escalation to owner role

PATCH /v1/people/:id allowed admins to grant themselves the owner role,
modify their own member record, and assign roles higher than their own.

Add authorizeRoleChange() in people/utils/role-authorization.ts enforcing:
- self-modification block (route role changes through transfer-ownership)
- owner-role assignment block in both directions
- role-hierarchy check (caller must hold every role being assigned)

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

* fix(auth): scope secret access to dedicated permission

Secrets controller previously gated on organization:read, granting auditors
(read-only compliance reviewers) plaintext access to credentials and using
the same permission for read and write operations.

Introduce a 'secret' RBAC resource with create/read/update/delete actions.
Grant full CRUD to owner and admin only. Auditor, employee, and contractor
no longer have any secret access. Switch the secrets controller to gate on
secret:* actions and update frontend route + button gating to match.

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

* fix(api): bind integration OAuth callback to initiating session

The integration OAuth callback relied solely on the random state token to
identify the initiating user/org. Add defense-in-depth session validation
so the same logged-in user (and active organization) that started the
flow must be the one completing it; otherwise the state is consumed,
the failure is logged, and the user is redirected with session_mismatch.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app (staging) Building Building Apr 29, 2026 9:50pm
comp-framework-editor (staging) Ready Ready Preview, Comment Apr 29, 2026 9:50pm
portal (staging) Building Building Apr 29, 2026 9:50pm

Request Review

@Marfuen Marfuen merged commit fecd9c9 into release Apr 29, 2026
11 of 13 checks passed
@claudfuen
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.38.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants