Intégrations personnalisées
Créez, empaquetez et importez des intégrations vendeur personnalisées à l'aide du SDK Intégrations Scrydon
Le SDK Intégrations Scrydon vous permet de créer des intégrations vendeur personnalisées sous forme de bundles autonomes. Chaque bundle est une archive .tar.gz contenant du code compilé et un manifeste — importez-la via le portail Paramètres et elle devient immédiatement disponible dans l'éditeur de workflow.
Aucun accès au monorepo ni redéploiement de la plateforme requis. Installez le SDK depuis NPM, écrivez votre intégration en TypeScript, compilez et importez.
Les intégrations apportent des capacités vendeur à la plateforme. Vous souhaitez distribuer du contenu domaine (une ontologie + des workflows + un flux de processus) ? C'est un Pack — voir Packs & SDK d'authoring.
Fonctionnement
Chaque intégration suit le même cycle de vie :
Utilisez les helpers SDK defineVendor(), defineProduct(), defineTool() et defineBlock() pour déclarer votre intégration en TypeScript. Les schémas Zod valident les entrées et sorties à la fois au moment de la compilation et à l'exécution.
Exécutez sdk-authoring integrations build pour compiler votre TypeScript en un bundle ESM unique, extraire un manifeste avec des représentations JSON Schema de vos schémas Zod, et tout empaqueter dans un .bundle.tar.gz.
Importez l'intégration personnalisée via Paramètres > Plateforme > Intégrations > Personnalisées (ou via l'API). La plateforme valide le manifeste, stocke l'artefact et l'enregistre dans le catalogue.
Lorsqu'un workflow utilise votre outil, la plateforme démarre un Worker Thread sandboxé pour votre bundle. Votre fonction execute() s'exécute en isolation avec des credentials injectés, un logger et un contexte d'exécution.
Architecture
┌─────────────────────────────────────────────────────────┐
│ Your Code (TypeScript) │
│ │
│ defineVendor({ auth, products: [ │
│ defineProduct({ block, capabilities: { │
│ tools: [ defineTool({ input, output, execute }) ] │
│ }}) │
│ ]}) │
└─────────────────┬───────────────────────────────────────┘
│ sdk-authoring integrations build
▼
┌─────────────────────────────────────────────────────────┐
│ Bundle (.tar.gz) │
│ ├── manifest.json (metadata, JSON Schemas, UI def) │
│ ├── dist/index.js (compiled ESM, all deps inlined) │
│ └── assets/ (icons, optional) │
└─────────────────┬───────────────────────────────────────┘
│ Upload via Settings UI or API
▼
┌─────────────────────────────────────────────────────────┐
│ Platform Runtime │
│ │
│ Manifest Catalog ── metadata (what blocks/tools exist) │
│ SandboxActor ────── execution (Worker Thread per org) │
│ Policy Engine ───── governance (capability allowlists) │
└─────────────────────────────────────────────────────────┘Concepts clés
| Concept | Rôle |
|---|---|
| Vendor | Conteneur de niveau supérieur — métadonnées, configuration d'auth et un ou plusieurs produits |
| Product | Unité de regroupement activée/désactivée par organisation |
| Tool | Logique d'exécution — entrée/sortie validée par Zod avec une fonction execute() |
| Block | Interface de l'éditeur de workflow — champs de formulaire (subBlocks), flux de données (inputs/outputs) |
| Capability | Interfaces d'exécution optionnelles — LLM, STT, TTS, Embedding, Vidéo, OCR, Webhooks, Discovery |
| Manifest | Métadonnées JSON générées automatiquement — la plateforme les lit sans charger votre code |
| SandboxActor | Worker Thread isolé par org et par vendeur — aucune fuite d'état inter-tenant |
Modèle de sécurité
Tous les bundles — y compris les intégrations natives — passent par le même chemin d'exécution sandboxé :
- Isolation Worker Thread — aucun accès au processus hôte, au système de fichiers ou aux autres tenants
- Globales restreintes —
process,Bun,Denone sont pas disponibles dans le sandbox - Injection de credentials — votre code reçoit les tokens via
ctx.auth, sans jamais manipuler les secrets bruts - Application des politiques — les politiques organisationnelles contrôlent quelles capacités et quels vendeurs sont autorisés
- Validation du manifeste — la validation des schémas Zod au moment de l'import rejette les bundles malformés
Premiers pas
Créez votre première intégration en 5 minutes avec l'exemple hello-world
Référence SDK
Référence API complète pour defineVendor, defineTool, defineBlock et plus encore
Capacités
Ajoutez LLM, STT, TTS, embedding, webhooks et discovery à votre vendeur
Import
Importez des bundles via l'interface Paramètres ou l'API, et gérez les intégrations installées