Fluid Framework v2.63.0 (minor)
Contents
- 🌳 SharedTree DDS Changes
- Add FluidSerializableAsTree domain for representing trees of serializable data (alpha) (#25604)
- Promote Record node types and factories to beta (#25606)
- Add TreeBeta.create (#25623)
- Alpha APIs for annotated allowed types have been refactored (#25595)
- Promote importConcise and exportConcise to beta (#25629)
- Stabilize allowUnknownOptionalFields to beta (#25638)
- Add SchemaFactoryAlpha.typesRecursive and SchemaFactoryAlpha.stagedRecursive (#25199)
- MinimumVersionForCollab is now used in place of tree's alpha FluidClientVersion (#25402)
🌳 SharedTree DDS Changes
Add FluidSerializableAsTree domain for representing trees of serializable data (alpha) (#25604)
Like JsonAsTree, but also supports Fluid Handles.
Change details
Commit: 46e6dce
Affected packages:
- @fluidframework/tree
- fluid-framework
Promote Record node types and factories to beta (#25606)
Record tree node schema may now be declared using SchemaFactoryBeta in addition to SchemaFactoryAlpha.
Change details
Commit: 2e2de30
Affected packages:
- @fluidframework/tree
- fluid-framework
Add TreeBeta.create (#25623)
Adds TreeBeta.create, which is a more stable version of the existing TreeAlpha.create. The only difference is the new TreeBeta.create does not support the @alpha UnsafeUnknownSchema option.
Change details
Commit: 376c2d1
Affected packages:
- fluid-framework
- @fluidframework/tree
Alpha APIs for annotated allowed types have been refactored (#25595)
Staged allowed types must now be run through SchemaFactoryAlpha.types to convert them into an AllowedTypes. This change also means that it is now possible to use the produced AllowedTypesFull in non-alpha APIs since it implements AllowedTypes.
Reading data out of ImplicitAllowedTypes should now be done via normalizeAllowedTypes which now returns a AllowedTypesFull providing access to all the data in a friendly format.
Change details
Commit: c6ba37e
Affected packages:
- fluid-framework
- @fluidframework/tree
Promote importConcise and exportConcise to beta (#25629)
importConcise and exportConcise were previously available via TreeAlpha. They may now also be accessed via TreeBeta.
Note that the beta form of importConcise does not support UnsafeUnknownSchema.
Change details
Commit: b5d4602
Affected packages:
- @fluidframework/tree
- fluid-framework
Stabilize allowUnknownOptionalFields to beta (#25638)
When constructing object node schema with SchemaFactoryBeta.object or SchemaFactoryBeta.objectRecursive you can now provide the allowUnknownOptionalFields option as well as other metadata which were previously only available in SchemaFactoryAlpha.objectAlpha and SchemaFactoryAlpha.objectRecursive.
Additionally the alpha interface SchemaFactoryObjectOptions has been renamed to ObjectSchemaOptionsAlpha to better align with the other related types.
Change details
Commit: b7222d1
Affected packages:
- fluid-framework
- @fluidframework/tree
Add SchemaFactoryAlpha.typesRecursive and SchemaFactoryAlpha.stagedRecursive (#25199)
With these new APIs, it is now possible to stage changes to recursive types.
Change details
Commit: 931e986
Affected packages:
- fluid-framework
- @fluidframework/tree
MinimumVersionForCollab is now used in place of tree's alpha FluidClientVersion (#25402)
FluidClientVersion: No longer used as the type for Fluid Client versions in APIs/codecs (for example, oldestCompatibleClient). Additionally, FluidClientVersion is now a const object with members that declare specific MinimumVersionForCollab versions. These are intended to be used with APIs that require a version (such as TreeAlpha.exportCompressed).
CodecWriteOptions and SharedTreeOptions: oldestCompatibleClient has been replaced by minVersionForCollab. See migration guide below.
TreeAlpha.exportCompressed: The options parameter previously had oldestCompatibleClient and now has minVersionForCollab. Migrating requires a rename. Existing FluidClientVersion.* values are now MinimumClientVersions.
Migrating
If an application is calling loadContainerRuntime directly and previously specified the minimum client version when initializing Shared Tree like:
const factory = configuredSharedTree({ ..., oldestCompatibleClient: FluidClientVersion.v2_52 });Then the new implementation depends on how the application initializes Fluid.
Applications using AzureClient/OdspClient
If an application is using the declarative model (for example, AzureClient/OdspClient), it should continue to call configuredSharedTree but specify minVersionForCollab instead:
const factory = configuredSharedTree({ ..., minVersionForCollab: "2.52.0" });Applications calling loadContainerRuntime
If an application is initializing the ContainerRuntime directly, it should now specify the minVersionForCollab there:
const runtime = await loadContainerRuntime({ ..., minVersionForCollab: "2.52.0" });Change details
Commit: 7f59e31
Affected packages:
- @fluidframework/tree
- fluid-framework
🛠️ Start Building Today!
Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!