Aller au contenu

Connecteurs

Connecte ton application à des services tiers comme Slack, Resend et ElevenLabs. Les identifiants sont chiffrés et les actions sont pré-authentifiées.

Les connecteurs te permettent d’intégrer des services externes dans ton application sans avoir à gérer des clés API brutes dans le code. Tu configures une connexion une seule fois, tu la lies à ton projet, et tu appelles des actions prédéfinies depuis ton application. Les identifiants sont chiffrés au repos et ne sont jamais exposés à ton code frontend.

Connecteur Catégorie Type d’auth Ce qu’il fait
Resend Communications Clé API Envoyer des e-mails transactionnels, des e-mails en lot, lister les domaines vérifiés
Slack Communications OAuth Publier des messages, lister les canaux et les utilisateurs, réagir aux messages, lire les fils
ElevenLabs IA Clé API Synthèse vocale, liste des voix disponibles, génération d’effets sonores

De nouveaux connecteurs sont ajoutés régulièrement.

  1. Tu crées une connexion — fournis tes identifiants (une clé API ou une connexion via OAuth)
  2. Tu lies la connexion à un projet — cela autorise le projet à utiliser ces identifiants
  3. Ton application appelle des actions — la requête passe par Proyecta Cloud, qui injecte les identifiants côté serveur

Le code de ton application ne touche jamais la clé API brute ni le token OAuth. Le système de connecteurs gère l’authentification, la limitation du débit et la journalisation des audits.

  1. Ouvre ton projet dans le builder
  2. Accède à Settings > Connectors
  3. Clique sur un connecteur dans le catalogue (par exemple, Resend)
  4. Saisis tes identifiants :
    • Connecteurs par clé API (Resend, ElevenLabs) : colle ta clé secrète
    • Connecteurs OAuth (Slack) : connecte-toi et autorise l’accès
  5. Donne un nom à la connexion (par exemple, « Production Resend »)
  6. La connexion est testée automatiquement et marquée Active si elle est valide

Ton application peut interroger une API tierce directement depuis le navigateur sans que la clé API n’arrive jamais dans le bundle. L’identifiant reste chiffré sur la plateforme ; ton application se contente de nommer le connecteur, l’action et une entrée typée, et la plateforme effectue l’appel pour toi.

import { useConnectorData, useHttpRead } from '@/hooks/useConnector.ts';
// A connector's own read action, as a cached query
const { data, isLoading, error } = useConnectorData('eleven-labs', 'listVoices');
// The generic HTTP-read connector, by endpoint name
const { data: feed } = useHttpRead('news-feed', { limit: 10 });

Deux garde-fous méritent d’être connus, car ils sont volontaires :

  • Lecture uniquement. Seules les actions que la plateforme a marquées comme sûres pour le navigateur sont accessibles — tout le reste retourne 403. Les écritures (publier sur Slack, envoyer un e-mail, débiter une carte) ne sont jamais accessibles depuis le navigateur.
  • Tu ne peux pas transmettre une URL ni un hôte. Pour le connecteur générique http-read, l’entrée est { endpointKey, params }, et l’URL derrière endpointKey est configurée par toi, le propriétaire de l’application — pas par le code de l’application. Les réponses sont mises en cache côté serveur et soumises à une limitation de débit, car les clés tierces sont facturées au quota.

Un 404 signifie que le propriétaire n’a pas encore connecté ce connecteur — c’est le cas qu’il vaut la peine de gérer dans ton interface.

Tu n’as pas à écrire le code des connecteurs à la main. Le builder IA sait quels connecteurs sont liés à ton projet et peut générer l’intégration pour toi :

  • "Send a welcome email when users sign up" — utilise le connecteur Resend
  • "Post a Slack message when a new order comes in" — utilise le connecteur Slack
  • "Play audio narration on the article page" — utilise le connecteur ElevenLabs
Action Effets de bord Description
sendEmail écriture Envoyer un seul e-mail transactionnel
sendBatch écriture Envoyer plusieurs e-mails en une fois
listDomains lecture Lister les domaines d’envoi vérifiés
Action Effets de bord Description
postMessage écriture Publier un message dans un canal
listChannels lecture Lister les canaux de l’espace de travail
listUsers lecture Lister les membres de l’espace de travail
reactToMessage écriture Ajouter une réaction emoji
getThread lecture Récupérer les réponses d’un fil
Action Effets de bord Description
textToSpeech écriture Convertir du texte en audio vocal
listVoices lecture Lister les voix disponibles
generateSoundEffect écriture Générer un effet sonore par IA
Statut Signification
Active Les identifiants sont valides et la connexion est prête à l’emploi
Broken Les identifiants ont expiré ou ont été révoqués — mets-les à jour pour rétablir
  • Les identifiants sont chiffrés avec AES-256-GCM au repos
  • Les actions sont limitées à 1 000 requêtes par minute par connecteur et par projet
  • Chaque appel d’action est journalisé avec une piste d’audit (connexion, action, durée, statut)
  • Les connexions sont limitées à l’ensemble de l’espace de travail

Puis-je utiliser la même connexion sur plusieurs projets ?

Oui. Crée la connexion une seule fois et lie-la à autant de projets que tu le souhaites dans le même espace de travail.

Que se passe-t-il si ma clé API expire ou est révoquée ?

Le statut de la connexion passe à Broken. Mets à jour les identifiants dans Settings > Connectors pour la rétablir.

Puis-je appeler des actions de connecteurs depuis le frontend ?

Ton application ne détient jamais les identifiants. Les actions de lecture sûres pour le navigateur sont relayées par Proyecta Cloud, qui injecte les identifiants côté serveur : la clé n’est donc jamais dans ton bundle. Les actions d’écriture, elles, ne sont pas du tout accessibles depuis le navigateur.

Puis-je ajouter mes propres connecteurs personnalisés ?

Pas encore. La définition de connecteurs personnalisés est prévue dans la feuille de route.

  • Connecteurs supplémentaires (Google, Twilio, SendGrid, et plus encore)
  • Définitions de connecteurs personnalisés — apporte ta propre API
  • Ingestion de webhooks pour les événements entrants depuis les services connectés
  • Passerelle OAuth — conserve les tokens côté serveur, même pour les flux initiés par le client