This release is a pre-release and may not be stable for production use.
northstar-sdk
Python client for the Northstar platform API. It authenticates with the API key of an integration (developer) account and talks only to the platform's Next.js API (NORTHSTAR_API_URL), never to a database or a warehouse.
Install
pip install northstar-sdk
# or
uv add northstar-sdk
Configure
| Variable | Description | Example |
|---|---|---|
NORTHSTAR_API_URL |
Platform API base, including /api |
https://data.example.com/api |
NORTHSTAR_API_KEY |
Integration account API key | northstar_… |
Example
from northstar_sdk import Client
client = Client()
orders = client.datasets.upsert(
location={"schema": "marts", "table": "orders"},
name="Orders",
type="TABLE",
layer="GOLD",
storage_system_slug="warehouse",
)
orders.assign_to_team("sales")
orders.analyze()
Documentation
The user guide is the Developers section of the platform's help center (Help, in the app). Its source is in this repository:
- Integration accounts
- API keys
- Python SDK: configuration, namespaces, write methods, governance, errors
- SDK recipes: warehouses, datasets, documents, KPIs, dashboards, pipelines
- SDK reference: credentials, locations, errors, raw HTTP
A change to the SDK's public behaviour updates those articles, in English and French, in the same change (see the root CLAUDE.md).
Maintaining the SDK
The SDK is a thin HTTP client: request bodies are validated by the servers, not by the SDK.
flowchart LR
Sdk["northstar-sdk Client"]
Bff["Next.js /api/feature/..."]
FastApi["FastAPI /v1/feature/..."]
Compute["northstar-compute"]
Prisma["Prisma / Postgres"]
Sdk -->|"X-API-KEY"| Bff
Bff -->|"proxyAuthenticatedJson"| FastApi
FastApi --> Compute
Bff --> Prisma
| Resource | Next.js route | Canonical body |
|---|---|---|
| Storage system | /api/feature/data-storage-systems/create|upsert → FastAPI |
DataStorageSystemWriteRequest |
| Dataset | /api/feature/datasets/create|upsert → FastAPI |
DatasetWriteRequest |
| Document collection | /api/feature/document-collections/create|upsert|ingest → FastAPI |
DocumentCollectionWriteRequest |
| Data source | /api/feature/data-sources/create|upsert, PATCH …/[id]/write → FastAPI |
DataSourceWriteRequest |
| Data source category | /api/feature/data-source-categories/create|upsert (Prisma) |
Zod in those routes |
| KPI | POST /api/feature/kpi-catalogue |
camelCase in that route |
| Dashboard | POST /api/feature/dashboards |
registerDashboardSchema |
| Figure | POST /api/feature/builder/figures |
Builder figure route |
| Team / user / organization | /api/teams, /api/users, /api/organizations |
Those Next.js routes |
- Storage credentials are checked in
warehouse/credentials.py(validate_and_normalize_credentials). - Dataset and collection
locationkeys:LOCATION_KEY_PARTSindatasets/location.pyanddocument_collections/location.py. - Resources proxied to FastAPI use snake_case JSON; Next.js catalogue resources (
kpi-catalogue,dashboards,figures) use camelCase. The SDK maps snake_case Python arguments for you.
When you change a FastAPI *WriteRequest or a Next.js Zod schema:
- Update the matching handle
_payload()/_base_payload()insrc/northstar_sdk/handles/. - Update the namespace arguments and
src/northstar_sdk/types/params.py. - Run
uv run --package northstar-sdk pytest tests/test_typing_params.py. - Update the SDK articles of the help center (
front/content/help/*/python-sdk.md,sdk-recipes.md,sdk-reference.md).
Publishing: PUBLISHING.md.
Metadata
Release files for northstar-sdk 1.5rc1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| northstar_sdk-1.5rc1.tar.gz | 45.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| northstar_sdk-1.5rc1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 112.1 kB
Release files / northstar_sdk-1.5rc1.tar.gz
| Download URL | northstar_sdk-1.5rc1.tar.gz |
|---|---|
| Size | 45.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9d87074597263c405b1fb28cdc29719611d4a273fb9496bfc336f312e2612c0f
|
|
BLAKE2b-256 checksum How to use checksums |
7eeddff7f889f878b74d8041aee2480453a9d28bafb31169884aef37c57d937d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / northstar_sdk-1.5rc1-py3-none-any.whl
| Download URL | northstar_sdk-1.5rc1-py3-none-any.whl |
|---|---|
| Size | 66.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6374f01e5a569097d56c1bbc3022f2cf31dadd6be608e445b825052d4b47561d
|
|
BLAKE2b-256 checksum How to use checksums |
3bcef49ad7e8b770650f39cad780bc8c9c709de325fab39c3198c028a38925e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|