Aller au contenu
northstar
Menu de la documentation

Référence du SDK

Identifiants par type de stockage, clés d’emplacement, erreurs et appels HTTP directs.

En bref

Cette page liste ce que le SDK envoie pour chaque type de ressource : identifiants de stockage, emplacements des datasets et des collections. Elle décrit aussi les réponses d'erreur, et comment appeler l'API de la plateforme sans le SDK. Pour les notions, commencez par SDK Python.

Identifiants par type de stockage

client.storage_systems.create(…, kind=…, credentials={…}) attend ces champs. Les identifiants sont chiffrés avant d'être enregistrés et ne sont jamais renvoyés.

TypeObligatoiresFacultatifs
POSTGRESQLhost, user, password, databaseport (5432 par défaut)
MYSQLhost, user, password, databaseport (3306 par défaut)
CLICKHOUSEhost, user, databasepassword, port, secure, interface (http ou native)
SNOWFLAKEaccount, user, database, et password ou private_keywarehouse, role, schema
REDSHIFThost, user, password, databaseport (5439 par défaut), ssl (true par défaut)
DATABRICKSserver_hostname, http_path, access_tokencatalog, schema
BIGQUERYclient_email, private_key, project_idles autres champs du fichier de compte de service
FABRICserver, database, tenant_id, client_id, client_secret—
S3access_key_id, secret_access_keyregion (us-east-1 par défaut), endpoint_url, bucket, session_token
GOOGLE_DRIVEclient_email, private_keyles autres champs du fichier de compte de service
ONEDRIVEtenant_id, client_id, client_secret—
SHAREPOINTtenant_id, client_id, client_secret, et site_id ou site_url—

Pour les comptes de service Google, lisez le fichier JSON dans votre code et envoyez ses champs. Un fichier entier passé comme une seule valeur (service_account ou service_account_json) est refusé.

Un champ obligatoire manquant échoue avec une réponse 400 qui nomme les champs manquants.

Emplacements des datasets

location indique où se trouve la table ou le fichier. Ses clés dépendent du type du système de stockage :

TypeClés de location
POSTGRESQL, MYSQL, REDSHIFT, FABRICschema, table
CLICKHOUSEdatabase, table
SNOWFLAKEdatabase, schema, table
DATABRICKScatalog, schema, table
BIGQUERYproject, dataset, table
S3bucket, key, et éventuellement format : csv, tsv ou parquet
GOOGLE_DRIVEfolderId, fileId
ONEDRIVEdriveId, folderId, fileId
SHAREPOINTsiteId, driveId, folderId, fileId

Sur Microsoft Fabric, ajoutez database pour une table située hors de la base de la connexion.

Le système de stockage et l'emplacement identifient un dataset : un upsert avec le même couple met à jour le dataset existant. type vaut TABLE, VIEW ou MATERIALIZED_VIEW.

Emplacements des collections

TypeClés de location
GOOGLE_DRIVEfolderId (folder_id est accepté). Pour un drive partagé, ajoutez driveId.
S3bucket, prefix
ONEDRIVEdriveId, folderId
SHAREPOINTsiteId, driveId, folderId

Une collection est identifiée par son slug, et par son système de stockage et son emplacement. create échoue avec 409 si l'un des deux existe déjà. upsert met à jour la collection correspondante, et échoue avec 409 si le slug et l'emplacement désignent deux collections différentes.

Réponses d'erreur

StatutSignificationCorps
400Entrée invalide{"error": "invalid_input", "message": "…"}
401Clé absente, inconnue ou révoquée{"error": "Unauthorized"}
403Le compte n'a pas la fonctionnalité ou le droit sur la ressource{"error": "Forbidden"}
404La ressource n'existe pas, ou le compte ne peut pas la voir{"error": "…"}
409create sur une clé métier qui existe déjà{"error": "conflict", "message": "…", "detail": {"existing_id": "…", "conflict_key": "slug"}}

Le SDK lève PermissionError sur 401 et httpx.HTTPStatusError sur les autres ; error.response.json() donne le corps.

Appels HTTP directs

Le SDK est le moyen d'intégration pris en charge. Si vous ne pouvez pas utiliser Python, appelez la même API : l'adresse de base est votre NORTHSTAR_API_URL, et chaque requête porte la clé.

bash
curl -H "X-API-KEY: $NORTHSTAR_API_KEY" "$NORTHSTAR_API_URL/me"

GET /me renvoie le compte et son organisation : utilisez-le pour vérifier une clé. Les principaux appels d'écriture, relatifs à l'adresse de base :

AppelMéthode et chemin
Système de stockagePOST /feature/data-storage-systems/create ou /upsert
DatasetPOST /feature/datasets/create ou /upsert
Analyse d'un datasetPOST /feature/datasets/{id}/analysis/run
Collection de documentsPOST /feature/document-collections/create ou /upsert, puis /ingest
SourcePOST /feature/data-sources/create ou /upsert
KPIPOST /feature/kpi-catalogue
Tableau de bordPOST /feature/dashboards

Les corps reprennent les noms d'arguments du SDK en snake_case, plus organization_id, que le SDK lit dans GET /me. Les corps des KPIs et des tableaux de bord sont en camelCase (datasetId, embedUrl). Ces chemins peuvent changer d'une version à l'autre ; le SDK les suit pour vous.

Questions fréquentes

Où trouver l'identifiant d'un dossier Drive ? Dans l'URL du dossier : c'est la partie après /folders/.

Puis-je enregistrer un fichier CSV comme dataset ? Oui, depuis Amazon S3 avec format="csv", ou depuis un drive avec son fileId.

Existe-t-il une description OpenAPI de cette API ? Pas pour les intégrateurs : le SDK et cette page font référence.

Voir aussi