-
Notifications
You must be signed in to change notification settings - Fork 487
Add registry extensions specification #777
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Introduces a standardized way for registries to provide experimental or community-driven features without committing them to the core API. Extensions live under /v0/x/<namespace>/<extension> and follow simple conventions around REST, JSON responses, pagination, and auth. This enables experimentation with features like search and MCP server integration while keeping the core API minimal and stable. Fixes #776
|
Areas that I think people might have the most issue with:
|
| Where possible: | ||
| - Follow standard REST conventions, return simple JSON responses, and avoid special headers | ||
| - For list endpoints, use cursor-based pagination matching the core API | ||
| - Extensions requiring authentication **SHOULD** follow the [Registry Authorization Specification](./registry-authorization.md) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See #756
rdimitrov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! I've added one suggestion but we can do a follow up with it if you agree it makes sense 👍
|
|
||
| ## Future Considerations | ||
|
|
||
| - **Extension discovery**: A potential `/v0/x` endpoint to list available extensions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think we should make this mandatory?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah - I think either:
- an array of strings that are extension paths
- an array of objects with
pathentries. same as above, but gives us room for extension in future
Thoughts?
|
I'm a bit concerned by the fact that version number for the extension would be the same as the official one. This means it cannot be bumped when the extension changes. I'm not really keen on having two version numbers in one path, isn't it better to suggest |
Maybe this is a bit silly, but I was imagining that if extensions want versioning they should append it on. So I see v0 as the version for the overall registry spec, and how you do a v0 extension is put it under /v0/x/... But if you want your extension to be versioned, you have |
Introduces a standardized way for registries to provide experimental or community-driven features without committing them to the core API specification.
Summary
/v0/x/<namespace>/<extension>URL structureThis enables experimentation with features like search (#389) and MCP server integration (#24) while keeping the core API minimal and stable.
Fixes #776