Skip to main content
Version: v1

IContainer Interface

The Host's view of the Container and its connection to storage

Signature​

export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRouter

Extends: IEventProvider<IContainerEvents>, IFluidRouter

Properties​

PropertyTypeDescription
attachStateAttachStateIndicates the attachment state of the container to a host service.
audienceIAudienceThe audience information for all clients currently associated with the document in the current session
closedbooleanReturns true if the container has been closed, otherwise false
connectionStateConnectionStateProvides the current state of the container's connection to the ordering service
deltaManagerIDeltaManager<ISequencedDocumentMessage, IDocumentMessage>The Delta Manager supporting the op stream for this Container
isDirtybooleanReturns true if the container is dirty, i.e. there are user changes that has not been saved Closing container in this state results in data loss for user. Container usually gets into this situation due to loss of connectivity.
readOnlyInfoReadOnlyInfo

Tells if container is in read-only mode. Data stores should listen for "readonly" notifications and disallow user making changes to data stores. Readonly state can be because of no storage write permission, or due to host forcing readonly mode for container.

We do not differentiate here between no write access to storage vs. host disallowing changes to container - in all cases container runtime and data stores should respect readonly state and not allow local changes.

It is undefined if we have not yet established websocket connection and do not know if user has write access to a file.

resolvedUrlIResolvedUrl | undefinedRepresents the resolved url to the Container Will be undefined only when the container is in the detatched state.

Methods​

MethodReturn TypeDescription
attach(request)Promise<void>

Attaches the Container to the Container specified by the given Request.

TODO - in the case of failure options should give a retry policy. Or some continuation function that allows attachment to a secondary document.

close(error)voidCloses the container
closeAndGetPendingLocalState()stringCloses the container and returns serialized local state intended to be given to a newly loaded container
connect()voidAttempts to connect the container to the delta stream and process ops
disconnect()voidDisconnects the container from the delta stream and stops processing ops
getAbsoluteUrl(relativeUrl)Promise<string | undefined>Get an absolute url for a provided container-relative request url. If the container is not attached, this will return undefined.
getLoadedCodeDetails()IFluidCodeDetails | undefinedGet the code details that were used to load the container.
getQuorum()IQuorumClientsThe collection of write clients which were connected as of the current sequence number. Also contains a map of key-value pairs that must be agreed upon by all clients before being accepted.
getSpecifiedCodeDetails()IFluidCodeDetails | undefinedGet the code details that are currently specified for the container.
proposeCodeDetails(codeDetails)Promise<boolean>Propose new code details that define the code to be loaded for this container's runtime. The returned promise will be true when the proposal is accepted, and false if the proposal is rejected.
request(request)Promise<IResponse>Issue a request against the container for a resource.
serialize()stringExtract the snapshot from the detached container.

Property Details​

attachState​

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

Signature​

readonly attachState: AttachState;

Type: AttachState

audience​

The audience information for all clients currently associated with the document in the current session

Signature​

readonly audience: IAudience;

Type: IAudience

closed​

Returns true if the container has been closed, otherwise false

Signature​

readonly closed: boolean;

Type: boolean

connectionState​

Provides the current state of the container's connection to the ordering service

Signature​

readonly connectionState: ConnectionState;

Type: ConnectionState

deltaManager​

The Delta Manager supporting the op stream for this Container

Signature​

deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;

Type: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>

isDirty​

Returns true if the container is dirty, i.e. there are user changes that has not been saved Closing container in this state results in data loss for user. Container usually gets into this situation due to loss of connectivity.

Signature​

readonly isDirty: boolean;

Type: boolean

readOnlyInfo​

Tells if container is in read-only mode. Data stores should listen for "readonly" notifications and disallow user making changes to data stores. Readonly state can be because of no storage write permission, or due to host forcing readonly mode for container.

We do not differentiate here between no write access to storage vs. host disallowing changes to container - in all cases container runtime and data stores should respect readonly state and not allow local changes.

It is undefined if we have not yet established websocket connection and do not know if user has write access to a file.

Signature​

readonly readOnlyInfo: ReadOnlyInfo;

Type: ReadOnlyInfo

resolvedUrl​

Represents the resolved url to the Container Will be undefined only when the container is in the detatched state.

Signature​

resolvedUrl: IResolvedUrl | undefined;

Type: IResolvedUrl | undefined

Method Details​

attach​

Attaches the Container to the Container specified by the given Request.

TODO - in the case of failure options should give a retry policy. Or some continuation function that allows attachment to a secondary document.

Signature​

attach(request: IRequest): Promise<void>;

Parameters​

ParameterTypeDescription
requestIRequest

Returns​

Return type: Promise<void>

close​

Closes the container

Signature​

close(error?: ICriticalContainerError): void;

Parameters​

ParameterModifiersTypeDescription
erroroptionalICriticalContainerError

closeAndGetPendingLocalState​

Closes the container and returns serialized local state intended to be given to a newly loaded container

Signature​

closeAndGetPendingLocalState(): string;

Returns​

Return type: string

connect​

Attempts to connect the container to the delta stream and process ops

Signature​

connect(): void;

disconnect​

Disconnects the container from the delta stream and stops processing ops

Signature​

disconnect(): void;

getAbsoluteUrl​

Get an absolute url for a provided container-relative request url. If the container is not attached, this will return undefined.

Signature​

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

Parameters​

ParameterTypeDescription
relativeUrlstringA container-relative request URL

Returns​

Return type: Promise<string | undefined>

getLoadedCodeDetails​

Get the code details that were used to load the container.

Signature​

getLoadedCodeDetails(): IFluidCodeDetails | undefined;

Returns​

The code details that were used to load the container if it is loaded, undefined if it is not yet loaded.

Return type: IFluidCodeDetails | undefined

getQuorum​

The collection of write clients which were connected as of the current sequence number. Also contains a map of key-value pairs that must be agreed upon by all clients before being accepted.

Signature​

getQuorum(): IQuorumClients;

Returns​

Return type: IQuorumClients

getSpecifiedCodeDetails​

Get the code details that are currently specified for the container.

Signature​

getSpecifiedCodeDetails(): IFluidCodeDetails | undefined;

Returns​

The current code details if any are specified, undefined if none are specified.

Return type: IFluidCodeDetails | undefined

proposeCodeDetails​

Propose new code details that define the code to be loaded for this container's runtime. The returned promise will be true when the proposal is accepted, and false if the proposal is rejected.

Signature​

proposeCodeDetails(codeDetails: IFluidCodeDetails): Promise<boolean>;

Parameters​

ParameterTypeDescription
codeDetailsIFluidCodeDetails

Returns​

Return type: Promise<boolean>

request​

Issue a request against the container for a resource.

Signature​

request(request: IRequest): Promise<IResponse>;

Parameters​

ParameterTypeDescription
requestIRequestThe request to be issued against the container

Returns​

Return type: Promise<IResponse>

serialize​

Extract the snapshot from the detached container.

Signature​

serialize(): string;

Returns​

Return type: string