hecate_om_service behaviour (hecate_om v0.3.1)

View Source

Summary

Callbacks

Capabilities this service exposes, to be advertised on the mesh. Other services find this one by these names.

OPTIONAL. The on-disk root for this service's reckon-db store. The store data lands at data_dir/store_id.

Snapshot of current health. Called every /health hit.

UCAN this service wants minted by hecate-realm at boot. Until UCAN-delegation lands in realm, this is informational only.

Static metadata about the service. Reported on /health.

Start the service's supervision tree. Called once on boot.

Stop the service. Called on shutdown.

OPTIONAL. The reckon-db store_id this service owns. When exported alongside data_dir/0, hecate_om:boot/1 auto-starts the store and the per-store evoq subscription before the service module's own start/1 fires.

Types

capability()

-type capability() :: #{name := binary(), version := pos_integer()}.

health()

-type health() :: ok | {degraded, term()} | {down, term()}.

identity_spec()

-type identity_spec() ::
          #{scope := binary(),
            actions := [binary()],
            resources := [binary()],
            ttl_days := pos_integer()}.

info()

-type info() :: #{name := binary(), version := binary(), description := binary()}.

Callbacks

capabilities()

-callback capabilities() -> [capability()].

Capabilities this service exposes, to be advertised on the mesh. Other services find this one by these names.

data_dir()

(optional)
-callback data_dir() -> string().

OPTIONAL. The on-disk root for this service's reckon-db store. The store data lands at data_dir/store_id.

health()

-callback health() -> health().

Snapshot of current health. Called every /health hit.

identity_spec()

-callback identity_spec() -> identity_spec().

UCAN this service wants minted by hecate-realm at boot. Until UCAN-delegation lands in realm, this is informational only.

info()

-callback info() -> info().

Static metadata about the service. Reported on /health.

start/1

-callback start(map()) -> {ok, pid()} | {error, term()}.

Start the service's supervision tree. Called once on boot.

stop/1

-callback stop(term()) -> ok.

Stop the service. Called on shutdown.

store_id()

(optional)
-callback store_id() -> atom().

OPTIONAL. The reckon-db store_id this service owns. When exported alongside data_dir/0, hecate_om:boot/1 auto-starts the store and the per-store evoq subscription before the service module's own start/1 fires.