Explicit, offline integrity diagnostics.
Nothing in this namespace runs on EACL's authorization hot path. Callers choose when to pay for a database scan or a schema-version read.
Explicit, offline integrity diagnostics. Nothing in this namespace runs on EACL's authorization hot path. Callers choose when to pay for a database scan or a schema-version read.
(client-schema-status client)Captures one current client basis and reports whether it carries EACL's certified schema generation.
The shared Acl has no construction-time schema generation to become stale: every read derives schema state from its selected immutable basis and the runtime registry is generation-keyed. Consequently the old :outdated state is intentionally gone. This explicit diagnostic performs one ordinary source acquisition and never runs on an authorization hot path.
Captures one current client basis and reports whether it carries EACL's certified schema generation. The shared Acl has no construction-time schema generation to become stale: every read derives schema state from its selected immutable basis and the runtime registry is generation-keyed. Consequently the old :outdated state is intentionally gone. This explicit diagnostic performs one ordinary source acquisition and never runs on an authorization hot path.
(dangling-relationship-halves db)Returns a lazy sequence of relationship halves whose matching peer half is absent. This is an offline O(number-of-relationships) database scan.
Returns a lazy sequence of relationship halves whose matching peer half is absent. This is an offline O(number-of-relationships) database scan.
(dangling-relationship-report db)(dangling-relationship-report db options)Scans dangling relationship halves without retaining the scan head.
Returns the total count, counts by half, and at most :sample-size examples
(default 20). This is an offline O(number-of-relationships) operation.
Scans dangling relationship halves without retaining the scan head. Returns the total count, counts by half, and at most `:sample-size` examples (default 20). This is an offline O(number-of-relationships) operation.
(qualifier-proof-input snapshot)Captures offline qualifier, ownership, source, version, and Relation proof inputs.
Captures offline qualifier, ownership, source, version, and Relation proof inputs.
(qualifier-report snapshot)(qualifier-report snapshot options)(repair-tx-batches db)(repair-tx-batches db {:keys [batch-size] :or {batch-size 1000}})Returns lazy Datomic transaction batches for all dangling halves visible in
db. The default batch size is 1000 dangling halves, keeping repair memory
bounded.
Batches are partitioned by HALF rather than by transaction op, so a retraction and the :eacl/relation-version stamp that publishes it always land in the same transaction. Partitioning the ops instead would let a batch boundary fall between them, and the batch holding the bare retraction would change relationship data while announcing nothing.
Each batch also carries the source database's schema-generation guard. A batch prepared before a concurrent relation removal therefore fails instead of recreating the retracted relation eid with only a version stamp.
Returns lazy Datomic transaction batches for all dangling halves visible in `db`. The default batch size is 1000 dangling halves, keeping repair memory bounded. Batches are partitioned by HALF rather than by transaction op, so a retraction and the :eacl/relation-version stamp that publishes it always land in the same transaction. Partitioning the ops instead would let a batch boundary fall between them, and the batch holding the bare retraction would change relationship data while announcing nothing. Each batch also carries the source database's schema-generation guard. A batch prepared before a concurrent relation removal therefore fails instead of recreating the retracted relation eid with only a version stamp.
(repair-tx-data dangling-halves)Lazily converts dangling-half maps into Datomic retractions.
Each retraction carries an :eacl/relation-version stamp for the relation it clears. Without it a repair would change relationship data while publishing nothing, and any client with result caching enabled would keep serving the ghost grant this repair exists to remove.
Stays lazy: stamps are emitted inline rather than deduplicated up front, which is safe because they are idempotent within a transaction.
Lazily converts dangling-half maps into Datomic retractions. Each retraction carries an :eacl/relation-version stamp for the relation it clears. Without it a repair would change relationship data while publishing nothing, and any client with result caching enabled would keep serving the ghost grant this repair exists to remove. Stays lazy: stamps are emitted inline rather than deduplicated up front, which is safe because they are idempotent within a transaction.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |