StreamGateOptions
Defined in: packages/server/src/circuits/edge.ts:64
Properties
Section titled “Properties”durableStreamsUrl
Section titled “durableStreamsUrl”durableStreamsUrl:
string
Defined in: packages/server/src/circuits/edge.ts:90
Base URL of the durable-streams server, with whatever stream prefix it is mounted under — the
same value the engine is given as CIRCUITS_DS_URL, since both address the same paths.
entitlements?
Section titled “entitlements?”
optionalentitlements?:EntitlementSet
Defined in: packages/server/src/circuits/edge.ts:85
The live entitlement set backing the shared tier. Optional for the same reason it is optional on the control plane: a deployment whose registry declares no shared shape has nothing to ask it. Absent, a shared-tier grant is DENIED rather than waved through — the two sides then agree that an unconfigured entitlement set can never permit.
fetch?
Section titled “fetch?”
optionalfetch?: (input,init?) =>Promise<Response>
Defined in: packages/server/src/circuits/edge.ts:99
Injected for tests; defaults to the ambient fetch.
Parameters
Section titled “Parameters”string | Request | URL
RequestInit
Returns
Section titled “Returns”Promise<Response>
key:
CryptoKey
Defined in: packages/server/src/circuits/edge.ts:66
Verifies the stream token. Minted by the control plane in the same process.
params?
Section titled “params?”
optionalparams?:Record<string,unknown>
Defined in: packages/server/src/circuits/edge.ts:97
Deployment-supplied runtime params, handed to an egress rowTransform as its context’s params
— the same values SubscribeOptions.params hands to rowFilter.customPredicate. A deployment
that configures them on one side and not the other gives its registry two different runtime
environments for one shape, so mount both from the same source.
registry
Section titled “registry”registry:
SyncTableRegistry
Defined in: packages/server/src/circuits/edge.ts:78
The registry the granted shapes are declared in — REQUIRED, unlike every other option here.
The gate needs it to answer one question per read: does this shape declare a
serverProjection.rowTransform, and must its bytes therefore be rewritten before they reach the
client (ADR-0055 decision 5)? A gate that cannot see the registry cannot know, so it would proxy
a transform shape’s raw rows — including the serverOnlyColumns fetched solely for the transform
— with nothing anywhere reporting a discrepancy. Making it required is what makes that mount
impossible to write, which is why it is not optional “for deployments with no transform shape”:
the leak arrives on the day someone adds the first one, in a file nobody was editing.