lablup / lablup/backend.ai

Redesign idle checker RBAC with scope-checker connections and session exclusion

Open
#13,540 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
17h 7m
Merged PRs (30d)
358

Description

Rework the 26.8 idle checker assignment RBAC model into the finalized design and add session-level exclusion.

Decisions:
- Checker definitions stay global entities; CRUD is superadmin-only
- Assignments are (scope, checker) connections expressed as scope-VS entity memberships with permission_cap=UPDATE; the separate IDLE_CHECKER_ASSIGNMENT RBAC entity type is removed
- Enable/disable is authorized against the single target-scope connection (scope-shape action), never across scopes
- Assignment create/delete is superadmin-only
- Session exclusion is a (checker, session) pair state with all-or-nothing validation and per-pair audit rows
- Exclusion is represented as an EXCLUDED phase of session_idle_checks.last_status (no separate column); effective = last_status != EXCLUDED AND any(enabled source)
- Exclusion resets when the assignment is unassigned or disabled, and re-inclusion restarts the pair at NOT_CHECKED (accepted trade-off)
- 26.8 API ships as-is; new contracts land in 26.9 with the old update contract deprecated

Phases: (1) RBAC re-contract, (2) session exclusion, (3) bidirectional GraphQL connections.

JIRA Issue: BA-7235

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by locating the existing idle checker RBAC assignment flow and the session_idle_checks.last_status entry point, then compare the 26.8 API with the planned 26.9 contracts. Done means the three phases are implemented, session exclusion and reset behavior follow the stated rules, and the old update contract is deprecated.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, authorization, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.