> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sazabi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Northflank

> Create a Northflank HTTP log sink pointed at your Sazabi intake URL to forward runtime logs from your services, jobs, add-ons, and sandboxes.

[All Northflank integration capabilities](https://docs.sazabi.com/catalogs/integrations/northflank)

## About

Northflank [log sinks](https://northflank.com/docs/v1/application/observe/configure-log-sinks) forward the runtime logs of the containers in your team, or in the projects you pick. Create an HTTP log sink that points at your Sazabi intake URL and Northflank batches log lines from your services, jobs, and add-ons and posts them to Sazabi. Sazabi never holds a Northflank credential.

Each container log line is one record. Its message is Northflank's `message` field, which starts with the timestamp Northflank adds to the line. The record's service is the Northflank service name, and Northflank's project, service, pod, entity ID, and resource type (`service`, `job`, or `addon`) are kept as `northflank.project`, `northflank.service`, `northflank.pod`, `northflank.entity`, and `northflank.type`.

[Sandboxes](https://northflank.com/docs/v1/application/sandboxes/configure-and-manage-sandboxes) are Northflank services in a project, so a sink that forwards a project's containers forwards the logs of its sandboxes too.

## Prerequisites

* A Northflank team with at least one project.
* Permission to create log sinks in the team (**Account > Observability > LogSinks > Create**).
* Your Sazabi intake URL and public key. Add the Northflank log source in [**Settings > Log streams**](https://app.sazabi.com/settings/log-source-providers) and copy both from its setup screen. The intake URL already identifies your log source; the sink also sends the public key as a bearer token so it isn't created without authentication.

## Set up in the dashboard

**Step 1**

### Open the HTTP log sink form

Open the [Northflank log sinks page](https://app.northflank.com/s/account/integrations/log-sinks/new/http) for your team (**Team settings > Integrations > Log sinks**) and add a new **HTTP** log sink.

**Step 2**

### Point the sink at Sazabi

* **URL**: your Sazabi intake URL, with no path.
* **Authentication strategy**: **Bearer token**.
* **Token**: your Sazabi public key, with no `Bearer ` prefix.
* **Encoding**: **JSON**.
* Leave the batch options at their defaults.

**Step 3**

### Choose projects and add the sink

By default the sink forwards every project in the team. To limit it, open the advanced options and target selected projects. Click **Add log sink**. Northflank sends a `Validating log sink credentials` entry to confirm the sink works, then starts forwarding logs.

### Or create the sink with the Northflank API or CLI

Instead of the dashboard form, create the same sink with one call to [`POST /v1/integrations/log-sinks`](https://northflank.com/docs/v1/api/team/integrations/create-log-sink). The API token's role needs **Account > Observability > LogSinks > Create**. Replace `<intake-host>` with your intake URL's hostname and `<public-key>` with your public key:

```bash theme={"system"}
curl -X POST https://api.northflank.com/v1/integrations/log-sinks \
  -H "Authorization: Bearer $NORTHFLANK_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "sazabi",
    "description": "Forward container logs to Sazabi",
    "sinkType": "http",
    "sinkData": {
      "uri": "https://<intake-host>",
      "encoding": { "codec": "json" },
      "auth": { "strategy": "bearer", "token": "<public-key>" }
    }
  }'
```

With the [Northflank CLI](https://northflank.com/docs/v1/api/use-the-cli) logged in, pass the same definition to `northflank create log-sink`:

```bash theme={"system"}
northflank create log-sink --input '{"name":"sazabi","sinkType":"http","sinkData":{"uri":"https://<intake-host>","encoding":{"codec":"json"},"auth":{"strategy":"bearer","token":"<public-key>"}}}'
```

To limit the sink to some projects, add `"restricted": true` and a `"projects"` array of project IDs to the definition. The setup screen in Sazabi shows both commands with your intake host and public key already filled in.

## Set up with the CLI

You can also register the Northflank log source with the [Sazabi CLI](https://docs.sazabi.com/reference/cli.md) (installed and authenticated — see [CLI reference](https://docs.sazabi.com/reference/cli/log-sources.md)):

```bash theme={"system"}
sazabi log-sources create northflank --mode manual
```

The command prints the intake URL for the new source. Run `sazabi log-sources get <log-source-id>` at any time to reprint the endpoint.

## Verify

Deploy a service, run a job, or start a sandbox in a forwarded project. Open the [Intake page](https://docs.sazabi.com/guides/instrument/intake.md) in the Sazabi dashboard and confirm records from the **Northflank** source appear. The `Validating log sink credentials` entry Northflank sends when you add the sink arrives first.

## Troubleshooting

**Records arrive without project or service attributes** — the sink's encoding is **Text**. Edit the sink and switch it to **JSON**.

**The validation entry arrives but no other logs** — the sink is restricted to projects with no running containers, or the forwarded containers aren't writing logs.

**No build logs** — Northflank log sinks forward runtime logs only. CDN, ingress, and mesh logs are forwarded only if you turn them on in the sink's advanced options.

## Further reading

> [card] [Intake](https://docs.sazabi.com/guides/instrument/intake.md)
>
> See per-source ingestion volume and health in the Intake page.

> [card] [Log sources](https://docs.sazabi.com/catalogs/log-sources.md)
>
> Browse the full log source catalog.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.