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@v2Inspect 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.