Bounded, process-local enrollment registry. More...
#include <control_host_enrollment.hpp>
Public Types | |
| using | Clock = std::function<std::chrono::steady_clock::time_point()> |
| Invoked under the store mutex; it must be bounded, non-blocking, and non-reentrant. | |
Public Member Functions | |
| ControlHostEnrollmentStore (ControlHostEnrollmentStoreConfig config={}, Clock clock=[] { return std::chrono::steady_clock::now();}) | |
| ~ControlHostEnrollmentStore () | |
| ControlHostEnrollmentStore (const ControlHostEnrollmentStore &)=delete | |
| ControlHostEnrollmentStore & | operator= (const ControlHostEnrollmentStore &)=delete |
| ControlHostEnrollmentResult | create (ControlTrustedHostSnapshot snapshot, const VerifiedControlPeerIdentity &preobserved_child, std::uint64_t current_broker_generation, std::chrono::steady_clock::time_point expires_at) |
| preobserved_child must come from kernel evidence on an endpoint-owned private rendezvous. | |
| std::optional< ControlHostEnrollmentPlan > | consume (std::string_view enrollment_id) |
| std::size_t | sweep () |
| std::size_t | size () const |
Bounded, process-local enrollment registry.
create() accepts only a previously consumed trusted inventory snapshot, and consume() burns the claim atomically before any live peer validation occurs. The endpoint never holds this store's mutex while observing a peer or entering broker, admission-store, or router coordination.
| using pulp::inspect::ControlHostEnrollmentStore::Clock = std::function<std::chrono::steady_clock::time_point()> |
Invoked under the store mutex; it must be bounded, non-blocking, and non-reentrant.
|
explicit |
| pulp::inspect::ControlHostEnrollmentStore::~ControlHostEnrollmentStore | ( | ) |
|
delete |
| std::optional< ControlHostEnrollmentPlan > pulp::inspect::ControlHostEnrollmentStore::consume | ( | std::string_view | enrollment_id | ) |
| ControlHostEnrollmentResult pulp::inspect::ControlHostEnrollmentStore::create | ( | ControlTrustedHostSnapshot | snapshot, |
| const VerifiedControlPeerIdentity & | preobserved_child, | ||
| std::uint64_t | current_broker_generation, | ||
| std::chrono::steady_clock::time_point | expires_at ) |
preobserved_child must come from kernel evidence on an endpoint-owned private rendezvous.
A PID-only post-spawn callback cannot satisfy this contract because macOS audit pidversion is available only from the connected peer's audit token.
|
delete |
| std::size_t pulp::inspect::ControlHostEnrollmentStore::size | ( | ) | const |
| std::size_t pulp::inspect::ControlHostEnrollmentStore::sweep | ( | ) |