Autenticación de Fluos API

Sesiones de Clerk para el panel de control, OAuth de Clerk para la API de vídeo de pago y MCP, y firmas del proveedor para los webhooks entrantes.

Fluos tiene tres historias de autenticación: sesiones de navegador para el producto, OAuth de Clerk para la API de vídeo de pago / MCP, y firmas del proveedor para los webhooks entrantes.

Sesiones del producto (Clerk)

El inicio de sesión se gestiona con Clerk. Fluos nunca almacena una contraseña. Los usuarios inician sesión con Google, Apple o un código de correo electrónico único. Consulta Empezar.

Las rutas del producto autenticadas (/dashboard, /admin y la mayoría de los manejadores /api/*) esperan una cookie de sesión de Clerk. Las llamadas API no autenticadas reciben:

{ "error": "Unauthorized", "code": "unauthorized" }

API de vídeo de pago y MCP (Clerk OAuth)

Los agentes de codificación se conectan a /api/v1/mcp/app y a la familia /api/v1/videos con un token de acceso Clerk OAuth Bearer. Descubrimiento:

  • /.well-known/oauth-protected-resource/mcp
  • /.well-known/oauth-authorization-server

Alcances: profile, email. Los hosts MCP deben usar el ID de cliente público de Clerk OAuth de Fluos vZg47Po1X1v3rHtU (sin secreto). Las llamadas no autenticadas devuelven 401 junto con WWW-Authenticate. Los planes gratuitos reciben 402 / PLAN_REQUIRED.

La CLI lee el mismo token desde FLUOS_API_TOKEN después de npx fluos login.

/api/v1/* no está protegido por cookies mediante middleware, por lo que los clientes OAuth pueden completar el descubrimiento. Las rutas de vídeo autentican dentro del manejador.

Puntos finales públicos

Estos no requieren una sesión:

  • /openapi.json, /api/v1/openapi.json, /llms.txt, /llms-full.txt, /ai.txt
  • /sitemap.xml, /robots.txt, /feed.xml
  • /docs, /docs/developers, /cli, /mcp, páginas de marketing
  • GET /api/v1/search y GET /api/search
  • GET/POST /api/v1/mcp (solo docs MCP)
  • Negociación de contenido en páginas públicas (Accept: text/markdown o application/json)

Firmas de webhooks

Los webhooks entrantes se autentican mediante el proveedor, no por Clerk:

EndpointHeaderSecret
POST /api/webhooks/clerksvix-id, svix-timestamp, svix-signatureCLERK_WEBHOOK_SIGNING_SECRET
POST /api/stripe/webhookstripe-signatureSTRIPE_WEBHOOK_SECRET
POST /api/webhooks/resendsvix-id, svix-timestamp, svix-signatureRESEND_WEBHOOK_SECRET

Las firmas inválidas devuelven 400. Estos endpoints no son una API de escritura general: solo el proveedor correspondiente puede generar una firma válida. Detalles: Fluos webhooks.

Conectores de espacio de trabajo

Las conexiones con Figma, Notion, Google Drive, Slack y Linear usan OAuth gestionado por Composio desde Habilidades → Conectores dentro de un espacio de trabajo de Fluos. Los tokens se quedan con Composio. Ese flujo es iniciado por el usuario en el producto.

La documentación pública docs MCP en /api/v1/mcp es una superficie de descubrimiento separada y no autenticada. La creación de vídeos utiliza el Vídeo MCP de pago en /api/v1/mcp/app. Consulta OAuth y acceso.