elsa-workflows / elsa-workflows/elsa-foundation

RBAC: Catalog scoped permissions and diagnose legacy privilege drift

Open
#828 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ready-for-agent
Dominant language
C#
Stars
5
Forks
1
Avg merge
3h 18m
Merged PRs (30d)
261

Description

## Parent

- #806

## What to build

Deliver the safety-first RBAC entry point. Elsa Server exposes a feature-owned permission catalog with stable keys, authorization scope, implication, sensitivity, and ownership metadata, plus a dry-run diagnostic that classifies current direct, wildcard, unknown, and scope-incompatible grants without changing authority. Elsa Studio provides a read-only security diagnostics surface for reviewing the catalog and migration findings.

Stop privilege drift at the same time: newly seeded tenant administrators receive an explicit tenant permission set rather than wildcard or host authority, existing seeded roles no longer accumulate newly catalogued permissions, and no management path can create new direct local-user grants.

Covers PRD user stories 6-11, 81-85, 92, 95, 98, and 100.

## Acceptance criteria

- [ ] Feature-owned permission descriptors expose stable key, display metadata, category, exactly one allowed authorization scope, implied keys, sensitivity, and owning feature.
- [ ] Startup validation rejects case-insensitive duplicates, missing implication targets, cycles, cross-scope implications, and invalid template keys with actionable diagnostics.
- [ ] A permission-catalog API and a Studio read-only diagnostics experience show catalog entries, validation state, and legacy-grant classifications without exposing secrets or changing authority.
- [ ] Both administrator seed paths create tenant administrators without `*` or host permissions and stop converging existing roles to newly catalogued permissions.
- [ ] New direct-permission writes are disabled while existing values remain readable for migration.
- [ ] The dry run classifies wildcard, unknown, scope-incompatible, and known scope-compatible grants and records enough subject/scope context for later remediation without mutating records.
- [ ] Existing permission keys remain unchanged; validation enforces lowercase dot-separated keys only for newly introduced permissions.
- [ ] Composed Server-over-HTTP and Studio integration tests prove the catalog and diagnostic experience, while startup and seed tests prove fail-fast validation and the absence of privilege drift.

## Blocked by

None - can start immediately.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the Elsa Server permission and administrator-seeding entry points, then the Studio read-only diagnostics surface described in the issue. Review the startup, seed, Server-over-HTTP, and Studio integration tests first. Done means the catalog and dry run validate and classify grants without mutation, seed paths avoid wildcard or host authority, and direct local-user writes remain readable but cannot create new grants.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
authorization, backend-api-design, security, testing
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.