Repository navigation
[iFrame] Add the iframe catalog schema - #2795
Draft
josemontespg wants to merge 1 commit into
Draft
josemontespg wants to merge 1 commit into
josemontespg wants to merge 1 commit into
Conversation
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
September 25, 2026 01:31
4036a52 to
1fc9465
Compare
Contributor
There was a problem hiding this comment.
Code Review
This pull request introduces the iframe catalog (featuring WebAppFrameUrl and WebAppFrameSrcdoc components) and updates the MCP catalog to include the McpApp component, along with corresponding specifications, examples, and validation script updates. The review feedback suggests two key improvements: first, updating WebAppFrameSrcdoc's htmlContent to use DynamicString for consistency and dynamic data binding support; second, adding a mutableData property to McpApp to validate incoming state mutations against a JSON Schema, thereby enhancing security and aligning it with WebAppFrame's validation model.
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
September 25, 2026 06:20
1fc9465 to
a2139d3
Compare
josemontespg
added this pull request to stack #2804
September 25, 2026 18:11
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
2 times, most recently
from
October 1, 2026 20:11
da248b3 to
99837d7
Compare
josemontespg
removed this pull request from stack #2804
October 1, 2026 20:12
josemontespg
added this pull request to stack #2940
October 1, 2026 20:12
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 1, 2026 20:43
99837d7 to
f9257d6
Compare
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 1, 2026 21:42
f9257d6 to
9cb7b57
Compare
josemontespg
removed this pull request from stack #2940
October 1, 2026 21:56
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 1, 2026 21:56
9cb7b57 to
e459d45
Compare
josemontespg
added this pull request to stack #2946
October 1, 2026 21:56
josemontespg
commented
Oct 1, 2026
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 1, 2026 22:14
e459d45 to
7010933
Compare
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 1, 2026 22:41
7010933 to
d469303
Compare
josemontespg
removed this pull request from stack #2946
October 2, 2026 00:35
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
2 times, most recently
from
October 2, 2026 00:36
e5a8d99 to
5f4f62c
Compare
josemontespg
added this pull request to stack #2951
October 2, 2026 00:36
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
2 times, most recently
from
October 2, 2026 18:50
08a2686 to
85296cb
Compare
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 8, 2026 20:22
c3cf0c3 to
9fca022
Compare
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 8, 2026 20:31
9fca022 to
0dfc2b5
Compare
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 8, 2026 20:47
0dfc2b5 to
11c7837
Compare
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
2 times, most recently
from
October 8, 2026 21:34
7818209 to
3acc2c9
Compare
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 8, 2026 22:05
3acc2c9 to
949c376
Compare
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 8, 2026 22:58
949c376 to
bc17667
Compare
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 9, 2026 18:18
bc17667 to
6aa5190
Compare
josemontespg
removed this pull request from stack #3057
October 9, 2026 18:19
josemontespg
added this pull request to stack #3112
October 9, 2026 18:19
josemontespg
removed this pull request from stack #3112
October 9, 2026 18:40
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 9, 2026 18:49
6aa5190 to
c640a11
Compare
josemontespg
added this pull request to stack #3114
October 9, 2026 18:49
josemontespg
force-pushed
the
catalogs-iframe-mcp-schemas
branch
from
October 9, 2026 19:09
c640a11 to
4595a8b
Compare
josemontespg
removed this pull request from stack #3114
October 9, 2026 19:12
josemontespg
added this pull request to stack #3115
October 9, 2026 19:12
This was referenced Oct 12, 2026
Add catalogs/iframe/catalog.json, which declares the WebAppFrameUrl and WebAppFrameSrcdoc components with their shared allowlist and data binding definitions. Move the component specification next to the catalog, add examples, validate them in specification/scripts/validate.py (a config can now list several catalogs, merged into the single catalog.json alias the protocol schemas expect), and publish the catalog at its $id URL from the docs workflow.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the JSON Schema for the iframe catalog, so agents, renderers and validators share one canonical definition of the sandboxed web frame components instead of the copy that lives in the ADK MCP app proxy sample. The catalog targets A2UI v1.0:
protocolVersionis1.0and the shared shapes come fromspecification/v1_0. The MCP catalog'sMcpAppschema is a separate PR on top of this stack.Changes
catalogs/iframe/catalog.json($idhttps://a2ui.org/specification/v1_0/catalogs/iframe/catalog.json) declaresWebAppFrameUrlandWebAppFrameSrcdoc. The shared properties (allowedEvents,allowedFunctions,mutableData,data.paths,config,height,disableSchemaValidation) are inlined into both components, as the v1.0 Catalog Schema Rules require: noComponentCommonallOf orunevaluatedProperties, relativecommon_types.json#/$defs/...refs, and$defswith onlyanyComponent(withdiscriminator) andanyFunction. The catalog has no functions.specification/v1_0/test/run_tests.py: registerscatalogs/iframe/catalog.jsonin the structural, identifier and$reftarget checks.catalogs/iframe/web_app_frame_specification.md.v1.0examples: aWebAppFrameSrcdocapp with two-way data binding and an action next to basic components, aWebAppFrameUrlframe, and aWebAppFrameSrcdocapp that callsformatCurrencythroughallowedFunctions. The inline HTML speaks the documenteda2ui_*protocol.specification/scripts/validate.pyvalidates the examples againstagent_to_renderer.jsonwith the v1 basic catalog. Since a surface combines this catalog with the basic catalog, a config can now list several catalogs, which are merged into the singlecatalog.jsonalias the message schema expects, and aprotocol_versionkey decouples the config name from the protocol version..github/workflows/docs.ymlpublishes the catalog and its examples atspecification/v1_0/catalogs/iframe/, so the$idURL resolves.catalogs/iframe/README.mddocuments the components and links the specification and examples;catalogs/README.mdlists the new directory.Verification
python3 specification/scripts/validate.py: all configs pass, including the newiframeone (3 examples). Switching an example'sversionback tov0.9makes it fail.python3 specification/v1_0/test/run_tests.pypasses../scripts/fix_format.sh --checkpasses; every relative link in the added or moved markdown files resolves.Pre-launch Checklist
validate.py).Related to #3157