Skip to main content

Submitting to the Registry

The Xtension Registry is PR-based and hosted on GitHub at Xtrinel-Group/xtension-registry.

Submission flow

  1. Fork the xtension-registry repo
  2. Add your manifest JSON file to registry/community/your-id.json
  3. 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:

  • githubUrl must 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.json is valid JSON with all required fields
  • id is lowercase alphanumeric + hyphens only, no sentrinel- prefix
  • githubUrl points 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
  • downloadUrl points to a published GitHub Release asset (not a branch zip)
  • The release zip contains index.js and manifest.json at the root level
  • You have tested the Xtension locally in VAAST before submitting
  • permissions array 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:

  1. Update your source code and bump the version in manifest.json
  2. Run npm run build
  3. Build a new zip: zip -j your-bundle.zip dist/index.js manifest.json
  4. Create a new GitHub Release with the new version tag and attach the zip
  5. Update version and downloadUrl in your registry/community/your-id.json file
  6. Open a new PR against xtension-registry

Do not edit the lastUpdated field manually — it is managed by the registry CI on merge.