edge-control: admin-approved allowlist for project names #1092
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#1092
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Mirrored from johba/disinto#833
---## Problem
tools/edge-control/register.sh:51accepts any name matching^[a-zA-Z0-9_-]+$on a first-come-first-served basis. There is no mechanism for the edge admin to reserve a name for a specific project/key before the race starts. Anyone withdisinto-registerSSH access can claim any syntactically valid name — including names the operator intends to use for their own services later.This is the only approach that actually prevents squatting between trusted-but-not-fully-trusted callers. Per-operation ownership checks (see sibling issue) protect live registrations; they do not prevent the race.
Proposal
Two-step claim flow:
Admin writes
/var/lib/disinto/allowlist.json:File is
root:root 0644— only root writes;disinto-registerreads.do_registerrefuses if:projectis not a key in.allowed, OR.allowed[project].pubkey_fingerprint(when set — empty means "any pubkey may claim").register.shnever mutatesallowlist.json. Approval is out-of-band (ops repo PR, or ssh + root edit).Acceptance
registerfor an un-allowlisted name returns{"error":"name not approved"}and makes no registry changes.registerfor an allowlisted name with a bound fingerprint refuses any other pubkey.registerfor an allowlisted name with no fingerprint bind works as today (and stamps the claiming pubkey, per existing first-write-wins).tools/edge-control/README.