Define tap catalog schema v2 contract#26
Merged
eric-tramel merged 1 commit intoMay 7, 2026
Conversation
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.
What
Adds a top-level documentation page that defines the schema v2 tap catalog contract for issue #16. The page specifies the required top-level fields, required plugin entry fields, source object union, validation rules, and examples for PyPI, Git, and path install sources.
It also links the new page from the docs index and Zensical navigation so implementers can find the contract before catalog generation and consumer work lands.
Closes #16.
Why
The tap work needs one concrete JSON contract before later workers update catalog generation, schema validation, and Data Designer CLI consumers. This page removes the schema shape as an open decision and records the important layer boundaries: tap discovery reads catalog data, runtime entry-point discovery happens only after package installation, and
package.pathis repo-local metadata rather than a remote install source.Usage
Use
docs/tap-catalog-schema-v2.mdas the implementation reference for schema v2 catalogs. For example, a released package source is represented as:{ "type": "pypi", "package": "data-designer-example" }A Git subdirectory source is represented as:
{ "type": "git", "url": "https://github.com/NVIDIA-NeMo/DataDesignerPlugins.git", "ref": "data-designer-example/v0.1.0", "subdirectory": "plugins/data-designer-example" }A local authoring source is represented as:
{ "type": "path", "path": "plugins/data-designer-example", "editable": true }How
This is documentation-only. It adds
docs/tap-catalog-schema-v2.md, updatesdocs/index.md, and adds a low-risk top-level Zensical nav entry. Catalog generation code andcatalog/plugins.jsonare intentionally unchanged; the checked-in catalog can remain schema v1 until the implementation issues update it.Validation
make syncin a clean temporary worktree for the committed branchmake docsin that clean worktree: Zensical strict build reported no issuesmake check-license-headersin that clean worktree: all checked files had correct headers