secubox-deb/packages/secubox-release/api
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
..
__init__.py
main.py fix(annuaire): current_ring sovereignty-filtered by verified grant-holding author (ref release-rings) 2026-07-26 08:47:45 +02:00