Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions integrations/cli.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

`@interfere/cli` uploads your source maps and registers each deploy as a release, so production stack traces point back to your real code instead of minified output. You run it as a step in your build or CI.

You only need it when you're not already using a bundler plugin. The [Next.js](/sdk/next-js) and [Vite](/sdk/vite) plugins do this automatically during the build. Reach for the CLI when there is no plugin for your setup: a Node or NestJS backend, a bundler we do not have a plugin for, or any deploy that is not on Vercel or Cloudflare, such as AWS, Fly, Render, or your own servers.

Check warning on line 9 in integrations/cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

integrations/cli.mdx#L9

Did you really mean 'bundler'?

Check warning on line 9 in integrations/cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

integrations/cli.mdx#L9

Did you really mean 'bundler'?

Check warning on line 9 in integrations/cli.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

integrations/cli.mdx#L9

Did you really mean 'Vercel'?

<Note>
The CLI uses your **Interfere API key** (`INTERFERE_API_KEY`, the `interfere_secret_<region>_…` build credential) from [Surfaces](https://interfere.com/~/*/surfaces). It's a server-side secret, so keep it in CI and never in client code.
Expand Down Expand Up @@ -90,6 +90,37 @@

CircleCI, GitLab CI, and Buildkite are detected the same way. Outside a supported CI system the CLI falls back to `git rev-parse HEAD`.

### AWS, Fly, Render, and self-hosted deploys

There's no separate AWS integration — anywhere you build and deploy yourself, the CLI is how releases and source maps reach Interfere. Run it as a step in whatever pipeline produces your build, after the build and before (or alongside) the deploy. That covers AWS CodeBuild and CodePipeline, an EC2 or ECS build runner, Fly's `flyctl deploy`, Render's build command, a self-hosted Jenkins or Drone, and similar setups.

AWS CodeBuild example:

```yaml buildspec.yml
version: 0.2

env:
secrets-manager:
INTERFERE_API_KEY: interfere/api-key

phases:
build:
commands:
- npm ci
- npm run build
- npx interfere sourcemaps upload ./dist
```

If your build environment has no git checkout (a Docker build, a pre-baked artifact, a Lambda zip), pass the commit explicitly so the release lines up with the SDK:

```bash
interfere sourcemaps upload ./dist \
--commit-sha "$GIT_SHA" \
--environment production
```

The same shape works on Fly (run it in your `Dockerfile` or release command), Render (add it to the build command), and any self-hosted runner — set `INTERFERE_API_KEY`, then invoke `interfere sourcemaps upload` against your build output.

## Options

Most runs need none of these. Reach for them when auto-detection can't see what it needs (containers, unusual CI) or you want to label the release.
Expand Down
2 changes: 1 addition & 1 deletion integrations/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ They fall into three groups:
- **Destinations** are where your code runs, so Interfere can line a problem up with the release that shipped it.
- **Communications** are how Interfere reaches your team and takes direction back.

Deploying somewhere without a native integration, like AWS, Fly, Render, or your own servers? Use the [CLI](/integrations/cli) to report releases and upload source maps from your pipeline.
Deploying somewhere without a native integration, like AWS (CodeBuild, ECS, EC2, Lambda), Fly, Render, or your own servers? Use the [CLI](/integrations/cli) to report releases and upload source maps from your pipeline — see [AWS, Fly, Render, and self-hosted deploys](/integrations/cli#aws-fly-render-and-self-hosted-deploys) for a worked example.

<Note>
Interfere requests the least access each integration needs, and read-only wherever possible. Each page lists the exact permissions and why.
Expand Down