Skip to main content

Module server

Module server 

Source
Expand description

Logical registry handler (feature = “server”).

Wires PublishValidator together with a RegistryStore backend to provide the seven core registry operations enumerated in RFC-ACDP-0003 §2.1 and RFC-ACDP-0005:

  • capabilities — return the CapabilitiesDocument.
  • publish — validate, verify signature, assign identifiers, persist.
  • retrieve — fetch a stored body + registry_state (visibility-filtered).
  • retrieve_body — fetch just the body (visibility-filtered).
  • lineage / current — lineage graph queries.
  • search — keyword + filter projection (visibility-filtered).

This is the building block an HTTP-binding layer can sit on top of; the integration tests in this crate exercise it directly without mocking.

§Conformant publish

RegistryServer::publish_verified runs the full RFC-ACDP-0003 §2.1 algorithm — structural validation, hash recomputation, DID resolution, signature verification — before persistence. It requires the client feature for acdp_did::WebResolver.

RegistryServer::publish_unverified_for_tests (and its idempotency/tenant-capable sibling RegistryServer::publish_unverified_in_tenant_for_tests) perform only steps 1–6 (skipping DID resolution + signature verification) and are intentionally not RFC-conformant; use only in tests where DID resolution would require a live network or mock server.

Structs§

RegistryServer
Logical registry handler over an arbitrary RegistryStore.