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
⬆️ Table of contents
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
⬆️ Table of contents
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
⬆️ Table of contents
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
⬆️ Table of contents
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
⬆️ Table of contents
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
⬆️ Table of contents
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
⬆️ Table of contents
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 MinimumClientVersion
s.
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
⬆️ Table of contents
🛠️ Start Building Today!
Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!