Add superadmin role permissions to the example RBAC fixture
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 21h 49m
- Merged PRs (30d)
- 404
Description
The role_superadmin entry in fixtures/manager/example-roles.json defines the role and assigns it to the admin user, but has no rows in permissions[]. Any RBAC permission check based on this fixture therefore denies every operation for the superadmin user.
Scope of work:
- Add domain-scoped (default) permission rows for role_superadmin mirroring the role_user permission set, excluding grant operations. Domain scope matches the post-migration DB state where global-scoped superadmin permissions were converted to per-domain rows (5a4e677aea42) and remaining global rows were removed (ba42cb865efe).
- Remove role_superadmin from EXCLUDED_ROLES in scripts/generate-rbac-fixture-permissions.py so re-running the generator preserves the new rows.
- Replace the stale copy at src/ai/backend/install/fixtures/example-roles.json with a symlink to fixtures/manager/example-roles.json, following the existing pattern of sibling fixtures.
PR: https://github.com/lablup/backend.ai/pull/12129
JIRA Issue: BA-6453
Contributor guide
Research direction
Start with fixtures/manager/example-roles.json and compare role_superadmin with role_user, then read scripts/generate-rbac-fixture-permissions.py and inspect the stale src/ai/backend/install/fixtures/example-roles.json copy. Regenerate or validate the fixture and confirm domain-scoped permissions exclude grant operations, the generator retains them, and the install path is a symlink.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- authorization, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100