Vai al contenuto principale

Panoramica

Devin mette a disposizione diverse versioni dell’API con differenti meccanismi di autenticazione e modelli di autorizzazione. Comprendere quale tipo di API key utilizzare è fondamentale per una corretta integrazione.

Riepilogo delle versioni dell’API

VersioneAutenticazioneModello di autorizzazione
v1API key personali o di servizioAmbito organizzativo
v2API key personaliSolo amministratori Enterprise
v3 (Beta)Credenziali utente di servizioRBAC completo

Tipi di API key

Tipo di API keyPrefissoDescrizione
API key personaleapk_user_Chiavi con ambito utente-org che ereditano le autorizzazioni del singolo utente
API key di servizioapk_Chiavi di servizio con ambito organizzazione per l’automazione
Credenziale utente di serviziocog_Credenziali utente di servizio a livello Enterprise/organizzazione con RBAC

API key personali

Le API key personali sono associate ai singoli account utente e sono limitate a una org. Ereditano le autorizzazioni di quell’utente. Dove generarle:
  • Vai a Settings > API Keys in qualsiasi sotto-organizzazione
  • Fai clic su “Generate New API Key”
  • Copia e archivia la chiave in modo sicuro (verrà mostrata solo una volta)
Versioni API supportate:
  • v1: Sì - eredita le autorizzazioni a livello di organizzazione dell’utente
  • v2: Sì - solo per utenti con ruolo di Enterprise Admin
  • v3: No - usa invece le Service User Credentials
Casi d’uso consigliati:
  • Script di automazione personali
  • Sviluppo e test
  • Integrazioni specifiche per utente
Considerazioni sulla sicurezza:
  • Le chiavi sono limitate alle autorizzazioni dell’utente
  • La revoca dell’accesso di un utente invalida automaticamente le sue API key
  • Le chiavi dovrebbero essere ruotate regolarmente

Service API Keys (con ambito organizzativo)

Le Service API keys possono essere generate all’interno delle sottoorganizzazioni, a determinate condizioni. Dove generarle: Versioni API supportate:
  • v1: Sì - con ambito organizzativo
  • v2: No - non supportata
  • v3: No - usa invece le Service User Credentials
Casi d’uso consigliati:
  • Automazione a livello di organizzazione
  • Pipeline CI/CD con ambito limitato a team specifici
  • Strumenti condivisi all’interno di una sottoorganizzazione

Credenziali utente di servizio (solo v3)

Gli utenti di servizio sono account dedicati con ruoli e permessi specifici, progettati per l’automazione basata su API con pieno supporto RBAC. Dove generarli:
  • Vai su Enterprise Settings > Service Users
  • Clicca su “Create Service User”
  • Assegna i ruoli appropriati (Enterprise Admin, Org Admin, Org Member, ecc.)
  • Genera un’API key per l’utente di servizio
Tipi di utenti di servizio:
  • Enterprise Service Users: Possono accedere a più organizzazioni in base ai ruoli assegnati
  • Organization Service Users: Con ambito limitato a specifiche organizzazioni con ruoli a livello di org
Versioni API supportate:
  • v1: No - non disponibile
  • v2: No - non disponibile
  • v3: Sì - pieno supporto RBAC
Casi d’uso consigliati:
  • Automazione in produzione con permessi granulari
  • Flussi di lavoro multi-organizzazione
  • Integrazioni sensibili alla conformità normativa che richiedono tracciabilità/audit trail
  • Integrazioni di lunga durata con ambiti di permesso specifici
Considerazioni sulla sicurezza:
  • Gli utenti di servizio compaiono nei log di audit separatamente dagli utenti umani
  • I permessi possono essere controllati con precisione tramite RBAC
  • Le chiavi possono essere ruotate senza influire sugli account utente umani
  • Ideali per applicare il principio del privilegio minimo

Metodi di autenticazione

Autenticazione con token Bearer

Tutte le API di Devin utilizzano l’autenticazione con token Bearer. Includi la tua API key nell’intestazione Authorization:
Authorization: Bearer your_api_key_here

Esempi di richieste

Esempio di richiesta per l’API v1:
curl -X POST "https://api.devin.ai/v1/sessions" \
  -H "Authorization: Bearer YOUR_V1_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Crea un semplice script Python"
  }'
Esempio di API Enterprise v2:
curl -X GET "https://api.devin.ai/v2/enterprise/organizations" \
  -H "Authorization: Bearer YOUR_V2_ENTERPRISE_ADMIN_KEY"
Esempio API v3 (beta):
curl -X GET "https://api.devin.ai/v3beta1/enterprise/organizations" \
  -H "Authorization: Bearer YOUR_V3_SERVICE_USER_KEY"

Migliori pratiche di sicurezza

Non condividere mai le API key in aree accessibili pubblicamente come repository GitHub, codice lato client o log.
  1. Conserva le chiavi in modo sicuro: Usa variabili d’ambiente o sistemi di gestione dei segreti
  2. Ruota regolarmente le chiavi: Genera nuove chiavi e revoca periodicamente quelle vecchie
  3. Usa utenti di servizio per l’automazione: Preferisci gli utenti di servizio v3 alle chiavi personali in produzione
  4. Applica il principio del privilegio minimo: Concedi solo le autorizzazioni strettamente necessarie
  5. Monitora l’utilizzo: Controlla i log di audit per individuare attività API inattese
  6. Revoca immediatamente le chiavi compromesse: Se una chiave viene esposta, revocala e generane una nuova

Risoluzione dei problemi

401 Non autorizzato

Possibili cause:
  • API key non valida o scaduta
  • Header Authorization mancante
  • Formato del token Bearer errato
Soluzione: Assicurati che la tua API key sia corretta e correttamente formattata nell’header Authorization.

403 Forbidden

Possibili cause:
  • L’API key non dispone delle autorizzazioni richieste
  • Utilizzo della versione errata dell’API per il tipo di chiave (ad es. chiave personale con v3)
  • Tentativo di accedere a risorse al di fuori del proprio ambito di autorizzazione
Soluzione:
  • Per v2: assicurati di avere il ruolo di Enterprise Admin
  • Per v3: utilizza una credenziale di utente di servizio con i ruoli appropriati
  • Per v1: verifica di avere accesso all’organizzazione

404 Non trovato

Possibili cause:
  • URL dell’endpoint API errato
  • La risorsa non esiste oppure non disponi dei permessi di accesso
Soluzione: Verifica che l’URL dell’endpoint corrisponda alla versione dell’API che stai usando e che la risorsa esista.

Prossimi passaggi