Scrydon

SDK Client

Appelez des workflows Scrydon déployés et la surface données / IA / action de la plateforme depuis vos propres applications

Le SDK Client (@scrydon/sdk) est destiné aux applications first-party agissant pour le compte d'un utilisateur final. Il s'authentifie avec OAuth 2.0 + PKCE et expose des modules typés pour les workflows, les complétions LLM gouvernées, les connaissances, le stockage et la surface data / ai / action de la plateforme.

@scrydon/sdk 1.0 supprime l'ancien client public de chat de workflow et remplace les chaînes d'identifiants de préproduction par des liaisons d'intégration structurées. Consultez le guide de migration 1.0 avant la mise à niveau.

Pour une exécution serveur à serveur — backends, tâches cron, CI, services internes — appelez directement l'API de workflow avec une x-api-key statique. Il n'existe pas de SDK serveur séparé ; voir Exécution → Exécution programmatique.

Ce qu'expose le SDK

SurfaceCe qu'elle fait
client.authOAuth 2.0 + PKCE : signIn()handleCallback()getSession() / signOut() / onAuthStateChange()
client.workflowstrigger({ workflowId, inputs }), triggerAsync(...), getStatus(executionId)
client.chat.completionsComplétions LLM gouvernées compatibles OpenAI ; l'appelant gère l'état de la conversation
client.knowledgequery() / ingest() contre la KB de l'espace de travail
client.storageupload() / getUrl() pour le stockage de l'espace de travail
client.webhooksPub/sub en processus pour les payloads de webhooks
client.dataSDK data de la plateforme — connaissances, memex, stockage, mémoire
client.aiSDK ai de la plateforme — appels LLM résolus par capacité
client.actionSDK action de la plateforme — exécution de workflow, envoi d'e-mail, SMS, exécution de fonction

client.workflows.trigger() et getStatus() analysent une seule union discriminée WorkflowResult :

type WorkflowResult =
  | { executionId: string; status: "running" }
  | { executionId: string; status: "completed"; outputs: unknown }
  | {
      executionId: string;
      status: "failed";
      error: { code: string; message: string; retryable: boolean; blockId?: string };
    };

Un échec terminal d'un workflow accepté est un résultat HTTP 200 normal. L'expiration du polling synchrone renvoie HTTP 202 avec status: "running" ; appelez ensuite getStatus(executionId).

Modèle d'authentification

Le SDK Client utilise OAuth 2.0 avec PKCE — pas de secret client dans le navigateur, pas de clé API statique. Le flux :

Génère le défi PKCE, stocke le vérificateur dans sessionStorage, retourne l'URL https://scrydon.com/oauth/authorize?…. Vous naviguez l'utilisateur vers cette URL.

Il arrive sur votre redirectUri avec ?code= et ?state= dans la chaîne de requête.

Le SDK lit window.location.href (ou ce que vous passez), échange le code contre des jetons, analyse le jeton ID et retourne une ScrydonSession.

Chaque appel de module ajoute automatiquement Authorization: Bearer <accessToken> jusqu'à l'expiration du jeton.

const client = new ScrydonClient({
  baseUrl: 'https://scrydon.com',
  clientId: 'your-oauth-client-id',
  redirectUri: 'https://your-app.com/auth/callback',
})

// Connexion
window.location.assign(await client.auth.signIn())

// Sur la page de callback
const session = await client.auth.handleCallback()
// → { user: { id, email, name? }, accessToken, expiresAt }

Quand NE PAS utiliser ce SDK

Vous êtes…Utilisez plutôt
Un service backend fonctionnant sur un planificateurCurl direct avec x-api-key vers /api/workflows/{id}/execute
Une étape CI ou une tâche cronIdem — x-api-key
En train de construire une intégration que d'autres apps installentLe SDK AuthoringdefineVendor etc.

Pour aller plus loin

Sur cette page

Sur cette page