@equinor/fusion-framework-cli
v14.0.3
Published
Command-line toolkit for developing, building, and publishing Fusion Framework applications and portal templates. Provides a unified developer experience from local development to production deployment.
Readme
@equinor/fusion-framework-cli
Command-line toolkit for developing, building, and publishing Fusion Framework applications and portal templates. Provides a unified developer experience from local development to production deployment.
Features
- Application scaffolding — generate new Fusion apps from predefined templates
- Development server — hot-reload dev server with service discovery and authentication
- Build & bundle — Vite-based production builds with manifest generation
- Publish & tag — upload bundles and configs to the Fusion app/portal service
- Snapshot versions — timestamped preview builds for PRs and CI (
--snapshot) - Portal templates — build, bundle, and deploy portal configurations
- Service discovery — resolve Fusion service endpoints from any environment
- Authentication — Azure AD login, token management, CI/CD token support
- Plugin system — extend the CLI with optional plugin packages
Installation
pnpm add -D @equinor/fusion-framework-cliThe package exposes two binary aliases: fusion-framework-cli and ffc.
Usage
Create a new application
# Interactive template selection
pnpm fusion-framework-cli app create my-app
# Use a specific template
pnpm fusion-framework-cli app create my-app --template react-appLocal development
# Start the dev server (app)
pnpm fusion-framework-cli dev
# Start the dev server (portal)
pnpm fusion-framework-cli portal devBuild and publish
# Build an application
pnpm fusion-framework-cli app build
# Bundle into a zip archive
pnpm fusion-framework-cli app pack
# Publish bundle + config to an environment
pnpm fusion-framework-cli app publish --env ci --config
# Snapshot build for a PR
pnpm fusion-framework-cli app pack --snapshot pr-123Authentication
# Interactive login
pnpm fusion-framework-cli auth login
# Retrieve a token
pnpm fusion-framework-cli auth token
# CI/CD: set FUSION_TOKEN environment variable insteadCommand overview
| Command | Description |
|---|---|
| app create | Scaffold a new Fusion application from a template |
| app build | Build the application with Vite |
| app pack | Bundle the build into a zip archive |
| app publish | Build, pack, and upload in one step |
| app upload | Upload a pre-built bundle |
| app config | Generate or publish app configuration |
| app tag | Tag a published version (e.g. latest) |
| app check | Verify app registration in the app store |
| app dev | Start the application dev server |
| app serve | Preview a production build locally |
| portal build | Build a portal template |
| portal pack | Bundle the portal into a zip archive |
| portal publish | Build, pack, and upload a portal |
| portal upload | Upload a pre-built portal bundle |
| portal config | Generate or publish portal configuration |
| portal tag | Tag a published portal version |
| portal dev | Start the portal dev server |
| auth login | Authenticate with Azure AD |
| auth logout | Clear stored credentials |
| auth token | Print or acquire an access token |
| disco resolve | Resolve a Fusion service endpoint |
Run pnpm fusion-framework-cli <command> --help for detailed options.
API Reference
The package exposes several sub-path exports for programmatic use:
@equinor/fusion-framework-cli (root)
defineDevServerConfig/defineFusionCli— type-safe config definition helpersloadDevServerConfig— load and merge dev-server configuration filesresolvePackage/resolveEntryPoint— package and entry-point resolutionRuntimeEnv— runtime environment type used across the CLI
@equinor/fusion-framework-cli/app
defineAppManifest/defineAppConfig— type-safe manifest and config helpersloadAppManifest/loadAppConfig— load and validate app manifest/config filescreateAppManifestFromPackage— generate a manifest frompackage.jsonmergeAppManifests/mergeAppConfig— deep-merge manifest/config objectsApiAppConfigSchema— Zod schema for app config validation
@equinor/fusion-framework-cli/portal
definePortalManifest/definePortalConfig/definePortalSchema— type-safe helpersloadPortalManifest/loadPortalConfig/loadPortalSchema— load and validate filescreatePortalManifestFromPackage— generate a portal manifest frompackage.jsonvalidatePortalManifest— validate a manifest against the Zod schema
@equinor/fusion-framework-cli/bin
buildApplication/buildPortal— programmatic Vite buildsbundleApp/bundlePortal— build + pack into zipuploadApplication/uploadPortalBundle— upload bundles to the servicetagApplication/tagPortal— tag published versionsinitializeFramework/configureFramework— set up the Fusion Framework for CLI operationsFusionEnv— enum of supported Fusion environments
@equinor/fusion-framework-cli/utils
assert/assertFileExists/assertObject— assertion helpersfileExists/fileExistsSync— file-existence checkswriteFile— write files with automatic directory creationresolveAnnotations— resolve CI/CD build annotationsgenerateSnapshotVersion— create timestamped snapshot versions
Configuration
Application manifest (app.manifest.ts)
import { defineAppManifest } from '@equinor/fusion-framework-cli/app';
export default defineAppManifest((env, { base }) => ({
...base,
// override manifest fields here
}));Application config (app.config.ts)
import { defineAppConfig } from '@equinor/fusion-framework-cli/app';
export default defineAppConfig((env, { base }) => ({
environment: { MY_VAR: 'value' },
endpoints: {
api: { url: 'https://api.example.com', scopes: ['api://scope/.default'] },
},
}));Dev-server config (dev-server.config.ts)
import { defineDevServerConfig } from '@equinor/fusion-framework-cli';
export default defineDevServerConfig((env, { base }) => ({
...base,
// override dev-server options here
}));CLI plugins (fusion-cli.config.ts)
import { defineFusionCli } from '@equinor/fusion-framework-cli';
export default defineFusionCli(() => ({
plugins: ['@equinor/fusion-framework-cli-plugin-ai'],
}));Documentation
- Developing Apps — build, configure, and deploy applications
- Developing Portals — build and publish portal templates
- Dev Server — architecture and configuration
- Authentication — local and CI/CD authentication setup
- Migration v10 → v11 — breaking changes and upgrade steps
