Skip to content

Fluid Framework v2.32.0 (minor)

Compare
Choose a tag to compare
@github-actions github-actions released this 15 Apr 20:29
· 437 commits to main since this release
6fcd178

Contents

✨ New Features

Blobs in Detached Container Supported by Default (#24119)

It is no longer necessary or supported to provide detachedBlobStorage to the Loader. This functionality is now provided by default, and the deprecated IDetachedBlobStorage will be removed in the 2.40.0 release. The new behavior can be disabled by setting Fluid.Container.MemoryBlobStorageEnabled to false. This flag will also be removed in the 2.40.0 release if no issues are reported.

Change details

Commit: fcf561a

Affected packages:

  • @fluidframework/container-loader

⬆️ Table of contents

Shorter IDs for DataStores and DDSes (#24231)

Fluid Framework will now use shorter IDs for Datastores and DDSes when enableRuntimeIdCompressor:"on" is set in IContainerRuntimeOptions. This change should help reduce summary and snapshot sizes as well as improve runtime performance because of a smaller memory footprint.

Change details

Commit: 27bbb87

Affected packages:

  • @fluidframework/container-runtime
  • @fluidframework/datastore

⬆️ Table of contents

🌳 SharedTree DDS Changes

Cleanup of several tree and schema alpha APIs for content import and export (#24255)

A new TreeSchema type has been introduced which extends SimpleTreeSchema but contains TreeNodeSchema instead of SimpleNodeSchema.

TreeViewConfigurationAlpha is added which is just TreeViewConfiguration but implementing TreeSchema.

SimpleTreeSchema was modified to have a root property instead of implementing SimpleFieldSchema directly: this makes it possible for TreeViewConfigurationAlpha to implement TreeSchema which extends SimpleTreeSchema.

generateSchemaFromSimpleSchema now returns the new TreeSchema type.

EncodeOptions and ParseOptions have been unified as TreeEncodingOptions which covers both the encoding and parsing cases.

getJsonSchema now takes in ImplicitAllowedTypes instead of ImplicitFieldSchema since it can't handle optional roots. getJsonSchema also takes in the new TreeSchemaEncodingOptions to provide options for how to handle stored keys vs property keys, and fields with defaults.

Now that getJsonSchema takes in configuration options, its results are no longer cached.

Change details

Commit: c6563e5

Affected packages:

  • fluid-framework
  • @fluidframework/tree

⬆️ Table of contents

Provide alpha APIs for accessing tree content and stored schema without requiring a compatible view schema (#24225)

Adds an ITreeAlpha interface (which ITree can be down-casted to) that provides access to both the tree content and the schema. This allows inspecting the content saved in a SharedTree in a generic way that can work on any SharedTree.

This can be combined with the existing generateSchemaFromSimpleSchema to generate a schema that can be used with IIree.viewWith to allow constructing a TreeView for any SharedTree, regardless of its schema.

Note that the resulting TypeScript typing for such a view will not be friendly: the TreeView APIs are designed for statically known schema. Using them is possible with care and a lot of type casts but not recommended if it can be avoided: see disclaimer on generateSchemaFromSimpleSchema. Example using ITreeAlpha and generateSchemaFromSimpleSchema:

const viewAlpha = tree as ITreeAlpha;
const treeSchema = generateSchemaFromSimpleSchema(
  viewAlpha.exportSimpleSchema(),
);
const config = new TreeViewConfiguration({ schema: treeSchema.root });
const view = viewAlpha.viewWith(config);

getSimpleSchema is also added as an @alpha API to provide a way to clone schema into the simple schema formats. Note that when using (or copying) a view schema as a simple schema, more metadata will be preserved than when deriving one from the stored schema using ITreeAlpha.

Change details

Commit: 18b6e05

Affected packages:

  • fluid-framework
  • @fluidframework/tree

⬆️ Table of contents

⚠️ Deprecations

The containerPackageInfo parameter in createOdspCreateContainerRequest() is now deprecated (#23919)

The containerPackageInfo parameter in createOdspCreateContainerRequest() is now deprecated and will be removed in version 2.40.0.

The name of the containerPackage can no longer be sent through the request. Instead, it can be added in the constructor of OdspDriverUrlResolverForShareLink.

See issue #23882 for more details.

Change details

Commit: 42b26b7

Affected packages:

  • @fluidframework/odsp-driver

⬆️ Table of contents

🛠️ Start Building Today!

Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!