Skip to content

PoC: ORD Overlays#86

Open
Fannon wants to merge 62 commits intomainfrom
ord-overlays
Open

PoC: ORD Overlays#86
Fannon wants to merge 62 commits intomainfrom
ord-overlays

Conversation

@Fannon
Copy link
Copy Markdown
Member

@Fannon Fannon commented Mar 5, 2026

The ORD Overlay is an optional ORD model extension that allows patching both ORD resource metadata
and referenced resource definition files (e.g. OpenAPI, AsyncAPI, OData CSDL, MCP/A2A Agent Cards)
without modifying the original source files.

What to Review

This PR contains a lot of file changes, but some of them are just generated files (ignore in review) and quite a few are for the merge-overlay script that we should move to a separate repository / NPM project later anyway.

For easier reviewing, concentrate on:

Added

  • Added ORD Overlay as an alpha spec extension model (ord:overlay:v1)
    • Overlays allow patching ORD resource metadata and referenced definition files (OpenAPI, AsyncAPI, OData CSDL, MCP/A2A Agent Cards) without modifying the originals.
    • Overlays can be distributed via the ORD Configuration Endpoint (openResourceDiscoveryV1.overlays) or attached directly to an API/Event resource as a resourceDefinitions entry.
    • Patches use concept-level selectors (ordId, operation, entityType, propertyType) or a generic jsonPath fallback, with actions merge, update, append, and remove.
    • Optional target object narrows a patch to a specific definition file or format (e.g. definitionType: openapi-v3).
    • Optional top-level fields (describedSystemType, describedSystemVersion, describedSystemInstance, visibility) scope the overlay to a particular system context.

Fannon and others added 24 commits March 2, 2026 16:11
- Implement 'operation' concept-level selector in overlay-merge:
  - OpenAPI (openapi-v2/v3/v3.1+): resolves via paths.{path}.{method}.operationId
  - MCP (Specification ID definitionType): resolves via tools[].name
  - A2A Agent Card: resolves via skills[].id
  - Auto-detection (no definitionType): tries OpenAPI → MCP → A2A in order
  - Throws OverlayMergeError for named definitionTypes without operation support
    (e.g. edmx, csdl-json, asyncapi-v2, raml-v1)
- Add 6 new unit tests and 2 integration tests for operation selector
- Rename dispute-agent-mcp.overlay.json → dispute-agent-a2a.overlay.json
- Update SelectorByOperation schema description: clearly defines all three
  operation mappings and removes resolved A2A TODO
- Update OrdOverlay.intro.md: remove A2A TODO block, document A2A skills[].id
- Add real paths/operationIds/schemas to astronomy-v1.oas3.json for tests
- Add legacy-dispute-lookup skill to DisputeResolutionAgentcard.json
- Rewrite examples/definitions/ord-document-overlay.json to current schema format
- Copy OrdOverlay.schema.json to static/spec-extension/models/ for canonical $id URL;
  gitignore /static/spec-extension/ (URL only works after deployment)
- Clean stale ResourceDefinitionOverlay references from clean.mjs
- Add inline TODOs: YAML CLI input, deepMerge type mismatch, definitionType
  validators, entityType/propertyType selectors, OData operation mapping
- Fix JSON formatting in business-partner-odata.overlay.json
- Add structured sections: Distribution, Target Resolution, Selectors,
  Patch Actions, Validation, Overlay Document Metadata, Open TODOs
- Replace repeated prose with tables and anchor links to schema definitions
- Add inline example overlay JSON (enriching an undocumented API operation)
- Split Distribution into two sub-sections with brief JSON examples each
- Remove redundant Referencing from ORD Documents section (now inline)
- Consolidate all TODOs at end under Open TODOs
- Fix all broken Docusaurus anchor links
@Fannon Fannon requested a review from swennemers March 5, 2026 15:53
@Fannon Fannon self-assigned this Mar 5, 2026
@Fannon Fannon mentioned this pull request Mar 5, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 5, 2026

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://open-resource-discovery.github.io/pr-preview/specification/pr-86/

Built to branch main at 2026-03-18 15:55 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

Fannon and others added 3 commits March 13, 2026 16:58
Co-authored-by: Sebastian Wennemers <sebastian.wennemers@sap.com>
- Move 'remove' before 'merge' in the action description and enum so the definition of 'remove' precedes the reference to it in the 'merge' array-replacement example
- Add 'Intended use and compatibility' section clarifying overlays MUST NOT introduce breaking API changes; typical use is non-breaking enrichment (extensions, annotations, descriptions); exception is intentional restriction/removal
Comment on lines +34 to +39
Intended use and compatibility:
- Overlays MUST NOT introduce breaking / incompatible changes to the original API or metadata.
- Typical use-cases are non-breaking enrichments: adding extensions, annotations, or updating
non-critical properties such as descriptions, summaries, or display names.
- An exception is intentionally restricting exposure: an overlay MAY remove or hide elements
(e.g. operations, fields) that should not be visible in a given context or to a given audience.
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@swennemers does this address your comments suggestions / concerns?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It is good to have these statement, but they don't address my issue above.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

What statement are you missing still?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

You have added it to the open topics section, it is the selector and annotations only question.

@Fannon Fannon requested a review from pavelkornev March 24, 2026 06:12
@open-resource-discovery-bot
Copy link
Copy Markdown

PR Preview
🚀 View preview at:
https://open-resource-discovery.github.io/pr-preview/specification/pr-86/

Built to branch main at 2026-03-25 10:50 UTC.
open-resource-discovery/pr-preview-action

@Fannon Fannon requested a review from maiargu March 27, 2026 09:16
@vyshnavigadamsetti vyshnavigadamsetti self-requested a review March 31, 2026 11:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants