Skip to content

Commit fd6d0bf

Browse files
committed
chore(webapp): collapse RBAC server-changes note and reword comments
Combine the two RBAC server-changes notes into a single entry that lists the new permission boundaries. Reword the run cancel/replay comments to refer to the RBAC plugin generically.
1 parent b0843d5 commit fd6d0bf

5 files changed

Lines changed: 4 additions & 10 deletions

.server-changes/rbac-permission-enforcement.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ area: webapp
33
type: feature
44
---
55

6-
Enforce role-based permissions across the dashboard and API. Roles without access to a resource (environment variables, API keys, deployments, integrations, members, billing) can no longer read or change it, and gated pages now show a permission-denied panel instead of redirecting away.
6+
Enforce role-based permissions across the dashboard and API. New permission boundaries cover: runs (cancel, replay, bulk actions), deployments (rollback, promote, cancel), prompt versions, organization members (invite, resend, revoke), billing and seat purchases, integrations (GitHub and Vercel), and environment variables and API keys (restricted by environment tier). Roles without access can no longer read or change these, gated controls are disabled with a tooltip, and gated pages show a permission-denied panel instead of redirecting away. Behaviour is unchanged in the default configuration, where permissions stay permissive.

.server-changes/rbac-route-permission-enforcement.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

apps/webapp/app/routes/_app.orgs.$organizationSlug.settings.integrations.vercel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,4 +412,4 @@ export default function VercelIntegrationPage() {
412412
</PageBody>
413413
</PageContainer>
414414
);
415-
}
415+
}

apps/webapp/app/routes/resources.taskruns.$runParam.cancel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ async function resolveRunOrganizationId(runParam: string): Promise<string | null
3737
// Replica lag with the buffer entry already drained: the run can exist in
3838
// the primary while both lookups above miss. Fall back to the primary so the
3939
// RBAC scope is never resolved without an org (which would let the role check
40-
// run unscoped under the enterprise plugin).
40+
// run unscoped under the RBAC plugin).
4141
const primaryRun = await prisma.taskRun.findFirst({
4242
where: { friendlyId: runParam },
4343
select: { project: { select: { organizationId: true } } },

apps/webapp/app/routes/resources.taskruns.$runParam.replay.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ async function resolveRunOrganizationId(runParam: string): Promise<string | null
274274
// Replica lag with the buffer entry already drained: the run can exist in
275275
// the primary while both lookups above miss. Fall back to the primary so the
276276
// RBAC scope is never resolved without an org (which would let the role check
277-
// run unscoped under the enterprise plugin).
277+
// run unscoped under the RBAC plugin).
278278
const primaryRun = await prisma.taskRun.findFirst({
279279
where: { friendlyId: runParam },
280280
select: { project: { select: { organizationId: true } } },

0 commit comments

Comments
 (0)