gRPC API¶
Fathom's gRPC service is defined in
protos/fathom.proto.
- Generated reference:
fathom.md - Raw
.proto:fathom.proto
The Go SDK's typed client wraps this service — see Go SDK reference.
Sessions¶
- No
session_id:Evaluateis stateless. Its facts are asserted, evaluated and withdrawn against the server's engine.AssertFact,Query,RetractandSubscribeChangesneed a session and answerINVALID_ARGUMENTwithout one. - Opening a session:
Evaluatewith asession_idopens an unknown session, bound to therulesetit names (a path underFATHOM_RULESET_ROOT; empty binds the empty ruleset). It is the only RPC that creates one; the others answerNOT_FOUNDfor an unknown id. - Joining: a later
Evaluatewith norulesetjoins the session. Naming a different ruleset than the session was opened with isFAILED_PRECONDITION. - Mounted engine: a server built with an engine (
serve(engine)) serves stateless evaluation only and refuses everysession_idwithFAILED_PRECONDITION. - JSON fields:
data_jsonmust be a JSON object.filter_jsonmust be a JSON object or empty, and empty matches every fact of the template. Any other JSON,nullincluded, isINVALID_ARGUMENT.
Reload¶
Reload needs an attestation service to sign the reload event; without one
it answers FAILED_PRECONDITION "not_ready". Pass it to serve() along with
the signature settings: