Skip to content

Endpoint OpenAI-compat BYOK + auth obligatoria en /v1/* - #10

Merged
santiquiroz merged 1 commit into
masterfrom
feature/openai-compat-byok
Aug 19, 2026
Merged

Endpoint OpenAI-compat BYOK + auth obligatoria en /v1/*#10
santiquiroz merged 1 commit into
masterfrom
feature/openai-compat-byok

Conversation

@santiquiroz

Copy link
Copy Markdown
Owner

Resumen

  • POST /v1/chat/completions: superficie OpenAI-compatible sobre el provider activo — agrega bipolar-code como proveedor BYOK en VS Code Copilot Chat, Cursor, Cline, Continue (URL + API key).
  • Fix de seguridad: /v1/* era público — cualquiera en la LAN podía usar /v1/messages sin key. Ahora exige ui_api_key (o proxy_api_key legado solo en /v1 para clientes ya configurados). El routing de Claude Code escribe ahora el ui_api_key fuerte.

Test plan

  • Suite backend: 101 passed (6 nuevos openai_compat + 4 auth actualizados a la propiedad nueva)
  • Smoke BYOK real desde Copilot Chat ("Manage models" → OpenAI compatible)

🤖 Generated with Claude Code

…cación en /v1/*

Dominio:
- proxy_service: el routing de Claude Code ahora escribe ui_api_key como ANTHROPIC_API_KEY (antes proxy_api_key débil por defecto).

Aplicación:
- Nuevo api/openai_compat.py: POST /v1/chat/completions — reenvía al provider activo (directo a OpenAI-compat con model reescrito; vía litellm para Anthropic), streaming SSE verbatim, errores upstream relayed, registro de usage cuando el response lo trae.
- main.py: registro del router.

Infraestructura:
- middleware/auth.py: /v1/* deja de ser público — exige ui_api_key (o proxy_api_key legado, solo en /v1, para clientes ya configurados). Cierra acceso anónimo desde LAN a /v1/messages.
- CLAUDE.md: documentación del endpoint BYOK y la regla de auth.

Pruebas:
- test_openai_compat.py: 6 tests (resolve_target por tipo de provider, extra headers, auth requerida, reescritura de model, relay de errores).
- test_auth_middleware.py: actualizados a la propiedad nueva (401 sin key en /v1, ui key OK, proxy key solo /v1, /api no acepta proxy key).

Cobertura global del proyecto: suite backend 101 passed.
@santiquiroz
santiquiroz merged commit 075d444 into master Aug 19, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant