|
|
|
@ -0,0 +1,101 @@
|
|
|
|
|
<!-- THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -->
|
|
|
|
|
|
|
|
|
|
# Fluid Framework v2.0.0-rc.4.0.0
|
|
|
|
|
|
|
|
|
|
## Breaking changes
|
|
|
|
|
|
|
|
|
|
### Minor API fixes for "@fluidframework/tree" package.
|
|
|
|
|
|
|
|
|
|
Changes constructor for `FieldSchema` from public to private. Users should call `makeFieldSchema` to create instance of `FieldSchema`.
|
|
|
|
|
|
|
|
|
|
### telemetry-utils: Internal telemetry types removed from public API surface
|
|
|
|
|
|
|
|
|
|
We have updated the tags for the following telemetry-related types in the FluidFramework: TelemetryEventCategory, TelemetryEventPropertyTypeExt, ITelemetryPropertiesExt, ITelemetryGenericEventExt, ITelemetryErrorEventExt, ITelemetryPerformanceEventExt, ITelemetryLoggerExt. For developers using any of these types, the primary action required is to transition to using the corresponding "base" type. For example, replace ITelemetryPerformanceEventExt with ITelemetryBaseEvent from @core-interfaces.
|
|
|
|
|
|
|
|
|
|
### Audience & connection sequencing improvements
|
|
|
|
|
|
|
|
|
|
Here are breaking changes in Audience behavior:
|
|
|
|
|
|
|
|
|
|
1. IAudience no longer implements EventEmmiter. If you used addListener() or removeListener(), please replace with on() & off() respectively.
|
|
|
|
|
2. IAudience interface implements getSelf() method and "selfChanged" event.
|
|
|
|
|
3. IContainerContext.audience is no longer optional
|
|
|
|
|
4. "connected" events are now raised (various API surfaces - IContainer, IContainerRuntime, IFluidDataStoreRuntime, etc.) a bit later in reconnection sequence for "read" connections - only after client receives its own "join" signal and caught up on ops, which makes it symmetrical with "write" connections.
|
|
|
|
|
|
|
|
|
|
- If this change in behavior breaks some scenario, please let us know immediately, but you can revert that behavior using the following feature gates:
|
|
|
|
|
- "Fluid.Container.DisableCatchUpBeforeDeclaringConnected"
|
|
|
|
|
- "Fluid.Container.DisableJoinSignalWait"
|
|
|
|
|
|
|
|
|
|
### matrix: SharedMatrix class hidden
|
|
|
|
|
|
|
|
|
|
The `SharedMatrix` class has been hidden from the alpha API. In its place:
|
|
|
|
|
|
|
|
|
|
- The constant `SharedMatrix` is exposed as the entrypoint for `SharedMatrix` creation. See documentation on `ISharedObjectKind`.
|
|
|
|
|
- The type `SharedMatrix` is aliased to `ISharedMatrix`, which contains matrix's public API. This API has no semantic changes from previous versions.
|
|
|
|
|
|
|
|
|
|
Additionally, `SharedMatrixFactory` has been deprecated. Rather than construct the factory directly, use `SharedMatrix.getFactory()` (e.g. for usage in `DataObject` registries).
|
|
|
|
|
|
|
|
|
|
This change is part of a larger effort to clean up the API surface of various DDSes we have to leak less implementation details. See e.g. #20030. Most code which uses `SharedMatrix` should continue to function without changes.
|
|
|
|
|
|
|
|
|
|
### cell: SharedCell now uses ISharedObjectKind and does not export class
|
|
|
|
|
|
|
|
|
|
Most users of SharedCell just need to replace usages of the `SharedCell` type with `ISharedCell`.
|
|
|
|
|
|
|
|
|
|
### counter: SharedCounter now uses ISharedObjectKind and does not export the class
|
|
|
|
|
|
|
|
|
|
Most users of `SharedCounter` should be unaffected as long as they stick to the factory patterns supported by ISharedObjectKind.
|
|
|
|
|
|
|
|
|
|
### SharedString now uses ISharedObjectKind and does not export the factory
|
|
|
|
|
|
|
|
|
|
Most users of `SharedString` should be unaffected as long as they stick to the factory patterns supported by ISharedObjectKind. If the actual class type is needed it can be found as `SharedStringClass`.
|
|
|
|
|
|
|
|
|
|
### Rename `AzureMember.userName` to `AzureMember.name` and `IMember.userId` to `IMember.id`
|
|
|
|
|
|
|
|
|
|
1. Renamed `AzureMember.userName` to `AzureMember.name` to establish uniform naming across odsp-client and azure-client.
|
|
|
|
|
2. Renamed `IMember.userId` to `IMember.id` to align with the properties received from AFR.
|
|
|
|
|
|
|
|
|
|
### copyContainer API replaced by the viewContainerVersion API
|
|
|
|
|
|
|
|
|
|
The copyContainer API has been removed in favor of the viewContainerVersion API. viewContainerVersion does not automatically produce a new container, but instead retrieves the existing container version for reading only. To produce a new container with the data, use the normal createContainer API surface and write the data prior to attaching it.
|
|
|
|
|
|
|
|
|
|
### Deprecated members of IFluidHandle are split off into new IFluidHandleInternal interface
|
|
|
|
|
|
|
|
|
|
Split IFluidHandle into two interfaces, `IFluidHandle` and `IFluidHandleInternal`. Code depending on the previously deprecated members of IFluidHandle can access them by using `toFluidHandleInternal` from `@fluidframework/runtime-utils/legacy`.
|
|
|
|
|
|
|
|
|
|
External implementation of the `IFluidHandle` interface are not supported: this change makes the typing better convey this using the `ErasedType` pattern. Any existing and previously working, and now broken, external implementations of `IFluidHandle` should still work at runtime, but will need some unsafe type casts to compile. Such handle implementation may break in the future and thus should be replaced with use of handles produced by the Fluid Framework client packages.
|
|
|
|
|
|
|
|
|
|
### container-runtime: Make op grouping On by default
|
|
|
|
|
|
|
|
|
|
Op grouping feature reduces number of ops on the wire by grouping all ops in a batch. This allows applications to substantially reduce chances of being throttled by service when sending a lot of ops. This feature could be enabled only by applications that have consumed 2.0.0-internal.7.0.2 version and have application version based on it saturated in the marker (to 99.99% or higher). Enabling it too soon will result on old client crashing when processing grouped ops.
|
|
|
|
|
|
|
|
|
|
The feature has been proven in production in Loop app, as it was enabled through feature gates at 100% in PROD. All internal applications (Loop, Whiteboard) that send telemetry to our common Kusto tenant are already at or above minimal required version of runtime.
|
|
|
|
|
|
|
|
|
|
If your application does not satisfy these deployment requirements, please disable op grouping via passing IContainerRuntimeOptions.enableGroupedBatching = false when calling ContainerRuntime.load().
|
|
|
|
|
|
|
|
|
|
### Type Erase IFluidDataStoreRuntime.deltaManager
|
|
|
|
|
|
|
|
|
|
Make IFluidDataStoreRuntime.deltaManager have an opaque type. Marks the following types which were reachable from it as alpha:
|
|
|
|
|
|
|
|
|
|
- IConnectionDetails
|
|
|
|
|
- IDeltaSender
|
|
|
|
|
- IDeltaManagerEvents
|
|
|
|
|
- IDeltaManager
|
|
|
|
|
- IDeltaQueueEvents
|
|
|
|
|
- IDeltaQueue
|
|
|
|
|
- ReadOnlyInfo
|
|
|
|
|
|
|
|
|
|
As a temporary workaround, users needing access to the full delta manager API can use the `@alpha` `toDeltaManagerInternal` API to retrieve its members, but should migrate away from requiring access to those APIs.
|
|
|
|
|
|
|
|
|
|
Implementing a custom `IFluidDataStoreRuntime` is not supported: this is now indicated by it being marked with `@sealed`.
|
|
|
|
|
|
|
|
|
|
### Make several driver types no longer public
|
|
|
|
|
|
|
|
|
|
Move the following types from `@public` to `@alpha`:
|
|
|
|
|
|
|
|
|
|
- ITokenClaims
|
|
|
|
|
- IDocumentMessage
|
|
|
|
|
- IClientConfiguration
|
|
|
|
|
- IAnyDriverError
|
|
|
|
|
- IDriverErrorBase
|
|
|
|
|
- DriverErrorTypes
|
|
|
|
|
|
|
|
|
|
`DriverErrorTypes` is no longer exported from the `fluid-framework` package.
|