Submitting to the Registry
The Xtension Registry is PR-based and hosted on GitHub at Xtrinel-Group/xtension-registry.
Submission flow
- Fork the xtension-registry repo
- Add your manifest JSON file to
registry/community/your-id.json - Open a pull request against
main
Automated validation
Every PR triggers a GitHub Actions workflow that validates your manifest against the JSON Schema. The workflow posts a comment on your PR with pass/fail per file.
Review criteria
A maintainer will review your submission. To pass review:
githubUrlmust point to a public GitHub repository- Repository must use MIT or Apache-2.0 license
- Source code must be readable — no obfuscated, minified, or vendored binary code
- Manifest must be valid — all required fields present and correctly typed
- One manifest file per Xtension
Updating an existing Xtension
To publish a new version, update the version field in your existing manifest file and open a new PR.
Expected turnaround
Reviews are best-effort. Most submissions are reviewed within a few business days.
Before you submit
Checklist:
-
manifest.jsonis valid JSON with all required fields -
idis lowercase alphanumeric + hyphens only, nosentrinel-prefix -
githubUrlpoints to a public repository - Repository uses MIT or Apache-2.0 license (LICENSE file present)
- Source code is readable — no obfuscated or minified source files in the repo
-
downloadUrlpoints to a published GitHub Release asset (not a branch zip) - The release zip contains
index.jsandmanifest.jsonat the root level - You have tested the Xtension locally in VAAST before submitting
-
permissionsarray only includes permissions your Xtension actually uses
Building the release zip correctly:
The zip must contain files at the root level, not inside a directory:
# Correct — files at root of zip
zip -j your-bundle.zip dist/index.js manifest.json
# Wrong — files inside dist/ subdirectory
zip your-bundle.zip dist/index.js manifest.json
downloadUrl must be a release asset:
The URL must point to a file attached to a GitHub Release:
https://github.com/username/repo/releases/download/v1.0.0/your-bundle.zip
Not the auto-generated source zip:
https://github.com/username/repo/archive/refs/tags/v1.0.0.zip
Updating your Xtension
To publish a new version:
- Update your source code and bump the
versioninmanifest.json - Run
npm run build - Build a new zip:
zip -j your-bundle.zip dist/index.js manifest.json - Create a new GitHub Release with the new version tag and attach the zip
- Update
versionanddownloadUrlin yourregistry/community/your-id.jsonfile - Open a new PR against xtension-registry
Do not edit the lastUpdated field manually — it is managed by the registry CI on merge.