Skip to content

Conversation

@TommyBrosman
Copy link
Contributor

@TommyBrosman TommyBrosman commented Oct 23, 2025

Introduces new APIs for encoding and decoding view schemas. Also adds new fields to Simple Schemas to support compatibility checking scenarios.

Description

New APIs (in alpha):

  • encodeSimpleSchema(simpleSchema: SimpleTreeSchema): JsonCompatibleReadOnly - Encodes a Simple Schema into a JSON-compatible object format.
  • decodeSimpleSchema(encodedSchema: JsonCompatibleReadOnly, validator?: FormatValidator): SimpleTreeSchema - Decodes a Simple Schema from a JSON-compatible object format.

Other changes:

  • Updated toSimpleTreeSchema to include `compatibility-related fields. These include:
    • On SimpleAllowedTypeAttributes: isStaged
    • On object schemas: allowUnknownOptionalTypes

Reviewer Guidance

  • See discrepancies.ts for the set of fields needed to determine View Schema compatibility.

Todo

  • Deserialization
  • Fix test failures
  • Expose APIs

@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: tree area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct public api change Changes to a public API base: main PRs targeted against main branch labels Oct 23, 2025
@TommyBrosman TommyBrosman changed the title Shared Tree: Serializeable View Schema export using Simple Schema Shared Tree: Serializable View Schema export using Simple Schema Nov 5, 2025
@TommyBrosman TommyBrosman requested a review from a team as a code owner November 5, 2025 23:43
Copy link
Contributor

@Josmithr Josmithr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a couple more suggestions, but overall looks good to me :)

@TommyBrosman TommyBrosman changed the title Shared Tree: Serializable View Schema export using Simple Schema Shared Tree: Simple Schema codec Nov 7, 2025
- Regenerated API files
@TommyBrosman TommyBrosman enabled auto-merge (squash) November 7, 2025 00:54
@github-actions
Copy link
Contributor

github-actions bot commented Nov 7, 2025

🔗 Found some broken links! 💔

Run a link check locally to find them. See
https://github.com/microsoft/FluidFramework/wiki/Checking-for-broken-links-in-the-documentation for more information.

linkcheck output


> fluid-framework-docs-site@0.0.0 ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-docs-site@0.0.0 serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> fluid-framework-docs-site@0.0.0 check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

 ELIFECYCLE  Command failed with exit code 1.

@TommyBrosman TommyBrosman merged commit fdfff43 into microsoft:main Nov 7, 2025
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: dds: tree area: dds Issues related to distributed data structures area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct base: main PRs targeted against main branch public api change Changes to a public API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants