Skip to main content

IContainerRuntimeBase Interface

A reduced set of functionality of IContainerRuntime that a data store context/data store runtime will need TODO: this should be merged into IFluidDataStoreContext

This API is provided for existing users, but is not recommended for new users.

To use, import via @fluidframework/runtime-definitions/legacy.

For more information about our API support guarantees, see here.

Signature

/** @sealed */
export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents>

Extends: IEventProvider<IContainerRuntimeBaseEvents>

Properties

Property Alerts Modifiers Type Description
baseLogger Alpha readonly ITelemetryBaseLogger
clientDetails Alpha readonly IClientDetails
disposed Alpha readonly boolean
submitSignal Alpha (type: string, content: unknown, targetClientId?: string) => void Submits a container runtime level signal to be sent to other clients.

Methods

Method Alerts Return Type Description
_createDataStoreWithProps(pkg, props, id) Deprecated, Alpha Promise<IDataStore>
createDataStore(pkg, loadingGroupId) Alpha Promise<IDataStore> Creates a data store and returns an object that exposes a handle to the data store's entryPoint, and also serves as the data store's router. The data store is not bound to a container, and in such state is not persisted to storage (file). Storing the entryPoint handle (or any other handle inside the data store, e.g. for DDS) into an already attached DDS (or non-attached DDS that will eventually get attached to storage) will result in this store being attached to storage.
createDetachedDataStore(pkg, loadingGroupId) Alpha IFluidDataStoreContextDetached Creates detached data store context. Only after context.attachRuntime() is called, data store initialization is considered complete.
generateDocumentUniqueId() Alpha number | string

Generates a new ID that is guaranteed to be unique across all sessions for this container. It could be in compact form (non-negative integer, oppotunistic), but it could also be UUID string. UUIDs generated will have low entropy in groups and will compress well. It can be leveraged anywhere in container where container unique IDs are required, i.e. any place that uses uuid() and stores result in container is likely candidate to start leveraging this API. If you always want to convert to string, instead of doing String(generateDocumentUniqueId()), consider doing encodeCompactIdToString(generateDocumentUniqueId()).

For more details, please see IIdCompressor.generateDocumentUniqueId()

getAbsoluteUrl(relativeUrl) Alpha Promise<string | undefined> Get an absolute url for a provided container-relative request. Returns undefined if the container or data store isn't attached to storage.
getAliasedDataStoreEntryPoint(alias) Alpha Promise<IFluidHandle<FluidObject> | undefined> Returns the aliased data store's entryPoint, given the alias.
getAudience() Alpha IAudience Returns the current audience.
getQuorum() Alpha IQuorumClients Returns the current quorum.
getSnapshotForLoadingGroupId(loadingGroupIds, pathParts) Alpha Promise<{ snapshotTree: ISnapshotTree; sequenceNumber: number; }> Api to fetch the snapshot from the service for a loadingGroupIds.
orderSequentially(callback) Alpha void

Invokes the given callback and guarantees that all operations generated within the callback will be ordered sequentially.

If the callback throws an error, the container will close and the error will be logged.

uploadBlob(blob, signal) Alpha Promise<IFluidHandle<ArrayBufferLike>>

Property Details

baseLogger

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

readonly baseLogger: ITelemetryBaseLogger;

Type: ITelemetryBaseLogger

clientDetails

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

readonly clientDetails: IClientDetails;

Type: IClientDetails

disposed

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

readonly disposed: boolean;

Type: boolean

submitSignal

Submits a container runtime level signal to be sent to other clients.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

submitSignal: (type: string, content: unknown, targetClientId?: string) => void;

Type: (type: string, content: unknown, targetClientId?: string) => void

Method Details

_createDataStoreWithProps

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

0.16 Issue #1537, #3631

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

_createDataStoreWithProps(pkg: Readonly<string | string[]>, props?: any, id?: string): Promise<IDataStore>;

Parameters

Parameter Modifiers Type Description
pkg Readonly<string | string[]>
props optional any
id optional string

Returns

Return type: Promise<IDataStore>

createDataStore

Creates a data store and returns an object that exposes a handle to the data store's entryPoint, and also serves as the data store's router. The data store is not bound to a container, and in such state is not persisted to storage (file). Storing the entryPoint handle (or any other handle inside the data store, e.g. for DDS) into an already attached DDS (or non-attached DDS that will eventually get attached to storage) will result in this store being attached to storage.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

createDataStore(pkg: Readonly<string | string[]>, loadingGroupId?: string): Promise<IDataStore>;

Parameters

Parameter Modifiers Type Description
pkg Readonly<string | string[]> Package name of the data store factory
loadingGroupId optional string This represents the group of the datastore within a container or its snapshot. When not specified the datastore will belong to a default group. Read more about it in this README

Returns

Return type: Promise<IDataStore>

createDetachedDataStore

Creates detached data store context. Only after context.attachRuntime() is called, data store initialization is considered complete.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

createDetachedDataStore(pkg: Readonly<string[]>, loadingGroupId?: string): IFluidDataStoreContextDetached;

Parameters

Parameter Modifiers Type Description
pkg Readonly<string[]> Package name of the data store factory
loadingGroupId optional string This represents the group of the datastore within a container or its snapshot. When not specified the datastore will belong to a default group. Read more about it in this README.

Returns

Return type: IFluidDataStoreContextDetached

generateDocumentUniqueId

Generates a new ID that is guaranteed to be unique across all sessions for this container. It could be in compact form (non-negative integer, oppotunistic), but it could also be UUID string. UUIDs generated will have low entropy in groups and will compress well. It can be leveraged anywhere in container where container unique IDs are required, i.e. any place that uses uuid() and stores result in container is likely candidate to start leveraging this API. If you always want to convert to string, instead of doing String(generateDocumentUniqueId()), consider doing encodeCompactIdToString(generateDocumentUniqueId()).

For more details, please see IIdCompressor.generateDocumentUniqueId()

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

generateDocumentUniqueId(): number | string;

Returns

Return type: number | string

getAbsoluteUrl

Get an absolute url for a provided container-relative request. Returns undefined if the container or data store isn't attached to storage.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

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

Parameters

Parameter Type Description
relativeUrl string A relative request within the container

Returns

Return type: Promise<string | undefined>

getAliasedDataStoreEntryPoint

Returns the aliased data store's entryPoint, given the alias.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

getAliasedDataStoreEntryPoint(alias: string): Promise<IFluidHandle<FluidObject> | undefined>;

Parameters

Parameter Type Description
alias string The alias for the data store.

Returns

The data store's entry point (@fluidframework/core-interfaces#IFluidHandle) if it exists and is aliased. Returns undefined if no data store has been assigned the given alias.

Return type: Promise<IFluidHandle<FluidObject> | undefined>

getAudience

Returns the current audience.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

getAudience(): IAudience;

Returns

Return type: IAudience

getQuorum

Returns the current quorum.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

getQuorum(): IQuorumClients;

Returns

Return type: IQuorumClients

getSnapshotForLoadingGroupId

Api to fetch the snapshot from the service for a loadingGroupIds.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

getSnapshotForLoadingGroupId(loadingGroupIds: string[], pathParts: string[]): Promise<{
snapshotTree: ISnapshotTree;
sequenceNumber: number;
}>;

Parameters

Parameter Type Description
loadingGroupIds string[] LoadingGroupId for which the snapshot is asked for.
pathParts string[] Parts of the path, which we want to extract from the snapshot tree.

Returns

  • snapshotTree and the sequence number of the snapshot.

Return type: Promise<{ snapshotTree: ISnapshotTree; sequenceNumber: number; }>

orderSequentially

Invokes the given callback and guarantees that all operations generated within the callback will be ordered sequentially.

If the callback throws an error, the container will close and the error will be logged.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

orderSequentially(callback: () => void): void;

Parameters

Parameter Type Description
callback () => void

uploadBlob

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;

Parameters

Parameter Modifiers Type Description
blob ArrayBufferLike
signal optional AbortSignal

Returns

Return type: Promise<IFluidHandle<ArrayBufferLike>>