Skip to content

Documentation / @etherfold/browser / BrowserStreamSeedOptions

Type Alias: BrowserStreamSeedOptions ​

BrowserStreamSeedOptions = object

Defined in: packages/browser/src/publishedStart.ts:165

WHERE A PUBLISHED STREAM SEED COMES FROM, as a host takes it: the seed option of createIndexerState, and the seed field of a worker host's spec.

Convenience, not a trust boundary and not a safety mechanism ​

The loader is callable directly (installStreamSeed, @etherfold/core) and an application may drive the install itself; this option saves it sequencing the call, and gives the host's surface something to publish. It is NOT a safety mechanism: the install carries its own RESOLVED stream config and sets it on the keeper before it addresses anything (ADR-0067), so it is correct whether it runs before or after a generation exists.

The trust contract travels with the locations (ADR-0066) ​

The CALLER names the locations and owns that choice: the loader fetches where it is pointed and nowhere else, so there is no origin check to make. Keep BOTH the list and any expectedContentHash in the BUILD -- a pin read from the same place as the artifact proves nothing -- and read installStreamSeed's own JSDoc before shipping one, including what it does NOT defend against (OMISSION, which is impossible within the premise rather than deferred).

Properties ​

expectedContentHash? ​

optional expectedContentHash?: string

Defined in: packages/browser/src/publishedStart.ts:178

An OPTIONAL content hash, verbatim as the producer printed it (sha256:<hex>). Only an IMMUTABLE, release-tied artifact can have one pinned: a build cannot know the hash of a ROLLING artifact, and rolling is how this is ordinarily deployed.


fetch? ​

optional fetch?: typeof globalThis.fetch

Defined in: packages/browser/src/publishedStart.ts:188

Injectable for tests and for a host with its own retry/timeout policy.


locations ​

locations: StreamSeedLocation | readonly StreamSeedLocation[]

Defined in: packages/browser/src/publishedStart.ts:171

The ORDERED list, freshest first, walked until one is usable. A relative, hostless path is a first-class location and is what a BUILD-EMBEDDED artifact is listed as, ordinarily LAST so the app still starts when the remote is gone.


maxEventsPerBatch? ​

optional maxEventsPerBatch?: number

Defined in: packages/browser/src/publishedStart.ts:186

How many events one save carries, at most. Defaults to the loader's own 1,000.


reachBackTo? ​

optional reachBackTo?: number

Defined in: packages/browser/src/publishedStart.ts:184

The block the client will ask this stream FROM, which a seed must reach back to or be refused. Defaults to the source's own earliest startBlock, which is exactly what a fresh generation's load() asks for.