Skip to content

7. Ship and run ​

7.1 Build and package ​

Validate -> Build -> Test -> (Security scan: planned) -> Package

The package (.spk) contains the manifest, metadata (entities, pages, forms, workflows, rules, menus, roles, seed data), optional code and libraries, and (unless you opt out) the source. Deploy, Publish does all of it, or:

bash
node tools/spark-cli/spark.js validate spk-assembly
node tools/spark-cli/spark.js package spk-assembly -o leave-management.spk

7.2 Versioning ​

1.0.0 -> 1.1.0 (new, compatible) -> 1.1.1 (fix) -> 2.0.0 (breaking). A published version is immutable: publishing changed content under the same version is refused ("Refusing to overwrite immutable artifact"), so always raise the version. Breaking changes (removed or renamed entities, fields, blocks) need a major version. See Versioning.

7.3 Deploy to environments ​

Development, testing, staging, production are separate tenants or stacks. Move the same package through them by export and import or Environment promotion. Settings that differ (URLs, secrets) are service variables and connectors, never in the package. Service-mode plugins add container deployment, health checks and regions. See Deployment.

7.4 Publish ​

Private (only you), tenant (installed for a tenant), or marketplace. Provide metadata, license, dependencies, compatibility, docs, screenshots. Certification is Planned. See Marketplace.

7.5 Install in a tenant ​

Select tenant -> catalog or file -> dependency check -> install (tables, roles, menus, rules, workflows) -> activated

Installing creates the tables and roles from the package. Uninstalling removes the plugin but keeps the data tables and the rows in them, so a reinstall finds its data; drop data deliberately if you want it gone.

7.6 Configure after install ​

Assign roles to users, set defaults (leave types and entitlements), policies, notification templates, integrations, country and industry settings, and connect the menu to the launcher.

7.7 Upgrade ​

v1.0 -> backup / snapshot -> compatibility check -> migrate -> v1.1 -> validate

The upgrade guard stops an upgrade that breaks an installed extension's version range; layered overrides ride on the new version and are reported if they no longer fit. Roll back one version from Deploy, Roll back installed version. New fields are added; types are never silently changed.

7.8 Maintain ​

Watch logs, service health, job history and the audit log. Apply dependency and security updates as new versions. Deprecate in a minor version, remove in the next major. Clean up test data. See Monitoring.