WIP: feat(authctl): catalog browse + validate + completion #9

Draft
arrdem wants to merge 1 commit from arrdem/authctl-rulebook into arrdem/arstotzka-catalog
Owner

Stacked on PR #8. Wires authctl against the live catalog: authctl schema browses the audience tree, authctl validate <file> checks an arstotzka config JSON against the catalog before upload, and tab-completion for actions and resources is keyed off the audience's declared vocabulary instead of free-form strings.

Scope guard

authctl never imports rulebook or starlark-pyo3. It speaks JSON to the auth server (GET /schema) and to a local $XDG_CACHE_HOME/authctl/catalog.json ETag-cached copy. See projects/arstotzka/cli/SCOPE-PR7.md for the full breakdown.

Status

Stub PR opened so the rest of the stack can reference a real Forgejo number for the authctl integration work. Implementation commits will follow.

Stack

  • PR #4 — Rulebook DSL
  • PR #7 — bazel rules + first Rulebook
  • PR #8arstotzka_catalog + server loader
  • PR #9authctl integration (this PR)
Stacked on PR #8. Wires `authctl` against the live catalog: `authctl schema` browses the audience tree, `authctl validate <file>` checks an arstotzka config JSON against the catalog before upload, and tab-completion for actions and resources is keyed off the audience's declared vocabulary instead of free-form strings. ### Scope guard `authctl` never imports `rulebook` or `starlark-pyo3`. It speaks JSON to the auth server (`GET /schema`) and to a local `$XDG_CACHE_HOME/authctl/catalog.json` ETag-cached copy. See `projects/arstotzka/cli/SCOPE-PR7.md` for the full breakdown. ### Status Stub PR opened so the rest of the stack can reference a real Forgejo number for the authctl integration work. Implementation commits will follow. ### Stack - PR #4 — Rulebook DSL - PR #7 — bazel rules + first Rulebook - PR #8 — `arstotzka_catalog` + server loader - **PR #9 — `authctl` integration (this PR)**
Placeholder commit so PR #7 has a real Forgejo number that PR #4 / #5
/ #6 can reference. Real work follows: authctl schema, authctl
validate against the live catalog, completion off the catalog
vocabulary, and ETag-cached fetch.
arrdem force-pushed arrdem/authctl-rulebook from 58a1a2ced9 to be599d2f2a 2026-04-26 19:35:43 +00:00 Compare
arrdem force-pushed arrdem/authctl-rulebook from be599d2f2a to d69f450d53 2026-04-26 19:41:41 +00:00 Compare
arrdem force-pushed arrdem/authctl-rulebook from d69f450d53 to 07aed6d0cb 2026-04-26 20:01:38 +00:00 Compare
arrdem force-pushed arrdem/authctl-rulebook from 07aed6d0cb to 452ad39af7 2026-04-26 20:19:28 +00:00 Compare
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin arrdem/authctl-rulebook:arrdem/authctl-rulebook
git switch arrdem/authctl-rulebook

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch arrdem/arstotzka-catalog
git merge --no-ff arrdem/authctl-rulebook
git switch arrdem/authctl-rulebook
git rebase arrdem/arstotzka-catalog
git switch arrdem/arstotzka-catalog
git merge --ff-only arrdem/authctl-rulebook
git switch arrdem/authctl-rulebook
git rebase arrdem/arstotzka-catalog
git switch arrdem/arstotzka-catalog
git merge --no-ff arrdem/authctl-rulebook
git switch arrdem/arstotzka-catalog
git merge --squash arrdem/authctl-rulebook
git switch arrdem/arstotzka-catalog
git merge --ff-only arrdem/authctl-rulebook
git switch arrdem/arstotzka-catalog
git merge arrdem/authctl-rulebook
git push origin arrdem/arstotzka-catalog
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
arrdem/source!9
No description provided.