Why use an Enterprise Plugin Registry?
| Challenge | Solution |
|---|---|
| Inconsistent tooling across teams | Single source of approved plugins ensures everyone uses the same capabilities |
| Security and compliance review for each plugin | Vet plugins once at the org level, distribute everywhere |
| Onboarding new developers | New team members instantly access all approved capabilities |
| Role-specific tooling | Package plugins by team function (security, frontend, data, etc.) |
| Version control | Manage plugin versions centrally, roll out updates organization-wide |
Setting up a registry
An Enterprise Plugin Registry is a Git repository containing your organization’s approved plugins with a marketplace manifest.Repository structure
Marketplace manifest
Create.factory-plugin/marketplace.json to register your plugins:
Org-level configuration
Configure the registry at the organization level so it’s automatically available to all users. Add to your org-managed settings:| Field | Purpose |
|---|---|
extraKnownMarketplaces | Registers the marketplace so users can browse and install plugins |
enabledPlugins | Pre-installs specific plugins for all users (optional) |
Restricting marketplaces
To prevent users from adding unapproved marketplaces, usestrictKnownMarketplaces:
strictKnownMarketplaces is set:
- Users can only add marketplaces from the approved list
- Plugin installations from non-approved marketplaces are blocked
- Existing unapproved marketplaces continue to work but cannot be updated
- The registry appears automatically when users run
/plugins - Pre-enabled plugins are available immediately without manual installation
- Users can install additional plugins from the registry as needed
User experience
Users manage plugins via the/plugins UI:
- Run
/pluginsto open the plugin manager - Browse tab shows plugins from all registered marketplaces including the org registry
- Org-enabled plugins are pre-installed automatically on startup
Organizing plugins by role
Structure your registry to match your organization’s teams and workflows:By team function
By capability
By project type
Pre-installing plugins
For critical capabilities that everyone needs, useenabledPlugins in org-managed settings:
- Are available immediately on first Droid session
- Are installed with
orgscope automatically - Can be updated via
/pluginsUI ordroid plugin update
Version management
Plugins are versioned by Git commit hash. When a plugin is updated, Droid fetches the latest commit from the marketplace. To control versions, pin the marketplace source itself withref (branch or tag) or sha (full commit SHA):
ref: "main"— production-ready for all users (default behavior)ref: "staging"— early-adopter channelref: "v1.2.0"— pin to a release tagsha: "<40-char SHA>"— hard pin to a specific commit;droid plugin marketplace updateis a no-op
Version pinning via the per-plugin
version field is not currently supported. To pin a plugin’s version, pin the marketplace it lives in via ref or sha.Private npm registry authentication
For plugins distributed as npm packages from private registries that require token-based authentication (JFrog Artifactory, AWS CodeArtifact, GitHub Packages), use theauthTokenEnvVar field in the plugin source to specify which environment variable holds the auth token:
_authToken entry into a temporary .npmrc. The token never persists on disk beyond the install. If the variable is not set, the install fails early with an actionable error telling users which variable to export.
Ensure your onboarding documentation instructs developers to export the required token:
Private repository access
For private Git repositories, ensure Droid can authenticate:GitHub Enterprise
GitLab Self-Hosted
SSH-based access
Ensure SSH keys are configured for the repository host.Local marketplaces
For air-gapped environments or when Git access is restricted, you can use local directory marketplaces. This is useful for:- Environments without internet access
- Testing plugins before publishing
- Internal distribution via shared network drives
Setting up a local marketplace
Create a directory with the standard marketplace structure:Adding a local marketplace
Via UI:/plugins → Marketplaces tab → “Add new marketplace” → enter absolute path
Via CLI:
Configuration for auto-registration
Use thelocal source type in settings:
When removing a local marketplace from the registry, Droid does not delete the source directory. Only Git-cloned marketplaces have their directories removed on deletion.
Best practices
Establish a review process
Establish a review process
Before adding plugins to the registry:
- Security review for any external dependencies
- Code review by platform team
- Testing in isolated environment
- Documentation requirements
Document each plugin
Document each plugin
Every plugin should have a README covering:
- What capabilities it provides
- When to use it (and when not to)
- Any prerequisites or dependencies
- Example usage
Version semantically
Version semantically
Use semantic versioning so teams know what to expect:
- Major: Breaking changes to commands or behavior
- Minor: New capabilities, backward compatible
- Patch: Bug fixes only
Monitor adoption
Monitor adoption
Track which plugins are being used:
- Installation counts
- Active usage metrics
- Feedback from teams
- Issues and feature requests
Plan for deprecation
Plan for deprecation
When retiring plugins:
- Announce deprecation timeline
- Provide migration path to alternatives
- Keep deprecated plugins available (read-only) during transition
Example: Financial services org
A financial services company sets up their registry: Mandatory plugins (pre-installed for everyone):compliance-checks- PCI-DSS and SOX compliance validationsecurity-scanner- OWASP vulnerability detectionaudit-logging- Enhanced audit trail for all Droid actions
trading-systems- For quantitative and trading teamsrisk-models- For risk management teamsregulatory-reporting- For compliance teams
Related
- Hierarchical Settings & Org Control - How org-level settings work
- Plugins - Plugin basics and installation
- Building Plugins - Create your own plugins
