Skip to content

ORD Overlay Specification (alpha)#86

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

ORD Overlay Specification (alpha)#86
Fannon wants to merge 122 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 various referenced resource definition files (e.g. OpenAPI, AsyncAPI, OData CSDL, MCP/A2A Agent Cards) without modifying the original source files. Fore the future, it's planned to also support patching ORD level information as well, hence the opinionated name.

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.

Comment thread spec/v1/OrdOverlay.intro.md
Comment thread spec-extension/models/OrdOverlay.intro.md Outdated
Comment thread spec/v1/OrdOverlay.schema.yaml
Comment thread spec-extension/models/OrdOverlay.schema.yaml Outdated
Comment thread spec-extension/models/OrdOverlay.intro.md
@Fannon Fannon changed the title PoC: ORD Overlays ORD Overlay Specification (beta) May 6, 2026
@Fannon Fannon changed the title ORD Overlay Specification (beta) ORD Overlay Specification (alpha) May 6, 2026
@Fannon Fannon added this to the 1.15.0 milestone May 7, 2026
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.

4 participants