Skip to content

Expose guarded fact ingestion over HTTP#315

Merged
justinjoy merged 1 commit into
mainfrom
fact-http-management
May 14, 2026
Merged

Expose guarded fact ingestion over HTTP#315
justinjoy merged 1 commit into
mainfrom
fact-http-management

Conversation

@justinjoy

Copy link
Copy Markdown
Contributor

Summary

  • Add guarded HTTP endpoints for graph create/list/seal, schema registration, and TSV fact batch append.
  • Enforce tenant/path/query agreement before fact mutations and keep graph storage details out of HTTP responses.
  • Allow graph lifecycle and schema registration to remain separate by permitting empty graph creation without query declarations.

Validation

  • meson test -C builddir-issue50-fact --print-errorlogs (71 OK, 1 skipped)
  • meson test -C builddir-issue50-default --print-errorlogs (67 OK, 1 skipped)

Graph, schema, and append handlers share the daemon's guarded bearer/session authorization path and keep malformed TSV batches fully validated before storage mutation. Empty graph creation is permitted so HTTP graph lifecycle and schema registration can remain separate operations.

Constraint: use the existing graph-management permission because the built-in permission manifest is template-bound.
Rejected: extending the permission catalog in this change | it would require a template manifest migration outside the endpoint surface.
Confidence: high
Scope-risk: moderate
Directive: Keep tenant/path/query agreement checks before fact mutations and keep graph storage paths out of HTTP responses.
Tested: meson test -C builddir-issue50-fact --print-errorlogs; meson test -C builddir-issue50-default --print-errorlogs
Not-tested: JSONL and Arrow ingestion formats are intentionally deferred.
Co-authored-by: OmX <omx@oh-my-codex.dev>
@justinjoy justinjoy merged commit c571281 into main May 14, 2026
3 checks passed
@justinjoy justinjoy deleted the fact-http-management branch May 14, 2026 05:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant