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 andloadRuntime
)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 in2.0.0-internal.6.2.0
): No replacement API offered.DataCorruptionError
(deprecated in2.0.0-internal.6.2.0
): Import from @fluidframework/telemetry-utils instead.DataProcessingError
(deprecated in2.0.0-internal.6.2.0
): Import from @fluidframework/telemetry-utils instead.DeltaManagerProxyBase
(deprecated in2.0.0-internal.6.1.0
): No replacement API offered.extractSafePropertiesFromMessage
(deprecated in2.0.0-internal.6.2.0
): Import from @fluidframework/telemetry-utils instead.GenericError
(deprecated in2.0.0-internal.6.2.0
): Import from @fluidframework/telemetry-utils instead.ThrottlingWarning
(deprecated in2.0.0-internal.6.2.0
): No replacement API offered.UsageError
(deprecated in2.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 inContainerRuntime.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.