Workflow Source Control

Review and manage protected workflow changes through GitHub

Workflow Source Control connects a SteelEngine workspace to a GitHub repository. You can protect selected workflows, make changes on branches, review those changes in pull requests, and keep every deployed version tied to an exact Git commit.

Source Control is opt-in. Enabling the integration does not change existing workflows. A workspace admin must protect each workflow individually.

How It Works

Source Control adds a review layer between editing a workflow and deploying it:

  1. An organization admin connects an approved GitHub repository.
  2. A workspace admin binds the workspace to a unique path in that repository.
  3. An admin protects an existing workflow through a pull request.
  4. Builders create a branch, edit and run the branch draft, then commit the change.
  5. SteelEngine validates the pull request's exact commit and reports the result as a GitHub Check.
  6. Merging the pull request updates the protected main draft in SteelEngine.
  7. An admin explicitly deploys the synchronized main draft when it is ready for production.

Merging does not deploy. A merge updates the protected main draft, while schedules, webhooks, APIs, and hosted surfaces continue to use the current deployment until you choose Deploy.

The Source-Controlled States

StateStored inEditable?Used by production triggers?
Protected mainSteelEngine, synchronized from the repository default branchNoOnly after it is deployed
Branch draftSteelEngineYes, with branch accessNo
Branch commitGitHubOnly through a later commitNo
Active deploymentImmutable SteelEngine deployment versionNoYes

Opening a protected workflow starts on main. Main remains viewable and manually runnable, but all edits—including metadata changes and changes made with Chat—must happen on a source-control branch.

What Git Stores

SteelEngine writes a deterministic, reviewable bundle under the workspace's managed repository path. Workflow IDs provide stable identity, so renaming a workflow changes its metadata instead of moving its directory.

Stored in GitKept in SteelEngine
Workflow name, description, color, graph, layout, variables, and interface metadataSecret values and provider tokens
Block configuration, prompts, and code in sanitized filesCredential and resource assignment targets
Logical resource requirements, such as a required connection roleAutosaved branch working copies
Stable workflow and block IDsDeployment versions and runtime history

The managed workflow directory has this shape:

<managed-path>/workflows/<workflow-id>/
  metadata.json
  workflow.json
  layout.json
  bindings.json
  nodes/

SteelEngine owns the bundle files and managed nodes/ directory. Files outside the managed workflow paths are preserved, so the repository can also contain code owners, documentation, and other workspace paths.

Current Scope

  • GitHub is the supported provider.
  • Each workspace has one active repository binding.
  • One repository can serve multiple workspaces when each uses a unique managed path.
  • Source Control protects existing workflows; create the workflow in SteelEngine before protecting it.
  • Folder placement is not independently source-controlled. A protected workflow cannot be moved, and an ancestor folder containing a protected workflow cannot be renamed or moved.

Get Started

Common Questions

Yes. Protecting workflows creates and reviews a portable workflow bundle in a connected GitHub repository. Without a repository connection, workflows continue to use SteelEngine's normal draft and deployment history but cannot be protected.
No. A merge synchronizes the approved bundle into protected main. An authorized admin must still deploy that synchronized main draft.
No. Git contains logical resource requirements only. Secret values, credential IDs, and environment-specific assignments remain in SteelEngine.
Protection is intentionally per workflow. Enabling the integration or binding a workspace does not lock existing workflows.

On this page