Quickstart

Create the first workspace, configure a backend application environment, connect one integration, and verify one observation. This path proves the ingestion connection; incident detection and repair follow after real observations exist.

What you will verify

The quickstart is complete when the integration reports its first observation. It does not require an incident, repair proposal, or GitHub connection.

Before you begin

You need a Node backend with one webhook or external API operation that can receive safe test traffic. You also need access to the Seamward repository for the initial workspace bootstrap.

Create the workspace

Run the initial workspace bootstrap from the repository root:

Code example

pnpm auth:bootstrap-workspace -- --email owner@example.com --name "Acme"

Open the invitation delivered to the owner email address, create the account, and verify the email before signing in. Use the bootstrap command only for the first workspace owner; invite later members from Workspace settings.

Read the workspace setup guide.

Configure ingestion

Open Workspace settings from the sidebar, then open the Data ingestion tab. Create an application environment for the backend you will run.

Copy the secret ingest token when Seamward displays it. The token is shown once and belongs in the backend secret store. The application environment’s Source key remains visible.

Understand application environments and ingest tokens.

Connect an integration

Open Integrations from the sidebar and click the Connect integration button in the page header. Enter the workflow name and provider, choose its traffic direction and application environment, then click the Create integration button at the bottom of the form.

Copy the Integration key from the setup step. It routes observations to this integration and does not grant workspace read access.

Review the integration boundary.

Verify the observation

Install and configure the Node collector, then instrument one representative backend handler.

Install collector

pnpm add @seamward/collector

Create collector

import { createSeamwardCollector } from "@seamward/collector";
export const seamward = createSeamwardCollector({  sourceKey: process.env.SEAMWARD_SOURCE_KEY!,  ingestToken: process.env.SEAMWARD_INGEST_TOKEN!,});

Observe webhook

const handleCandidate = seamward.observeWebhook(  {    integrationKey: process.env.SEAMWARD_INTEGRATION_KEY!,    routeTemplate: "/webhooks/candidate",  },  async (payload) => processCandidate(payload),);

Trigger the existing handler once with safe test traffic. Return to the integration and confirm that its setup status reports the first observation instead of No observation received yet.

Diagnose a missing observation.