elsa-workflows / elsa-workflows/elsa-foundation

RBAC: Converge Server and Studio permission consumers

Open
#833 0 comments 0 reactions 0 assignees View on GitHub
ready-for-agent
Dominant language
C#
Stars
5
Forks
1
Avg merge
3h 18m
Merged PRs (30d)
261

Description

## Parent

- #806

## What to build

Expand the scope-aware authorization tracer to every Elsa permission consumer. Complete the feature-owned permission inventory, move shell and root-mapped endpoints onto the authoritative resolver, and remove remaining exact-match, implicit-wildcard, and locally traversed implication paths. Elsa Studio routes navigation, pages, commands, actions, and feature contributions through its central permission service.

The delivered behavior is a single permission decision across Server and Studio, with capability availability kept separate from entitlement and no role-name checks.

Covers PRD user stories 8-11, 35-36, 47-56, 92-96, and 98.

## Acceptance criteria

- [ ] Every declared endpoint, policy, built-in template, and Studio contribution permission is present in the feature-owned catalog with compatible scope metadata.
- [ ] Shell endpoints, root-mapped endpoints, ASP.NET policies, FastEndpoints, session responses, and Studio use the authoritative expanded permission result.
- [ ] No ordinary endpoint relies on unconditional `*`, exact permission claims, client-side implication traversal, or a role-name check.
- [ ] CI fails for uncatalogued permission use, incompatible scopes, invalid implications, and Studio contribution keys absent from the advertised contract.
- [ ] Studio combines advertised capability availability with entitlement and distinguishes unavailable capability, missing permission, stale session, and forbidden resource behavior.
- [ ] Unauthorized navigation is hidden, direct unauthorized routes render a forbidden experience, and useful contextual actions are disabled with a concise reason.
- [ ] Existing stable permission keys remain compatible and new keys follow the catalog convention.
- [ ] Server inventory/HTTP tests and Studio component/browser tests exercise representative read, manage, publish, execute, diagnostics, secrets, agent, module-management, and Extension Builder surfaces.

## Blocked by

- #829

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing blocked issue #829, then inventory the feature-owned catalog and the Server and Studio consumers named in the acceptance criteria. Run the Server inventory/HTTP tests and Studio component/browser tests; done means one authoritative permission decision, catalog and CI coverage, and the specified unauthorized-state behavior across representative surfaces.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
authorization, backend-api-design, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.