Skip to main content
Version: v1

IContainerContext Interface

The ContainerContext is a proxy standing between the Container and the Container's IRuntime. This allows the Container to terminate the connection to the IRuntime.

Specifically, there is an event on Container, onContextChanged, which mean a new code proposal has been loaded, so the old IRuntime is no longer valid, as its ContainerContext has been revoked, and the Container has created a new ContainerContext.

Signature​

export interface IContainerContext extends IDisposable

Extends: IDisposable

Properties​

PropertyModifiersTypeDescription
attachStateAttachStateIndicates the attachment state of the container to a host service.
audienceIAudience | undefined
baseSnapshotISnapshotTree | undefined
clientDetailsIClientDetails
clientIdstring | undefined
closeFn(error?: ICriticalContainerError) => void
connectedboolean
deltaManagerIDeltaManager<ISequencedDocumentMessage, IDocumentMessage>
existingboolean | undefined
idstringWARNING: this id is meant for telemetry usages ONLY, not recommended for other consumption This id is not supposed to be exposed anywhere else. It is dependant on usage or drivers and scenarios which can change in the future.
loaderILoader
optionsILoaderOptions
pendingLocalStateoptionalunknown
quorumIQuorumClients
scopeFluidObjectAmbient services provided with the context
serviceConfigurationIClientConfiguration | undefined
storageIDocumentStorageService
submitFn(type: MessageType, contents: any, batch: boolean, appData?: any) => number
submitSignalFn(contents: any) => void
taggedLoggerITelemetryBaseLogger

Methods​

MethodAlertsModifiersReturn TypeDescription
getAbsoluteUrl(relativeUrl)optionalPromise<string | undefined>Get an absolute url for a provided container-relative request.
getLoadedFromVersion()IVersion | undefined
getSpecifiedCodeDetails()DeprecatedoptionalIFluidCodeDetails | undefined
updateDirtyContainerState(dirty)void

Property Details​

attachState​

Indicates the attachment state of the container to a host service.

Signature​

readonly attachState: AttachState;

Type: AttachState

audience​

Signature​

readonly audience: IAudience | undefined;

Type: IAudience | undefined

baseSnapshot​

Signature​

readonly baseSnapshot: ISnapshotTree | undefined;

Type: ISnapshotTree | undefined

clientDetails​

Signature​

readonly clientDetails: IClientDetails;

Type: IClientDetails

clientId​

Signature​

readonly clientId: string | undefined;

Type: string | undefined

closeFn​

Signature​

readonly closeFn: (error?: ICriticalContainerError) => void;

Type: (error?: ICriticalContainerError) => void

connected​

Signature​

readonly connected: boolean;

Type: boolean

deltaManager​

Signature​

readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;

Type: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>

existing​

Signature​

readonly existing: boolean | undefined;

Type: boolean | undefined

id​

WARNING: this id is meant for telemetry usages ONLY, not recommended for other consumption This id is not supposed to be exposed anywhere else. It is dependant on usage or drivers and scenarios which can change in the future.

Signature​

readonly id: string;

Type: string

loader​

Signature​

readonly loader: ILoader;

Type: ILoader

options​

Signature​

readonly options: ILoaderOptions;

Type: ILoaderOptions

pendingLocalState​

Signature​

pendingLocalState?: unknown;

Type: unknown

quorum​

Signature​

readonly quorum: IQuorumClients;

Type: IQuorumClients

scope​

Ambient services provided with the context

Signature​

readonly scope: FluidObject;

Type: FluidObject

serviceConfiguration​

Signature​

readonly serviceConfiguration: IClientConfiguration | undefined;

Type: IClientConfiguration | undefined

storage​

Signature​

readonly storage: IDocumentStorageService;

Type: IDocumentStorageService

submitFn​

Signature​

readonly submitFn: (type: MessageType, contents: any, batch: boolean, appData?: any) => number;

Type: (type: MessageType, contents: any, batch: boolean, appData?: any) => number

submitSignalFn​

Signature​

readonly submitSignalFn: (contents: any) => void;

Type: (contents: any) => void

taggedLogger​

Signature​

readonly taggedLogger: ITelemetryBaseLogger;

Type: ITelemetryBaseLogger

Method Details​

getAbsoluteUrl​

Get an absolute url for a provided container-relative request.

Signature​

getAbsoluteUrl?(relativeUrl: string): Promise<string | undefined>;

Parameters​

ParameterTypeDescription
relativeUrlstring

A relative request within the container

TODO: Optional for backwards compatibility. Make non-optional in version 0.19

Returns​

Return type: Promise<string | undefined>

getLoadedFromVersion​

Signature​

getLoadedFromVersion(): IVersion | undefined;

Returns​

Return type: IVersion | undefined

getSpecifiedCodeDetails​

This API is deprecated and will be removed in a future release.

This method is provided as a migration tool for customers currently reading the code details from within the Container by directly accessing the Quorum proposals. The code details should not be accessed from within the Container as this requires coupling between the container contents and the code loader. Direct access to Quorum proposals will be removed in an upcoming release, and in a further future release this migration tool will be removed.

Signature​

getSpecifiedCodeDetails?(): IFluidCodeDetails | undefined;

Returns​

Return type: IFluidCodeDetails | undefined

updateDirtyContainerState​

Signature​

updateDirtyContainerState(dirty: boolean): void;

Parameters​

ParameterTypeDescription
dirtyboolean