Skip to content

Deploy a Solution from a Workspace

Ship a Solution workspace to an install with bifrost solution deploy — org targeting, downgrades, disambiguation, and the capture → pull → deploy order.

bifrost solution deploy reads the bifrost.solution.yaml descriptor in the current workspace, bundles its source plus .bifrost/*.yaml manifest, and full-replaces the matching install. It is non-interactive: the whole bundle applies in one POST.

  • A Solution workspace (a directory with bifrost.solution.yaml, created by bifrost solution init).
  • Authenticated against the target environment (bifrost login).
  1. From the solution root, deploy:

    Terminal window
    bifrost solution deploy

    (bifrost deploy is the top-level alias.)

  2. With no --org/--global flag, the install resolves to your own org. The command creates the install if none exists, then full-replaces it.

  3. Read the summary — it reports entities upserted, deleted, and any roles auto-created (empty; assign members to grant access):

    Deployed install <id>: 3 workflow(s), 1 app(s) upserted, 0 deleted.
    Auto-created 1 new role(s): Approvers (empty — assign members to grant access).

The install catalog showing the deployed install and its version

  1. Deploy into a specific org by id or name:

    Terminal window
    bifrost solution deploy --org <org-id|name>
  2. Deploy a global (org-NULL) install:

    Terminal window
    bifrost solution deploy --global

Disambiguate when more than one install matches

Section titled “Disambiguate when more than one install matches”

When more than one install of the slug exists in the resolved scope, deploy refuses to guess and lists the candidates. Re-run with the explicit target:

Terminal window
bifrost solution deploy --solution <install-id>

Deploy 409-blocks when the bundle version is older than the installed version. Override deliberately:

Terminal window
bifrost solution deploy --force

--force also bypasses the capture guard below.

Capturing loose _repo/ entities into an install (bifrost solution capture) is terminal: it records a pending_captures row for each adopted entity. Until that entity is in your source manifest, a deploy’s full-replace would delete it — so deploy 409-blocks with a message naming the entities.

  1. Capture into the install (run this last among your authoring steps):

    Terminal window
    bifrost solution capture <install-id> --workflow my-flow --table my-table
  2. Pull the captured entities into the local .bifrost/ manifest (this never touches apps/ or source code):

    Terminal window
    bifrost solution pull
  3. Deploy. The pulled entities are now in source, so the guard clears:

    Terminal window
    bifrost solution deploy