github microsoft/FluidFramework client_v2.0.0-internal.7.0.0
Fluid Framework v2.0.0-internal.7.0.0 (major)

latest releases: client_v2.2.1, client_v2.1.1, client_v2.0.7...
11 months ago

Fluid Framework v2.0.0-internal.7.0.0

container-runtime-definitions: IDataStoreWithBindToContext_Deprecated interface removed

IDataStoreWithBindToContext_Deprecated has been removed. It has been deprecated for a while and cannot be used anymore.

container-runtime-definitions: getAliasedDataStoreEntryPoint in IContainerRuntime is now required

getAliasedDataStoreEntryPoint was added to IContainerRuntime in 2.0.0-internal.6.0 and is now required.

container-loader: Container caching in the Loader is removed

Container caching in the Loader has been removed. Do not to rely on caching and inform the FluidFramework team ASAP if you cannot do so.

odsp-driver: Load container in readonly mode when driver throws DriverErrorType.outOfStorage

Handle DriverErrorType.outOfStorage error from driver and load the container in readonly mode. Currently there is no handling and when the join session throws this error, the container will get closed. With this we use NoDeltaStream object as connection and load the container in read mode, so that it loads properly. We also notify the that the container is "readonly" through the event on delta manager so that apps can listen to this and show any UX etc. The app can listen to the event like this:

container.deltaManager.on(
	"readonly",
	(readonly?: boolean, readonlyConnectionReason?: { text: string; error?: IErrorBase }) => {
		// error?.errorType will be equal to DriverErrorType.outOfStorage in this case
		// App logic
	},
);

container-loader: Containers will connect in read-mode by default

When a container is loaded, it will connect in read-mode unless it is loaded with a pending state containing stashed ops.

runtime-definitions: bindToContext API removed

bindToContext has been removed from FluidDataStoreRuntime, IFluidDataStoreContext and MockFluidDataStoreContext. This has been deprecated for several releases and cannot be used anymore.

aqueduct: ContainerRuntimeFactory constructors have changed

The following class constructors have been changed to allow for better flexible in arguments passed:

  • BaseContainerRuntimeFactory
  • ContainerRuntimeFactoryWithDefaultDataStore
  • RuntimeFactory

They now use a single object for constructor params. Example change to be made:

// Old
new BaseContainerRuntimeFactory(
	myRegistryEntries,
	myDependencyContainer,
	myRequestHandlers,
	myRuntimeOptions,
	myProvideEntryPoint,
);

// New
new BaseContainerRuntimeFactory({
	registryEntries: myRegistryEntries,
	dependencyContainer: myDependencyContainer,
	requestHandlers: myRequestHandlers,
	runtimeOptions: myRuntimeOptions,
	provideEntryPoint: myProvideEntryPoint,
});

aqueduct: EventForwarder and IDisposable members removed from PureDataObject

The EventForwarder and IDisposable members of PureDataObject were deprecated in 2.0.0-internal.5.2.0 and have now been removed.

If your code was overriding any methods/properties from EventForwarder and or IDisposable on a class that inherits (directly or transitively) from PureDataObject, you'll have to remove the override keyword.

test-utils: provideEntryPoint is required

The optional provideEntryPoint method has become required on a number of constructors. A value will need to be provided to the following classes:

  • BaseContainerRuntimeFactory
  • RuntimeFactory
  • ContainerRuntime (constructor and loadRuntime)
  • FluidDataStoreRuntime

See testContainerRuntimeFactoryWithDefaultDataStore.ts for an example implemtation of provideEntryPoint for ContainerRuntime. See pureDataObjectFactory.ts for an example implementation of provideEntryPoint for DataStoreRuntime.

Subsequently, various entryPoint and getEntryPoint() endpoints have become required. Please see containerRuntime.ts for example implementations of these APIs.

For more details, see Removing-IFluidRouter.md

container-runtime: initializeEntryPoint renamed to provideEntryPoint

The naming of initializeEntryPoint has been changed to provideEntryPoint. Please change the property name in relevant calls to ContainerRuntime.loadRuntime(...).

container-runtime: Removing some deprecated and likely unused ContainerRuntime APIs

  • IGCRuntimeOptions.sweepAllowed
  • ContainerRuntime.reSubmitFn

sequence: New API for specifying spatial positioning of intervals

Previously intervals were specified with only an index. Now the model is a bit more nuanced in that you can specify positions that lie before or after a given index. This makes it more clear how interval endpoints should interact with changes to the sequence. See the docs for SequencePlace for additional context.

sequence: IIntervalCollection.change must specify both endpoints

IIntervalCollection.change no longer allows an endpoint to be undefined. undefined can unintentionally result in end < start. To adapt to this change, simply use the current position of the endpoint that is not intended to change.

sequence: Remove compareStarts and compareEnds from IIntervalHelpers

These methods are redudant with the functions IInterval.compareStart and IInterval.compareEnd respectively.

sequence: Remove the mergeTreeUseNewLengthCalculations flag

The mergeTreeUseNewLengthCalculations flag has been removed, because the feature was enabled by default in 2.0.0-internal.6.0.0.

Minimum TypeScript version now 5.1.6

The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.

Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0

This included the following changes from the protocol-definitions release:

  • Updating signal interfaces for some planned improvements. The intention is split the interface between signals submitted by clients to the server and the resulting signals sent from the server to clients.
    • A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has been added, which will be the typing for signals sent from the client to the server. Both extend a new ISignalMessageBase interface that contains common members.
  • The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.

Server upgrade: dependencies on Fluid server packages updated to 2.0.1

Dependencies on the following Fluid server package have been updated to version 2.0.1:

  • @fluidframework/gitresources: 2.0.1
  • @fluidframework/server-kafka-orderer: 2.0.1
  • @fluidframework/server-lambdas: 2.0.1
  • @fluidframework/server-lambdas-driver: 2.0.1
  • @fluidframework/server-local-server: 2.0.1
  • @fluidframework/server-memory-orderer: 2.0.1
  • @fluidframework/protocol-base: 2.0.1
  • @fluidframework/server-routerlicious: 2.0.1
  • @fluidframework/server-routerlicious-base: 2.0.1
  • @fluidframework/server-services: 2.0.1
  • @fluidframework/server-services-client: 2.0.1
  • @fluidframework/server-services-core: 2.0.1
  • @fluidframework/server-services-ordering-kafkanode: 2.0.1
  • @fluidframework/server-services-ordering-rdkafka: 2.0.1
  • @fluidframework/server-services-ordering-zookeeper: 2.0.1
  • @fluidframework/server-services-shared: 2.0.1
  • @fluidframework/server-services-telemetry: 2.0.1
  • @fluidframework/server-services-utils: 2.0.1
  • @fluidframework/server-test-utils: 2.0.1
  • tinylicious: 2.0.1

routerlicious-driver: remove dead blob aggregation concepts and code

Dead concepts blob aggregation like aggregateBlobsSmallerThanBytes and minBlobSize have been removed.

@fluidframework/container-utils package removed

All members of the @fluidframework/container-utils package have been deprecated and the package is now removed.

Migration by API member:

  • ClientSessionExpiredError (deprecated in 2.0.0-internal.6.2.0): No replacement API offered.
  • DataCorruptionError (deprecated in 2.0.0-internal.6.2.0): Import from @fluidframework/telemetry-utils instead.
  • DataProcessingError (deprecated in 2.0.0-internal.6.2.0): Import from @fluidframework/telemetry-utils instead.
  • DeltaManagerProxyBase (deprecated in 2.0.0-internal.6.1.0): No replacement API offered.
  • extractSafePropertiesFromMessage (deprecated in 2.0.0-internal.6.2.0): Import from @fluidframework/telemetry-utils instead.
  • GenericError (deprecated in 2.0.0-internal.6.2.0): Import from @fluidframework/telemetry-utils instead.
  • ThrottlingWarning (deprecated in 2.0.0-internal.6.2.0): No replacement API offered.
  • UsageError (deprecated in 2.0.0-internal.6.2.0): Import from @fluidframework/telemetry-utils instead.

Deprecations

DEPRECATED: resolveHandle and IFluidHandleContext deprecated on IContainerRuntime

The resolveHandle(...) and get IFluidHandleContext() methods have been deprecated on the following interfaces:

  • IContainerRuntime
  • IContainerRuntimeBase

Requesting arbitrary URLs has been deprecated on IContainerRuntime. Please migrate all usage to the IContainerRuntime.getEntryPoint() method if trying to obtain the application-specified root object.

See Removing-IFluidRouter.md for more details.

DEPRECATED: container-loader: Various request related APIs have been deprecated

Please remove all calls to the following functions and instead use the new entryPoint pattern:

  • requestFluidObject
  • requestResolvedObjectFromContainer
  • getDefaultObjectFromContainer
  • getObjectWithIdFromContainer
  • getObjectFromContainer

See Removing-IFluidRouter.md for more details.

DEPRECATED: core-interfaces: IFluidRouter and IProvideFluidRouter deprecated

IFluidRouter and IProvideFluidRouter have been deprecated. Please remove all usages of these interfaces and migrate to the new entryPoint pattern.

See Removing-IFluidRouter.md for more details.

DEPRECATED: container-runtime: requestHandlers are deprecated

The concept of requestHandlers has been deprecated. Please migrate all usage of the following APIs to the new entryPoint pattern:

  • requestHandler property in ContainerRuntime.loadRuntime(...)
  • RuntimeRequestHandler
  • RuntimeRequestHandlerBuilder
  • defaultFluidObjectRequestHandler(...)
  • defaultRouteRequestHandler(...)
  • mountableViewRequestHandler(...)
  • buildRuntimeRequestHandler(...)
  • createFluidObjectResponse(...)
  • handleFromLegacyUri(...)
  • rootDataStoreRequestHandler(...)

See Removing-IFluidRouter.md for more details.

DEPRECATED: container-definitions: IContainer's and IDataStore's IFluidRouter capabilities are deprecated

IFluidRouter and request({ url: "/" }) on IContainer and IDataStore are deprecated and will be removed in a future major release. Please migrate all usage to the appropriate getEntryPoint() or entryPoint APIs.

See Removing-IFluidRouter.md for more details.

Don't miss a new FluidFramework release

NewReleases is sending notifications on new releases.