index
@fungi.computer/app-release / index
Classes
Section titled “Classes”AppReleaseInputError
Section titled “AppReleaseInputError”Fixed, non-leaking input failure for one public parser boundary.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseInputError(
parserName):AppReleaseInputError
Parameters
Section titled “Parameters”parserName
Section titled “parserName”Returns
Section titled “Returns”Overrides
Section titled “Overrides”Error.constructor
Properties
Section titled “Properties”parserName
Section titled “parserName”
readonlyparserName:AppReleaseParserName
AppReleaseCommandInputError
Section titled “AppReleaseCommandInputError”Fixed non-leaking input failure for one public catalog command.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseCommandInputError(
commandName):AppReleaseCommandInputError
Parameters
Section titled “Parameters”commandName
Section titled “commandName”Returns
Section titled “Returns”Overrides
Section titled “Overrides”Error.constructor
Properties
Section titled “Properties”commandName
Section titled “commandName”
readonlycommandName:AppReleaseCommandName
AppReleaseInvalidStoreResultError
Section titled “AppReleaseInvalidStoreResultError”Fixed non-leaking failure when a foreign Store success is structurally invalid.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseInvalidStoreResultError():
AppReleaseInvalidStoreResultError
Returns
Section titled “Returns”AppReleaseInvalidStoreResultError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseImmutableConflictError
Section titled “AppReleaseImmutableConflictError”Fixed conflict when one Release ID receives changed immutable input.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseImmutableConflictError():
AppReleaseImmutableConflictError
Returns
Section titled “Returns”AppReleaseImmutableConflictError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseOwnerAppAbsentError
Section titled “AppReleaseOwnerAppAbsentError”Fixed failure when a new Release references an App that does not exist.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseOwnerAppAbsentError(
appId):AppReleaseOwnerAppAbsentError
Parameters
Section titled “Parameters”Returns
Section titled “Returns”Overrides
Section titled “Overrides”Error.constructor
Properties
Section titled “Properties”
readonlyappId:AppId
AppReleaseSurfaceOwnerAppAbsentError
Section titled “AppReleaseSurfaceOwnerAppAbsentError”Fixed failure when a new public Surface references an App that does not exist.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseSurfaceOwnerAppAbsentError(
appId):AppReleaseSurfaceOwnerAppAbsentError
Parameters
Section titled “Parameters”Returns
Section titled “Returns”AppReleaseSurfaceOwnerAppAbsentError
Overrides
Section titled “Overrides”Error.constructor
Properties
Section titled “Properties”
readonlyappId:AppId
AppReleaseStoreUnavailableError
Section titled “AppReleaseStoreUnavailableError”Fixed non-leaking failure when the injected App Release store is unavailable.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseStoreUnavailableError():
AppReleaseStoreUnavailableError
Returns
Section titled “Returns”AppReleaseStoreUnavailableError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseReleaseAbsentError
Section titled “AppReleaseReleaseAbsentError”Fixed failure when artifact verification names no stored Release.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseReleaseAbsentError():
AppReleaseReleaseAbsentError
Returns
Section titled “Returns”Overrides
Section titled “Overrides”Error.constructor
AppReleaseArtifactUnavailableError
Section titled “AppReleaseArtifactUnavailableError”Fixed non-leaking failure when the injected artifact reader is unavailable.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseArtifactUnavailableError():
AppReleaseArtifactUnavailableError
Returns
Section titled “Returns”AppReleaseArtifactUnavailableError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseArtifactMissingError
Section titled “AppReleaseArtifactMissingError”Fixed failure when the requested artifact cannot be found.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseArtifactMissingError():
AppReleaseArtifactMissingError
Returns
Section titled “Returns”AppReleaseArtifactMissingError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseArtifactDigestMismatchError
Section titled “AppReleaseArtifactDigestMismatchError”Fixed failure when resolved artifact bytes do not match the expected digest.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseArtifactDigestMismatchError():
AppReleaseArtifactDigestMismatchError
Returns
Section titled “Returns”AppReleaseArtifactDigestMismatchError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseArtifactInvalidSnapshotError
Section titled “AppReleaseArtifactInvalidSnapshotError”Fixed failure when a hostile artifact read cannot form a valid snapshot.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseArtifactInvalidSnapshotError():
AppReleaseArtifactInvalidSnapshotError
Returns
Section titled “Returns”AppReleaseArtifactInvalidSnapshotError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseUnimplementedError
Section titled “AppReleaseUnimplementedError”Error thrown when a catalog operation is not implemented in this slice.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseUnimplementedError():
AppReleaseUnimplementedError
Returns
Section titled “Returns”Overrides
Section titled “Overrides”Error.constructor
AppReleaseTransitionReleaseAbsentError
Section titled “AppReleaseTransitionReleaseAbsentError”Fixed failure when a transition names no stored Release.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseTransitionReleaseAbsentError():
AppReleaseTransitionReleaseAbsentError
Returns
Section titled “Returns”AppReleaseTransitionReleaseAbsentError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseTransitionReleaseUnverifiedError
Section titled “AppReleaseTransitionReleaseUnverifiedError”Fixed failure when promotion or rollback names an unverified Release.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseTransitionReleaseUnverifiedError():
AppReleaseTransitionReleaseUnverifiedError
Returns
Section titled “Returns”AppReleaseTransitionReleaseUnverifiedError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseTransitionArtifactIncompatibleError
Section titled “AppReleaseTransitionArtifactIncompatibleError”Fixed failure when a website selection names a non-HTML artifact.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseTransitionArtifactIncompatibleError():
AppReleaseTransitionArtifactIncompatibleError
Returns
Section titled “Returns”AppReleaseTransitionArtifactIncompatibleError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseTransitionReleaseRevokedError
Section titled “AppReleaseTransitionReleaseRevokedError”Fixed failure when promotion or rollback names a revoked Release.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseTransitionReleaseRevokedError():
AppReleaseTransitionReleaseRevokedError
Returns
Section titled “Returns”AppReleaseTransitionReleaseRevokedError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseTransitionSurfaceAbsentError
Section titled “AppReleaseTransitionSurfaceAbsentError”Fixed failure when a transition names no stored public Surface.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseTransitionSurfaceAbsentError():
AppReleaseTransitionSurfaceAbsentError
Returns
Section titled “Returns”AppReleaseTransitionSurfaceAbsentError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseTransitionOwnershipConflictError
Section titled “AppReleaseTransitionOwnershipConflictError”Fixed failure when a Release is owned by another App than its Surface.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseTransitionOwnershipConflictError():
AppReleaseTransitionOwnershipConflictError
Returns
Section titled “Returns”AppReleaseTransitionOwnershipConflictError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseTransitionIdempotencyConflictError
Section titled “AppReleaseTransitionIdempotencyConflictError”Fixed failure when an idempotency key is reused for changed material input.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseTransitionIdempotencyConflictError():
AppReleaseTransitionIdempotencyConflictError
Returns
Section titled “Returns”AppReleaseTransitionIdempotencyConflictError
Overrides
Section titled “Overrides”Error.constructor
AppReleaseTransitionIdUnavailableError
Section titled “AppReleaseTransitionIdUnavailableError”Fixed, non-leaking failure when Cairn cannot issue a transition identity.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleaseTransitionIdUnavailableError():
AppReleaseTransitionIdUnavailableError
Returns
Section titled “Returns”AppReleaseTransitionIdUnavailableError
Overrides
Section titled “Overrides”Error.constructor
AppReleasePublicWebsiteNotFoundError
Section titled “AppReleasePublicWebsiteNotFoundError”Fixed non-leaking failure for malformed, absent, or unselected routes.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleasePublicWebsiteNotFoundError():
AppReleasePublicWebsiteNotFoundError
Returns
Section titled “Returns”AppReleasePublicWebsiteNotFoundError
Overrides
Section titled “Overrides”Error.constructor
AppReleasePublicWebsiteUnavailableError
Section titled “AppReleasePublicWebsiteUnavailableError”Fixed non-leaking failure when public delivery cannot be proven safe.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AppReleasePublicWebsiteUnavailableError():
AppReleasePublicWebsiteUnavailableError
Returns
Section titled “Returns”AppReleasePublicWebsiteUnavailableError
Overrides
Section titled “Overrides”Error.constructor
Type Aliases
Section titled “Type Aliases”AppId =
string&object
Opaque Global App identifier.
Type Declaration
Section titled “Type Declaration”appReleaseKind
Section titled “appReleaseKind”
readonlyappReleaseKind:"AppId"
ReleaseId
Section titled “ReleaseId”ReleaseId =
string&object
Opaque immutable Release identifier.
Type Declaration
Section titled “Type Declaration”appReleaseKind
Section titled “appReleaseKind”
readonlyappReleaseKind:"ReleaseId"
PublicSurfaceId
Section titled “PublicSurfaceId”PublicSurfaceId =
string&object
Opaque anonymous public-Surface identifier.
Type Declaration
Section titled “Type Declaration”appReleaseKind
Section titled “appReleaseKind”
readonlyappReleaseKind:"PublicSurfaceId"
ArtifactRef
Section titled “ArtifactRef”ArtifactRef =
string&object
Opaque, bounded artifact locator for an injected reader.
Type Declaration
Section titled “Type Declaration”appReleaseKind
Section titled “appReleaseKind”
readonlyappReleaseKind:"ArtifactRef"
IdempotencyKey
Section titled “IdempotencyKey”IdempotencyKey =
string&object
Caller-provided idempotency key for one control-plane operation.
Type Declaration
Section titled “Type Declaration”appReleaseKind
Section titled “appReleaseKind”
readonlyappReleaseKind:"IdempotencyKey"
SourceRevision
Section titled “SourceRevision”SourceRevision =
string&object
Pinned lowercase Git source revision.
Type Declaration
Section titled “Type Declaration”appReleaseKind
Section titled “appReleaseKind”
readonlyappReleaseKind:"SourceRevision"
Sha256Digest
Section titled “Sha256Digest”Sha256Digest =
string&object
Lowercase SHA-256 digest with its sha256: prefix.
Type Declaration
Section titled “Type Declaration”appReleaseKind
Section titled “appReleaseKind”
readonlyappReleaseKind:"Sha256Digest"
StableRoute
Section titled “StableRoute”StableRoute =
string&object
Canonical, local origin-relative stable route for a public Surface.
Type Declaration
Section titled “Type Declaration”appReleaseKind
Section titled “appReleaseKind”
readonlyappReleaseKind:"StableRoute"
AppTransitionId
Section titled “AppTransitionId”AppTransitionId =
CairnId<"app-release","transition",1>>
Cairn-issued opaque identity for one owner-issued App transition.
ImmutableArtifactBytes
Section titled “ImmutableArtifactBytes”ImmutableArtifactBytes =
object
Immutable artifact bytes exposed only through fresh copies.
Properties
Section titled “Properties”byteLength
Section titled “byteLength”
readonlybyteLength:number
The immutable snapshot’s bounded byte length.
Methods
Section titled “Methods”copy()
Section titled “copy()”copy():
Uint8Array
Return an independently mutable copy of the immutable snapshot.
Returns
Section titled “Returns”Uint8Array
ArtifactProvenance
Section titled “ArtifactProvenance”ArtifactProvenance =
object
Source and build facts permanently bound to a Release artifact.
Properties
Section titled “Properties”sourceRevision
Section titled “sourceRevision”
readonlysourceRevision:SourceRevision
Pinned source revision from which the artifact was built.
sourceTreeDigest
Section titled “sourceTreeDigest”
readonlysourceTreeDigest:Sha256Digest
Digest of the source tree used for the build.
buildRecipeDigest
Section titled “buildRecipeDigest”
readonlybuildRecipeDigest:Sha256Digest
Digest of the deterministic build recipe.
ReleaseArtifact
Section titled “ReleaseArtifact”ReleaseArtifact =
object
Immutable artifact identity and provenance bound to a Release.
Properties
Section titled “Properties”artifactRef
Section titled “artifactRef”
readonlyartifactRef:ArtifactRef
Opaque reference resolved only by the injected reader.
artifactDigest
Section titled “artifactDigest”
readonlyartifactDigest:Sha256Digest
Digest expected from the resolved artifact bytes.
provenance
Section titled “provenance”
readonlyprovenance:ArtifactProvenance
Write-once source and build provenance.
App =
object
Global App record owned by the catalog.
Properties
Section titled “Properties”
readonlyappId:AppId
Opaque App identity.
Release
Section titled “Release”Release =
object
Immutable App Release record.
Properties
Section titled “Properties”releaseId
Section titled “releaseId”
readonlyreleaseId:ReleaseId
Opaque immutable Release identity.
readonlyappId:AppId
App that owns this Release.
artifact
Section titled “artifact”
readonlyartifact:ReleaseArtifact
Immutable artifact identity and provenance.
PublicSurface
Section titled “PublicSurface”PublicSurface =
object
Anonymous website Surface and its explicit App owner.
Properties
Section titled “Properties”publicSurfaceId
Section titled “publicSurfaceId”
readonlypublicSurfaceId:PublicSurfaceId
Opaque public-Surface identity.
readonlyappId:AppId
App that owns this Surface.
stableRoute
Section titled “stableRoute”
readonlystableRoute:StableRoute
Canonical local route locator for this Surface.
ArtifactMediaType
Section titled “ArtifactMediaType”ArtifactMediaType =
"text/html; charset=utf-8"|"application/vnd.fungi.app-backend+json"|"application/vnd.fungi.app-assets+json"|"application/vnd.fungi.app+json"
Supported immutable artifact representation formats.
VerifiedAppArtifactReference
Section titled “VerifiedAppArtifactReference”VerifiedAppArtifactReference =
Readonly<{artifactRef:ArtifactRef;digest:Sha256Digest;mediaType:Exclude<ArtifactMediaType,"application/vnd.fungi.app+json">>;version:string;byteLength:number; }>
One immutable child reference retained after App publication verification.
DurableBackend
Section titled “DurableBackend”DurableBackend =
Readonly<{runtime:Readonly<{kind:"durable-facet";stateSchema:number; }>;compatibilityDate:string;exportName:string;code:string; }>
Executable descriptor decoded from one verified backend child artifact.
VerifiedBackendProfile
Section titled “VerifiedBackendProfile”VerifiedBackendProfile =
Omit<DurableBackend,"code">>
Backend facts needed for admission, with executable code deliberately absent.
VerifiedAppDescription
Section titled “VerifiedAppDescription”VerifiedAppDescription =
Readonly<{format:"fungi-app-v1";ui:VerifiedAppArtifactReference|null;backend:Readonly<{artifact:VerifiedAppArtifactReference;profile:VerifiedBackendProfile; }> |null; }>
Normalized immutable App description persisted by the verification owner.
ResolvedAppMetadata
Section titled “ResolvedAppMetadata”ResolvedAppMetadata =
Readonly<{release:Release;digest:Sha256Digest;description:VerifiedAppDescription; }>
Verified metadata returned without reading any artifact body.
PublicSurfaceAuthority
Section titled “PublicSurfaceAuthority”PublicSurfaceAuthority =
Readonly<{currentReleaseId:ReleaseId;sequence:number;app:App;release:Release;surface:PublicSurface;digest:Sha256Digest;revocation:ReleaseRevocation;description:VerifiedAppDescription; }>
Current metadata-only authority for one selected public Surface.
VerifiedArtifactRead
Section titled “VerifiedArtifactRead”VerifiedArtifactRead =
object
Successful, verified artifact read.
Properties
Section titled “Properties”
readonlykind:"verified"
Discriminant for a verified immutable representation snapshot.
digest
Section titled “digest”
readonlydigest:Sha256Digest
Computed digest matching the requested digest.
mediaType
Section titled “mediaType”
readonlymediaType:ArtifactMediaType
Explicit artifact formats; an asset root is never interpreted as HTML or backend code.
readonlybytes:ImmutableArtifactBytes
Immutable representation byte snapshot.
byteLength
Section titled “byteLength”
readonlybyteLength:number
Byte length matching the immutable snapshot.
AppUi =
Omit<VerifiedArtifactRead,"kind"|"mediaType"> > &object
Verified UI representation; selection authority remains with its host.
Type Declaration
Section titled “Type Declaration”mediaType
Section titled “mediaType”
readonlymediaType:"text/html; charset=utf-8"|"application/vnd.fungi.app-assets+json"
AppDescription
Section titled “AppDescription”AppDescription =
Readonly<{ui:AppUi|null;backend:Readonly<{digest:Sha256Digest;descriptor:DurableBackend; }> |null; }>
Normalized immutable code description shared by Surface and facet consumers.
ResolvedApp
Section titled “ResolvedApp”ResolvedApp =
AppDescription&Readonly<{release:Release;digest:Sha256Digest; }>
One eligible Release with all declared executable parts resolved.
ArtifactReadResult
Section titled “ArtifactReadResult”ArtifactReadResult =
VerifiedArtifactRead| {kind:"unavailable"; } | {kind:"missing"; } | {kind:"digest-mismatch";actualDigest:Sha256Digest; }
Closed result union returned by an injected artifact reader.
ArtifactVerificationIntent
Section titled “ArtifactVerificationIntent”ArtifactVerificationIntent =
"publication"
Names the owner-controlled verification work requested for one read.
ArtifactReader
Section titled “ArtifactReader”ArtifactReader =
object
Storage-neutral port that resolves an opaque reference and verifies bytes.
Methods
Section titled “Methods”read()
Section titled “read()”read(
input):Promise<ArtifactReadResult>>
Resolve and verify exactly one expected immutable artifact.
Parameters
Section titled “Parameters”artifactRef
Section titled “artifactRef”Opaque artifact reference; never a storage capability.
expectedDigest
Section titled “expectedDigest”Digest that the resolved bytes must match.
expectedObject?
Section titled “expectedObject?”{ version: string; byteLength: number; }
Child reference pins the native object version as well as its content.
expectedObject.version
Section titled “expectedObject.version”string
expectedObject.byteLength
Section titled “expectedObject.byteLength”number
verification?
Section titled “verification?”Publication asks the reader to verify every object named by an asset manifest. Omitted for ordinary delivery, which verifies one requested object at the asset handler boundary.
Returns
Section titled “Returns”Promise<ArtifactReadResult>
AppReleaseStoreFailure
Section titled “AppReleaseStoreFailure”AppReleaseStoreFailure =
object
Closed infrastructure failure projected by an App Release store.
Properties
Section titled “Properties”
readonlykind:"unavailable"
AppReleaseStoreSuccess
Section titled “AppReleaseStoreSuccess”AppReleaseStoreSuccess<
Value> > =object
Closed successful outcome for one App Release store operation.
Type Parameters
Section titled “Type Parameters”Value
Properties
Section titled “Properties”
readonlykind:"success"
readonlyvalue:Value
AppReleaseStoreOperationFailure
Section titled “AppReleaseStoreOperationFailure”AppReleaseStoreOperationFailure =
object
Closed failed outcome for one App Release store operation.
Properties
Section titled “Properties”
readonlykind:"failure"
failure
Section titled “failure”
readonlyfailure:AppReleaseStoreFailure
AppReleaseStoreResult
Section titled “AppReleaseStoreResult”AppReleaseStoreResult<
Value> > =AppReleaseStoreSuccess<Value> > |AppReleaseStoreOperationFailure
Closed envelope returned by every App Release store operation.
Type Parameters
Section titled “Type Parameters”Value
AppRead
Section titled “AppRead”AppRead = {
kind:"found";app:App; } | {kind:"absent"; }
Explicit result of looking up one Global App.
AppCreate
Section titled “AppCreate”AppCreate = {
kind:"created";app:App; } | {kind:"existing";app:App; }
Explicit result of atomically creating or observing one Global App.
ReleaseRead
Section titled “ReleaseRead”ReleaseRead = {
kind:"found";release:Release; } | {kind:"absent"; }
Explicit result of looking up one immutable Release.
ReleaseCreate
Section titled “ReleaseCreate”ReleaseCreate = {
kind:"created";release:Release; } | {kind:"existing";release:Release; }
Explicit result of atomically creating or observing one immutable Release.
PublicSurfaceRead
Section titled “PublicSurfaceRead”PublicSurfaceRead = {
kind:"found";surface:PublicSurface; } | {kind:"absent"; }
Explicit result of looking up one App-owned anonymous public Surface.
PublicSurfaceCreate
Section titled “PublicSurfaceCreate”PublicSurfaceCreate = {
kind:"created";surface:PublicSurface; } | {kind:"existing";surface:PublicSurface; }
Explicit result of atomically creating or observing one public Surface.
ReleaseVerification
Section titled “ReleaseVerification”ReleaseVerification = {
kind:"verified";digest:Sha256Digest;mediaType:"application/vnd.fungi.app+json";description:VerifiedAppDescription; } | {kind:"unverified"; }
Verification fact retained after a valid immutable artifact snapshot.
ReleaseRevocation
Section titled “ReleaseRevocation”ReleaseRevocation = {
kind:"active"; } | {kind:"revoked"; }
Revocation fact retained independently from immutable Release bytes.
ReleaseLifecycle
Section titled “ReleaseLifecycle”ReleaseLifecycle = {
kind:"found";release:Release;verification:ReleaseVerification;revocation:ReleaseRevocation; } | {kind:"absent"; }
Durable Release facts observed by transition policy.
PublicSurfaceLifecycle
Section titled “PublicSurfaceLifecycle”PublicSurfaceLifecycle = {
kind:"found";surface:PublicSurface;selection: {kind:"none"; } | {kind:"selected";releaseId:ReleaseId; }; } | {kind:"absent"; }
Durable public-Surface selection fact observed by transition policy.
PublicWebsiteRepresentation
Section titled “PublicWebsiteRepresentation”PublicWebsiteRepresentation =
Readonly<{releaseId:ReleaseId;digest:Sha256Digest;mediaType:"text/html; charset=utf-8";byteLength:number;bytes:ImmutableArtifactBytes; }>
Safe immutable website bytes selected by the current Surface authority.
PublicAssetBuildRepresentation
Section titled “PublicAssetBuildRepresentation”PublicAssetBuildRepresentation =
Omit<PublicWebsiteRepresentation,"mediaType"> > &object
Verified root manifest selected by the existing public Surface owner.
Type Declaration
Section titled “Type Declaration”mediaType
Section titled “mediaType”
readonlymediaType:"application/vnd.fungi.app-assets+json"
TransitionLookup
Section titled “TransitionLookup”TransitionLookup = {
kind:"absent"; } | {kind:"found";receipt:TransitionReceipt; } | {kind:"conflict"; }
Result of looking up an operation-scoped idempotency key.
TransitionPersistence
Section titled “TransitionPersistence”TransitionPersistence = {
kind:"created";receipt:TransitionReceipt; } | {kind:"existing";receipt:TransitionReceipt; } | {kind:"conflict"; } | {kind:"identity-collision"; } | {kind:"lifecycle-conflict"; }
Result of atomically recording one transition and its receipt.
PromiseAppReleaseStore
Section titled “PromiseAppReleaseStore”PromiseAppReleaseStore =
object
Effect-free projection of the App Release store boundary.
Properties
Section titled “Properties”readReleaseLifecycle?
Section titled “readReleaseLifecycle?”
readonlyoptionalreadReleaseLifecycle?: (releaseId) =>Promise<AppReleaseStoreResult<ReleaseLifecycle>>>>
Read immutable Release facts needed by owner-issued transitions.
Parameters
Section titled “Parameters”releaseId
Section titled “releaseId”Returns
Section titled “Returns”Promise<AppReleaseStoreResult<ReleaseLifecycle>>
recordReleaseVerification?
Section titled “recordReleaseVerification?”
readonlyoptionalrecordReleaseVerification?: (input) =>Promise<AppReleaseStoreResult<{kind:"recorded"; }>>
Atomically retain that one Release artifact was successfully verified.
Parameters
Section titled “Parameters”releaseId
Section titled “releaseId”digest
Section titled “digest”mediaType
Section titled “mediaType”"application/vnd.fungi.app+json"
description
Section titled “description”Returns
Section titled “Returns”Promise<AppReleaseStoreResult<{ kind:
"recorded"; }>>
readTransition?
Section titled “readTransition?”
readonlyoptionalreadTransition?: (request) =>Promise<AppReleaseStoreResult<TransitionLookup>>>>
Read one operation-scoped transition receipt before policy checks.
Parameters
Section titled “Parameters”request
Section titled “request”Returns
Section titled “Returns”Promise<AppReleaseStoreResult<TransitionLookup>>
persistTransition?
Section titled “persistTransition?”
readonlyoptionalpersistTransition?: (request,receipt) =>Promise<AppReleaseStoreResult<TransitionPersistence>>>>
Atomically persist a validated transition and its terminal receipt.
Parameters
Section titled “Parameters”request
Section titled “request”receipt
Section titled “receipt”Returns
Section titled “Returns”Promise<AppReleaseStoreResult<TransitionPersistence>>
Methods
Section titled “Methods”readApp()
Section titled “readApp()”readApp(
appId):Promise<AppReleaseStoreResult<AppRead>>>>
Look up one App by its opaque identifier.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”Promise<AppReleaseStoreResult<AppRead>>
createAppIfAbsent()
Section titled “createAppIfAbsent()”createAppIfAbsent(
app):Promise<AppReleaseStoreResult<AppCreate>>>>
Create an App if absent, or return the immutable existing record.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”Promise<AppReleaseStoreResult<AppCreate>>
readRelease()
Section titled “readRelease()”readRelease(
releaseId):Promise<AppReleaseStoreResult<ReleaseRead>>>>
Look up one immutable Release by its opaque identifier.
Parameters
Section titled “Parameters”releaseId
Section titled “releaseId”Returns
Section titled “Returns”Promise<AppReleaseStoreResult<ReleaseRead>>
createReleaseIfAbsent()
Section titled “createReleaseIfAbsent()”createReleaseIfAbsent(
release):Promise<AppReleaseStoreResult<ReleaseCreate>>>>
Create a Release if absent, or return the immutable existing record.
Parameters
Section titled “Parameters”release
Section titled “release”Returns
Section titled “Returns”Promise<AppReleaseStoreResult<ReleaseCreate>>
readPublicSurface()
Section titled “readPublicSurface()”readPublicSurface(
publicSurfaceId):Promise<AppReleaseStoreResult<PublicSurfaceRead>>>>
Look up one public Surface by its opaque identifier.
Parameters
Section titled “Parameters”publicSurfaceId
Section titled “publicSurfaceId”Returns
Section titled “Returns”Promise<AppReleaseStoreResult<PublicSurfaceRead>>
createPublicSurfaceIfAbsent()
Section titled “createPublicSurfaceIfAbsent()”createPublicSurfaceIfAbsent(
surface):Promise<AppReleaseStoreResult<PublicSurfaceCreate>>>>
Create a public Surface if absent, or return the immutable existing record.
Parameters
Section titled “Parameters”surface
Section titled “surface”Returns
Section titled “Returns”Promise<AppReleaseStoreResult<PublicSurfaceCreate>>
ReleaseTransition
Section titled “ReleaseTransition”ReleaseTransition = {
kind:"promotion";publicSurfaceId:PublicSurfaceId;releaseId:ReleaseId;idempotencyKey:IdempotencyKey; } | {kind:"rollback";publicSurfaceId:PublicSurfaceId;releaseId:ReleaseId;idempotencyKey:IdempotencyKey; } | {kind:"revocation";releaseId:ReleaseId;idempotencyKey:IdempotencyKey; }
Owner-issued transition request.
TransitionReceipt
Section titled “TransitionReceipt”TransitionReceipt =
object
Terminal receipt for an owner-issued transition.
Properties
Section titled “Properties”transition
Section titled “transition”
readonlytransition:ReleaseTransition
transitionId
Section titled “transitionId”
readonlytransitionId:AppTransitionId
AppReleaseCatalogOptions
Section titled “AppReleaseCatalogOptions”AppReleaseCatalogOptions =
object
Inputs for the catalog factory.
Properties
Section titled “Properties”artifactReader
Section titled “artifactReader”
readonlyartifactReader:ArtifactReader
readonlystore:PromiseAppReleaseStore
artifactPolicy?
Section titled “artifactPolicy?”
readonlyoptionalartifactPolicy?:object
maxBytes
Section titled “maxBytes”
readonlymaxBytes:number
maxManifestBytes?
Section titled “maxManifestBytes?”
readonlyoptionalmaxManifestBytes?:number
AppReleaseCatalog
Section titled “AppReleaseCatalog”AppReleaseCatalog =
object
Public App Release catalog and public-website resolution seam.
Methods
Section titled “Methods”createApp()
Section titled “createApp()”createApp(
app):Promise<App>>
Create an App once and return the canonical stored record.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”Promise<App>
createRelease()
Section titled “createRelease()”createRelease(
release):Promise<Release>>
Create a Release once and return the canonical stored record.
Parameters
Section titled “Parameters”release
Section titled “release”Returns
Section titled “Returns”Promise<Release>
verifyReleaseArtifact()
Section titled “verifyReleaseArtifact()”verifyReleaseArtifact(
releaseId):Promise<VerifiedArtifactRead>>
Resolve and verify the immutable artifact bound to a Release.
Parameters
Section titled “Parameters”releaseId
Section titled “releaseId”Returns
Section titled “Returns”Promise<VerifiedArtifactRead>
resolveEligibleReleaseArtifact()
Section titled “resolveEligibleReleaseArtifact()”resolveEligibleReleaseArtifact(
releaseId):Promise<VerifiedArtifactRead&object>>
Read one verified, active Release snapshot and recheck its lifecycle. The caller owns selection authorization and must resolve before each use.
Parameters
Section titled “Parameters”releaseId
Section titled “releaseId”Returns
Section titled “Returns”Promise<VerifiedArtifactRead & object>
resolveEligibleApp()
Section titled “resolveEligibleApp()”resolveEligibleApp(
releaseId):Promise<ResolvedApp>>
Resolve the UI and backend bound by one eligible immutable Release.
Parameters
Section titled “Parameters”releaseId
Section titled “releaseId”Returns
Section titled “Returns”Promise<ResolvedApp>
resolveEligibleAppMetadata()
Section titled “resolveEligibleAppMetadata()”resolveEligibleAppMetadata(
releaseId):Promise<Readonly<{release:Release;digest:Sha256Digest;description:VerifiedAppDescription; }>>
Resolve verified App metadata without reading any artifact body.
Parameters
Section titled “Parameters”releaseId
Section titled “releaseId”Returns
Section titled “Returns”Promise<Readonly<{ release: Release; digest:
Sha256Digest; description:
VerifiedAppDescription; }>>
resolvePublicSurfaceAuthority()
Section titled “resolvePublicSurfaceAuthority()”resolvePublicSurfaceAuthority(
stableRoute):Promise<Readonly<{currentReleaseId:ReleaseId;sequence:number;app:App;release:Release;surface:PublicSurface;digest:Sha256Digest;revocation:ReleaseRevocation;description:VerifiedAppDescription; }>>
Resolve one selected Surface’s current metadata authority without bodies.
Parameters
Section titled “Parameters”stableRoute
Section titled “stableRoute”Returns
Section titled “Returns”Promise<Readonly<{ currentReleaseId: ReleaseId;
sequence: number; app: App; release: Release;
surface: PublicSurface; digest:
Sha256Digest; revocation:
ReleaseRevocation; description:
VerifiedAppDescription; }>>
resolvePublicSurfaceAuthorityVersion()
Section titled “resolvePublicSurfaceAuthorityVersion()”resolvePublicSurfaceAuthorityVersion(
stableRoute,releaseId):Promise<Readonly<{currentReleaseId:ReleaseId;sequence:number;app:App;release:Release;surface:PublicSurface;digest:Sha256Digest;revocation:ReleaseRevocation;description:VerifiedAppDescription; }>>
Resolve one previously selected Release’s current metadata authority.
Parameters
Section titled “Parameters”stableRoute
Section titled “stableRoute”releaseId
Section titled “releaseId”Returns
Section titled “Returns”Promise<Readonly<{ currentReleaseId: ReleaseId;
sequence: number; app: App; release: Release;
surface: PublicSurface; digest:
Sha256Digest; revocation:
ReleaseRevocation; description:
VerifiedAppDescription; }>>
createPublicSurface()
Section titled “createPublicSurface()”createPublicSurface(
surface):Promise<PublicSurface>>
Create a public Surface once and return the canonical stored record.
Parameters
Section titled “Parameters”surface
Section titled “surface”Returns
Section titled “Returns”Promise<PublicSurface>
transition()
Section titled “transition()”transition(
request):Promise<TransitionReceipt>>
Apply one owner-issued promotion, rollback, or revocation request.
Parameters
Section titled “Parameters”request
Section titled “request”Returns
Section titled “Returns”Promise<TransitionReceipt>
resolvePublicAssetBuild()
Section titled “resolvePublicAssetBuild()”resolvePublicAssetBuild(
stableRoute):Promise<PublicAssetBuildRepresentation>>
Resolve an asset-build root through the same current Surface authority.
Parameters
Section titled “Parameters”stableRoute
Section titled “stableRoute”Returns
Section titled “Returns”Promise<PublicAssetBuildRepresentation>
resolvePublicAssetBuildVersion()
Section titled “resolvePublicAssetBuildVersion()”resolvePublicAssetBuildVersion(
stableRoute,releaseId):Promise<PublicAssetBuildRepresentation>>
Resolve a pinned asset-build root through Surface authority.
Parameters
Section titled “Parameters”stableRoute
Section titled “stableRoute”releaseId
Section titled “releaseId”Returns
Section titled “Returns”Promise<PublicAssetBuildRepresentation>
resolvePublicWebsite()
Section titled “resolvePublicWebsite()”resolvePublicWebsite(
stableRoute):Promise<Readonly<{releaseId:ReleaseId;digest:Sha256Digest;mediaType:"text/html; charset=utf-8";byteLength:number;bytes:ImmutableArtifactBytes; }>>
Resolve the current eligible immutable website representation.
Parameters
Section titled “Parameters”stableRoute
Section titled “stableRoute”Returns
Section titled “Returns”Promise<Readonly<{ releaseId: ReleaseId; digest:
Sha256Digest; mediaType: "text/html; charset=utf-8";
byteLength: number; bytes:
ImmutableArtifactBytes; }>>
resolvePublicWebsiteVersion()
Section titled “resolvePublicWebsiteVersion()”resolvePublicWebsiteVersion(
stableRoute,releaseId):Promise<Readonly<{releaseId:ReleaseId;digest:Sha256Digest;mediaType:"text/html; charset=utf-8";byteLength:number;bytes:ImmutableArtifactBytes; }>>
Resolve a pinned eligible immutable website representation.
Parameters
Section titled “Parameters”stableRoute
Section titled “stableRoute”releaseId
Section titled “releaseId”Returns
Section titled “Returns”Promise<Readonly<{ releaseId: ReleaseId; digest:
Sha256Digest; mediaType: "text/html; charset=utf-8";
byteLength: number; bytes:
ImmutableArtifactBytes; }>>
AppReleaseParserName
Section titled “AppReleaseParserName”AppReleaseParserName =
"AppId"|"ReleaseId"|"PublicSurfaceId"|"ArtifactRef"|"IdempotencyKey"|"SourceRevision"|"Sha256Digest"|"StableRoute"|"AppTransitionId"
Names the parser boundary that rejected an untrusted value.
AppReleaseCommandName
Section titled “AppReleaseCommandName”AppReleaseCommandName =
"createApp"|"createRelease"|"verifyReleaseArtifact"|"resolveEligibleReleaseArtifact"|"resolveEligibleAppMetadata"|"resolvePublicSurfaceAuthority"|"resolvePublicSurfaceAuthorityVersion"|"createPublicSurface"|"transition"
Names a public catalog command whose hostile input was rejected.
Variables
Section titled “Variables”parseAppId
Section titled “parseAppId”
constparseAppId: (input) =>string&object
Parse an opaque Global App identifier.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”string & object
parseAppTransitionId
Section titled “parseAppTransitionId”
constparseAppTransitionId: (input) =>AppTransitionId
Parse a Cairn-issued App transition identity.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”parseReleaseId
Section titled “parseReleaseId”
constparseReleaseId: (input) =>string&object
Parse an opaque immutable Release identifier.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”string & object
parsePublicSurfaceId
Section titled “parsePublicSurfaceId”
constparsePublicSurfaceId: (input) =>string&object
Parse an opaque anonymous public-Surface identifier.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”string & object
parseArtifactRef
Section titled “parseArtifactRef”
constparseArtifactRef: (input) =>string&object
Parse an opaque bounded artifact reference.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”string & object
parseIdempotencyKey
Section titled “parseIdempotencyKey”
constparseIdempotencyKey: (input) =>string&object
Parse a caller-provided idempotency key.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”string & object
parseSourceRevision
Section titled “parseSourceRevision”
constparseSourceRevision: (input) =>string&object
Parse a pinned lowercase Git source revision.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”string & object
parseSha256Digest
Section titled “parseSha256Digest”
constparseSha256Digest: (input) =>string&object
Parse a lowercase SHA-256 digest.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”string & object
parseStableRoute
Section titled “parseStableRoute”
constparseStableRoute: (input) =>string&object
Parse a canonical local origin-relative stable route.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”string & object
Functions
Section titled “Functions”createAppReleaseCatalog()
Section titled “createAppReleaseCatalog()”createAppReleaseCatalog(
options):AppReleaseCatalog
Create the App Release catalog.
The default Promise facade adapts each foreign port once before calling the same Effect-native core.