Saltar al contenido principal

Cifrado

Todos los secretos almacenados en Driftless se cifran con AES-256-GCM antes de llegar a la base de datos. Esto incluye:
  • API keys
  • Secretos de webhooks
  • Credenciales de la GitHub App
  • Keys de proveedores de modelos (BYOM)
  • Tokens OAuth y códigos de autorización
La clave de cifrado se deriva de variables de entorno y nunca se almacena en la base de datos.
Nunca almacenes secretos en texto plano en Driftless. La capa de cifrado es obligatoria y se aplica de forma transparente.

API keys

Las API keys son el mecanismo de autenticación principal para la CLI y CI.
  • Las keys se generan con un prefijo drift_ para identificarlas fácilmente
  • La key en crudo se muestra solo una vez, al momento de crearla
  • Las keys se almacenan como hashes con salt; el valor en crudo no se puede recuperar
  • Las keys se pueden revocar en cualquier momento desde el dashboard
  • Se admiten múltiples keys por workspace
Crea keys desde el dashboard en Settings > API Keys o mediante la CLI:
driftless login

OAuth y MCP

Driftless admite autorización OAuth 2.0 para aplicaciones cliente de MCP (Model Context Protocol) como ChatGPT y Claude. OAuth permite que clientes de IA de terceros accedan al contexto de tu workspace con el consentimiento explícito del usuario.

Scopes de OAuth

ScopeDescripción
context:readLee topics y contexto
topics:createCrea nuevos topics
topics:writeActualiza topics existentes
context:diffLee el diff de topics para cambios locales

Flujo de OAuth

  1. El cliente MCP redirige al usuario a /api/v1/oauth/authorize en la API de Driftless
  2. El usuario da su consentimiento en el dashboard en /oauth/authorize
  3. La API emite un código de autorización (con soporte PKCE)
  4. El cliente intercambia el código por un token de acceso en /api/v1/oauth/token
  5. El cliente usa el token bearer para llamar a las herramientas MCP

Seguridad de los tokens

  • Los códigos de autorización, tokens de acceso y tokens de refresco se almacenan solo como hashes, nunca en texto plano
  • Los tokens nunca se registran ni se devuelven después de la emisión inicial
  • El servidor MCP (apps/mcp) es un adaptador de protocolo que llama a la API REST existente de Driftless. Nunca accede a Postgres ni a librerías internas directamente.

Manejo de datos

DatoAlmacenamientoCifrado
Contenido de topicsPostgresEn reposo (Supabase)
API keysPostgres (hasheado)Hasheado + cifrado
Tokens de GitHubPostgresAES-256-GCM
Tokens OAuthPostgres (hasheado)Hasheado + cifrado
Código fuenteNunca se almacenaN/A
Driftless nunca almacena tu código fuente. Solo se almacenan metadatos estructurales de los anclajes de topics (patrones de archivos) y las listas de archivos de los PRs.

Permisos de la GitHub App

La GitHub App solicita los permisos mínimos requeridos:
PermisoPor qué
Contents (read)Obtiene la lista de archivos cambiados por commit
Pull requests (read & write)Publica y actualiza comentarios de contexto
Issues (read & write)Los comentarios de PR usan la API de Issues
Metadata (read)Requerido por GitHub para todas las apps
La app nunca clona repositorios y nunca lee el contenido de los archivos fuente.

Red

  • Todo el tráfico entre la CLI, el dashboard y la API es HTTPS
  • Las API keys se envían en cabeceras x-api-key, nunca en parámetros de URL
  • Las cargas de webhooks se verifican con firmas HMAC
  • La API corre en Render con variables de entorno cifradas

Reportes

Si descubres un problema de seguridad, por favor repórtalo a security@driftless.icu. No abras un issue público.