Atlas Forms
Distributing Your Library
Action libraries can be distributed via npm (private registry or public), InstallHub (BizFirstGO's package distribution system), or MarketHub (the public marketplace). Each channel serves a different audience and access control model.
Distribution Channels
| Channel | Audience | Access Control | Discovery |
|---|---|---|---|
| Private npm registry | Your organisation only | npm auth tokens | Internal docs |
| Public npm | Anyone | None | npmjs.com search |
| InstallHub | BizFirstGO tenants | Tenant subscription | InstallHub catalog |
| MarketHub | Public marketplace | Per-package pricing | MarketHub search + discovery |
Build and Publish to npm
# Build TypeScript to dist/
npm run build
# Verify the package contents
npm pack --dry-run
# Publish to your private registry
npm publish --registry https://npm.myorg.com
# Or publish to public npm
npm publish --access public
Version Compatibility
Your library's peerDependencies declare which Atlas Forms version range you support. Follow semantic versioning:
{
"peerDependencies": {
"@atlas-forms/types-js": "^1.0.0",
"@atlas-forms/control-registry-js": "^1.0.0"
}
}
// ^1.0.0 means: compatible with any 1.x version (major version pinned)
When Atlas Forms releases a breaking change (major version bump), you must release a new major version of your library with updated peer dependencies and any handler changes needed.
Publishing to InstallHub
InstallHub is BizFirstGO's internal package distribution system. To publish:
- Create an InstallHub package definition (JSON manifest describing the package, its dependencies, and install actions)
- Bundle your npm package + the InstallHub manifest
- Submit to the InstallHub admin portal
- After review and approval, tenants can install via the InstallHub catalog
Publishing to MarketHub
MarketHub is the public marketplace for Atlas Forms extensions. Requirements:
- Package must pass automated security scan (no sensitive data in handlers)
- Minimum test coverage: 80%
- Documentation: README, changelog, usage examples
- Signed by publisher using BizFirstGO developer credentials