hecate_om_identity (hecate_om v0.3.1)

View Source

Loads the service-principal cert at boot and a Macula SDK client handle. Held in a gen_server so every other process can borrow the pool through hecate_om:macula_client/0.

Each hecate-service has its OWN realm-signed credential (NOT a user's). The credential lives at /etc/hecate/secrets/service-cert.pem inside the container; the host mounts the per-service directory from /etc/hecate/secrets/<service-name>/ onto that path.

v1: long-lived realm-signed cert provisioned out-of-band by a realm-admin script. v2: short-lived UCAN auto-rotated from a realm HTTP endpoint. The v2 swap-in lands here without touching consumers.

Connect-degradation: when seeds aren't reachable (early boot, test harness, no station nearby), macula_client/0 returns {error, no_client} and consumers should fall back to no-op behaviour. The service stays up; it just doesn't talk to the mesh.

Summary

Functions

handle_call(Msg, From, State)

handle_cast(Msg, S)

handle_info(Msg, State)

init(_)

macula_client()

realm()

service_cert()

start_link()

terminate(Reason, State)