Skip to content

Extension Architecture

aleksey-hoffman edited this page May 17, 2026 · 3 revisions

Extension Architecture

Marketplace vs Package

The extension system uses two complementary sources of metadata:

Source Location Controller Purpose
Marketplace sfm-marketplace (registry.json) SFM maintainers Curated marketplace metadata
Package Extension repo (package.json + built assets) Extension developer Runtime configuration, permissions, optional entry main, binaries

The package is what ships in the Git tag/release archive; include compiled output (for example dist/) when the extension runs code, or all manifest-referenced assets for manifest-only theme and icon theme extensions, as described in Submitting to the Marketplace.

Design Principles

  1. Trust & Curation: Fields that affect user trust (publisher, description, categories) are controlled by the marketplace
  2. Developer Control: Technical/runtime fields (permissions, entry point when needed, version) are controlled by the package
  3. Automatic Versioning: Versions are fetched from GitHub release tags (v* pattern)

Continue

← Previous: Best Practices

Next: Submitting to the Marketplace

Clone this wiki locally