Skip to content

The permission matrix

Every built-in role against every action of artifactr's, reflexr's and grantr's catalogs, where it is granted: what grantr.testing.matrix prints for the two libraries (ADR-0011). A role granted on a thread, artifact or rule holds there what it holds on their workspace. A test checks this page against the catalogs, and fails when it is out of date. To regenerate it, replace the table with what this prints:

uv run python -c "from artifactr.workspace import ACTIONS as A; from reflexr.workspace import ACTIONS as R; from grantr.testing import matrix; print(matrix([A, R]), end='')"

An application's own, with its custom roles, is in its access.md (Roles and grants).

Action operator (deployment) application (deployment) owner (tenant) admin (tenant) member (tenant) admin (workspace) editor (workspace) viewer (workspace) rule (workspace)
artifactr:answer_deferred ✓ ✓ ✓ ✓
artifactr:archive_artifact ✓ ✓ ✓ ✓
artifactr:claim_thread ✓
artifactr:create_artifact ✓ ✓ ✓ ✓ ✓
artifactr:create_thread ✓ ✓ ✓ ✓ ✓
artifactr:edit_artifact ✓ ✓ ✓ ✓ ✓
artifactr:give_feedback ✓ ✓ ✓ ✓ ✓ ✓
artifactr:open ✓ ✓ ✓ ✓ ✓ ✓ ✓
artifactr:post_message ✓ ✓ ✓ ✓ ✓ ✓
artifactr:propose_change ✓ ✓ ✓ ✓ ✓
artifactr:read_artifacts ✓ ✓ ✓ ✓ ✓ ✓
artifactr:read_cursors ✓
artifactr:read_events ✓ ✓ ✓ ✓ ✓ ✓
artifactr:read_history ✓ ✓ ✓ ✓ ✓ ✓
artifactr:read_proposals ✓ ✓ ✓ ✓ ✓ ✓
artifactr:read_runs ✓ ✓ ✓ ✓ ✓ ✓
artifactr:read_threads ✓ ✓ ✓ ✓ ✓ ✓
artifactr:read_workspaces ✓ ✓ ✓ ✓
artifactr:record ✓ ✓ ✓ ✓ ✓
artifactr:respond_to_proposal ✓ ✓ ✓ ✓
artifactr:save_cursor ✓
artifactr:set_focus ✓ ✓ ✓ ✓
artifactr:set_thread_mode ✓ ✓ ✓ ✓
artifactr:stop_run ✓ ✓ ✓ ✓
grantr:add_member ✓ ✓
grantr:create_tenant ✓
grantr:define_role ✓ ✓
grantr:delete_tenant ✓
grantr:grant ✓ ✓ ✓
grantr:grant_operator ✓
grantr:issue_key ✓ ✓
grantr:manage_groups ✓ ✓
grantr:manage_integrations ✓ ✓ ✓
grantr:read_audit ✓ ✓
grantr:remove_member ✓ ✓
grantr:restrict ✓ ✓ ✓
grantr:revoke ✓ ✓ ✓
grantr:revoke_key ✓ ✓
reflexr:archive_rule ✓ ✓ ✓ ✓
reflexr:cancel_run ✓ ✓ ✓ ✓
reflexr:checkpoint_run ✓ ✓ ✓ ✓ ✓
reflexr:give_feedback ✓ ✓ ✓ ✓ ✓ ✓
reflexr:install_rule ✓ ✓ ✓ ✓
reflexr:open ✓ ✓ ✓ ✓ ✓ ✓ ✓
reflexr:publish ✓ ✓ ✓ ✓ ✓ ✓
reflexr:read_cursors ✓
reflexr:read_dead_letters ✓ ✓ ✓ ✓ ✓ ✓
reflexr:read_events ✓ ✓ ✓ ✓ ✓ ✓ ✓
reflexr:read_rules ✓ ✓ ✓ ✓ ✓ ✓
reflexr:read_runs ✓ ✓ ✓ ✓ ✓ ✓ ✓
reflexr:read_schedules ✓ ✓ ✓ ✓ ✓ ✓
reflexr:replay_rule ✓ ✓ ✓
reflexr:retry_run ✓ ✓ ✓ ✓
reflexr:save_cursor ✓
reflexr:skip_run ✓ ✓ ✓ ✓
reflexr:update_rule ✓ ✓ ✓ ✓