RegistryInvariantCell
Defined in: packages/contracts/src/registry-invariant.ts:41
One (entry × claims fixture) cell handed to a RegistryInvariantSpec.holds predicate.
Properties
Section titled “Properties”claims
Section titled “claims”claims:
object
Defined in: packages/contracts/src/registry-invariant.ts:49
Index Signature
Section titled “Index Signature”[key: string]: unknown
app_metadata?
Section titled “app_metadata?”
optionalapp_metadata?:object
Index Signature
Section titled “Index Signature”[key: string]: unknown
app_metadata.roles?
Section titled “app_metadata.roles?”
optionalroles?:string[]
optionalsub?:string
entry:
SyncTableEntry
Defined in: packages/contracts/src/registry-invariant.ts:44
fixtureName
Section titled “fixtureName”fixtureName:
string
Defined in: packages/contracts/src/registry-invariant.ts:48
The fixture’s name, as declared in RegistryInvariantSpec.claimsFixtures.
key:
string
Defined in: packages/contracts/src/registry-invariant.ts:43
The entry’s key in the registry.
renderedPolicies
Section titled “renderedPolicies”renderedPolicies:
RenderedPolicy[]
Defined in: packages/contracts/src/registry-invariant.ts:62
Every RLS policy attached to the entry’s Postgres table, rendered to inline SQL text.
renderedWhere
Section titled “renderedWhere”renderedWhere:
RowFilterShape|null
Defined in: packages/contracts/src/registry-invariant.ts:60
The read filter this entry sends to Electric FOR THESE CLAIMS — the real read pipeline’s output
(buildRowFilterShape, exactly what the proxy calls per shape request).
null means unfiltered, and covers both ways that arises: the entry declares no shape/rowFilter
at all, or its customWhere returned null for these claims (the documented “bypass filtering, every
row is visible” answer — e.g. an admin persona). Both are the same statement about what the client
receives, which is what an invariant reasons about; distinguish them via entry.shape?.rowFilter if a
predicate genuinely needs to.
rowClass
Section titled “rowClass”rowClass:
string|undefined
Defined in: packages/contracts/src/registry-invariant.ts:46
The entry’s classification, or undefined when it carries none (possible only for a appliesTo predicate).