ontology.schemas: in the gateway config. Each entry is a URI; the resolver layer maps schemes to backing filesystems.
Supported URI schemes
embed://graph-schema/<family>
Schemas baked into the fracta binary at compile time. This is the default for both docker-compose and Kubernetes deployments — no volume mount, no ConfigMap, no Dockerfile change needed when a new family is added. The four families that ship with fracta are:
embed://graph-schema/coreembed://graph-schema/threat-huntingembed://graph-schema/fracta-mcp-gatewayembed://graph-schema/knowledge-garden
internal/schema/embedfs/graph-schema/<name>/ and rebuild. The embed resolver picks it up automatically.
file:///abs/path/to/<family>
Local filesystem. Used for operator overrides — a custom version of a shipped family, or a family that isn’t baked in.
file://./relative/path works in dev environments and tests; absolute file:///abs/path is recommended for production.
CLI override: --schema-dir
Migration from path: (pre-v0.6)
Earlier configs used ontology.schemas[].path. That field was removed in v0.6:
path: entries, the gateway fails fast at startup with a one-line message naming the new field. There is no auto-migration — the URI shape forces an honest decision between embedded defaults and an explicit on-disk override.
Future schemes
The resolver registry is open. Planned additions:s3://bucket/prefix/<family>— schemas in object storage, no image rebuild for schema updates.https://example.com/schemas/<family>.tar.gz— pull tarballs from a publishing endpoint.configmap://<name>/<key>— a native k8s ConfigMap reader (thefile://mount path covers most needs today).
internal/schema/resolve/ without changing the config UX or the loader. Track them in the GitHub issue queue.
