Expand description
Normalized fact schema.
Every analysis pass emits its results as a stream of
Fact records sharing one canonical shape. A fact is:
- A stable
FactId— the SHA-256 of the canonical serialisation of every other field, so re-emitting the same fact under the same inputs produces the same id. - A
FactKinddiscriminator naming the family it belongs to (declaration, reference, edge, opacity, …). - A typed payload — the per-family struct carrying the actual evidence.
- A
FactProvenancerecord naming the analysis pass that emitted the fact (component name, version, run id).
Downstream consumers (lineage, doc, SAST, bindings) walk a
FactStore and filter by kind. This keeps the engine’s
internal wiring loose — passes don’t need to know about each
other, only that they emit compatible Facts.
§/oracle evidence
DATABASE-REFERENCE.mdPL/SQL Language Reference — the fact families (declarations, references, dependency edges, dynamic-SQL evidence) trace 1:1 to the PL/SQL declaration / reference / call grammar.LOW-LEVEL-CATALOGS.mdData Dictionary View Families — each fact family has a server-side mirror (ALL_OBJECTSfor declarations,ALL_DEPENDENCIESfor edges,ALL_SOURCE.WRAPPEDfor the wrapped-source opacity fact, …).
Structs§
- Fact
- A fact record. Wraps a typed payload with stable id + family
- FactId
- Stable identity for a fact —
fact:<hex>form. - Fact
Provenance - Provenance — which analysis pass produced the fact, when, at what engine version.
- Fact
Store - Append-only collector — analysis passes push facts in; consumers walk them out.
Enums§
- Fact
Kind - What family a fact belongs to. Drives consumer dispatch without having to match the payload.
- Fact
Payload - Discriminated payload — one variant per
FactKind. The per-family types are intentionally lightweight; consumers that need richer detail re-fetch from the originating crate’s model (e.g. lineage’sLineageResult).
Functions§
- mint_
fact - Build a
Factwith the canonical id derived from(kind, provenance, payload). The id isfact:<hex>so it doesn’t collide with thesha256:namespace other engine bytes use.