Appearance
7. Ship and run
7.1 Build and package
Validate -> Build -> Test -> (Security scan: planned) -> PackageThe 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.spk7.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) -> activatedInstalling 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 -> validateThe 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.
