secubox-deb/packages/secubox-release
CyberMind-FR 44bc14ce11 fix(annuaire): current_ring sovereignty-filtered by verified grant-holding author (ref release-rings)
current_ring counted ANY author's RELEASE_PROMOTE/DEMOTE; sync-repo drives
reprepro copy off it, so a federated promote by an ungranted center would
publish fleet-wide. Like box_ring, count a ring op only when its verified
author holds an active capability=release grant from the honoring box.

Add current_ring(entries, evo_id, self_did=None): fail-closed author+grant
gate when self_did is given, unfiltered back-compat when None. Add public
published_evo_ids() and thread self_did through evolutions_in_ring. Callers
pass the sovereign self: verbs.release_promote/demote pass self_did; releasectl
cmd_list/cmd_sync_repo gain _self_did_public() (public did, no private key on
read paths); api /evolutions passes _self_did(). Read paths now use
published_evo_ids() instead of reaching into grants._op/_payload. Tests cover
ungranted promote ignored, granted promote counted, and author-less ignored.

Co-Authored-By: Gerald KERMA <devel@cybermind.fr>
2026-07-26 08:47:45 +02:00
..
api fix(annuaire): current_ring sovereignty-filtered by verified grant-holding author (ref release-rings) 2026-07-26 08:47:45 +02:00
debian build(release): packaging — API unit, scoped sudoers, install, secrets traversal; annuaire ships releases.py 2026-07-26 08:25:17 +02:00
menu.d fix(release): menu requires the owning package, not annuaire 2026-07-26 08:15:57 +02:00
nginx feat(release): /releases panel (evolution×ring + box×ring matrices) + menu + vhost 2026-07-26 08:15:22 +02:00
release fix(release): boxapply validate-first + rollback-only-on-success, no leaked temp files 2026-07-26 07:53:08 +02:00
sbin fix(annuaire): current_ring sovereignty-filtered by verified grant-holding author (ref release-rings) 2026-07-26 08:47:45 +02:00
sudoers build(release): packaging — API unit, scoped sudoers, install, secrets traversal; annuaire ships releases.py 2026-07-26 08:25:17 +02:00
systemd build(release): packaging — API unit, scoped sudoers, install, secrets traversal; annuaire ships releases.py 2026-07-26 08:25:17 +02:00
tests build(release): packaging — API unit, scoped sudoers, install, secrets traversal; annuaire ships releases.py 2026-07-26 08:25:17 +02:00
www/releases feat(release): /releases panel (evolution×ring + box×ring matrices) + menu + vhost 2026-07-26 08:15:22 +02:00
conftest.py feat(release): package scaffold + reprepro-copy actuator (arm64-guard, op-gated argv) (ref release-rings) 2026-07-26 07:42:25 +02:00
pytest.ini feat(release): box actuator — 4R ring sources drop-in (apt-fail rolls back, never bricks) (ref release-rings) 2026-07-26 07:47:29 +02:00