Releases
Track deployments and link errors to specific versions
Releases
Releases track your deployments and link errors to specific versions. This enables:
- Knowing which release introduced an error
- Regression detection (resolved error reappears in a new release)
- Filtering errors by release
- Source map resolution per release
Creating Releases
provenance releases create \
--origin my-app \
--version 1.2.3 \
--environment production \
--commit abc123 \
--branch mainconst api = await provenance.api();
await api.origins.createRelease('my-app', {
version: '1.2.3',
environment: 'production',
metadata: { commitSha: 'abc123', branch: 'main' },
});curl -X POST https://your-api/api/origins/my-app/releases \
-H "x-api-key: your-key" \
-H "Content-Type: application/json" \
-d '{
"version": "1.2.3",
"environment": "production",
"metadata": { "commitSha": "abc123", "branch": "main" }
}'The origin identifier can be a UUID or a mnemonic (e.g. my-app).
Releases are created automatically when you upload source maps as part of your build pipeline.
Render — add to your build command:
NEXT_PUBLIC_RELEASE_VERSION=$RENDER_GIT_COMMIT npm run build && node scripts/upload-sourcemaps.jsGitHub Actions:
- name: Upload source maps
run: node scripts/upload-sourcemaps.js
env:
RELEASE_VERSION: ${{ github.sha }}
PROVENANCE_API_URL: ${{ secrets.PROVENANCE_API_URL }}
PROVENANCE_API_KEY: ${{ secrets.PROVENANCE_API_KEY }}
PROVENANCE_ORIGIN_ID: my-appThe upload script creates the release and uploads source maps in one step.
Release Lifecycle
| Status | Meaning |
|---|---|
active | Current deployment for this origin + environment |
superseded | Replaced by a newer release |
rolled_back | Manually marked as rolled back |
Auto-Supersede
When you create a new release for the same origin + environment, the previous active release is automatically marked as superseded. Only one release can be active per origin + environment at a time.
Regression Detection
- You resolve an error issue and specify the release:
resolved in v1.2.3 - A new occurrence of the same error arrives tagged with
v1.3.0 - Since
v1.3.0 ≠ v1.2.3, the issue auto-transitions toregressed
This tells you the fix didn't hold in the new release.
Current Release
The origin config tracks the current release:
{
"errorTracking": {
"currentRelease": "1.2.3"
}
}SDKs automatically tag captured errors with this release. It's updated automatically when you create a new release via the API.