HarborHarbor
DocumentationGuidesPlugins
Operations

Versioning & Pinning

How Function and App versions work with the current inspect runtime.

Harbor versions reusable surfaces at the control-plane layer. Publish a Function or App with hrbr inspect -f; run one-off TypeScript with hrbr exec -f when you want a traced hosted execution.

hrbr inspect -f ./stale-issues.job.ts
# published stale-issues@v1

# fix a bug, publish again
hrbr inspect -f ./stale-issues.job.ts
# published stale-issues@v2

Inspect versions

Use inspect for control-plane reads:

hrbr inspect 'return await hrbr.jobs.inspect({ name: "stale-issues" })'
hrbr inspect 'return await hrbr.jobs.versions({ name: "stale-issues" })'

Run a pinned version

Use the dashboard or SDK clients to invoke a published Function by version.

App routes resolve the Function version declared in the App manifest. Pin explicit versions when a route must stay stable; use the unversioned Function name when the route should follow the current default.

deployApp({
  name: "feedback",
  jobs: {
    submit: "feedback-submit",
    legacy: "feedback-submit@v1",
  },
})

Rollback

Rollback by republishing the App or Function with the desired pinned version, or use the SDK/dashboard control-plane flow for default-version changes.

Disable

Use the dashboard or SDK clients to disable a specific Function version.

Disabling stops new invocations for that version. In-flight runs keep their trace and finish according to runtime limits.

Where to go next