
Gateway API on-premise per agenti di codifica AI con attribuzione dei costi per ingegnere, budget rigidi, governance dell'egresso (scansione di segreti/entità), osservabilità context-rot ed esportazioni pronte per audit. Viene eseguito all'interno della tua VPC.
Il control plane on-prem per agenti di codifica AI. Attribuzione dei costi per ingegnere · budget rigidi · governance dell'egresso · osservabilità del context-rot · esportazioni pronte per audit — tutto all'interno della tua VPC.
Conduit si posiziona tra i tuoi agenti di codifica AI (Claude Code, Cursor, Codex, Aider) e qualsiasi provider tu stia già utilizzando (Anthropic, OpenAI, Bedrock, Azure — o la tua implementazione LiteLLM / Portkey esistente). Una sola variabile d'ambiente da adottare, zero modifiche al client, prompt e completamenti mai memorizzati.
[Claude Code / Cursor / Codex]
│ ANTHROPIC_BASE_URL=https://conduit.yourco.dev
▼
[Conduit] vk_live_… (per-engineer)
│ metering · budgets · governance · audit · context-rot
▼
[LiteLLM / Portkey / direct providers]
│
▼
[Anthropic / OpenAI / Bedrock / Azure]
Panoramica — spesa, risparmi dalla cache, token, richieste bloccate e flag di governance a colpo d'occhio.

Applicazione del budget rigido — superato il limite, viene restituito un 402 al gateway, prima che la richiesta raggiunga il provider.

Governance dell'egresso — una richiesta che trasporta una chiave AWS viene bloccata con un 451; viene registrata solo la categoria, mai il valore.

Attività — ogni richiesta con uno stato distinto: successo · cache hit · limitato dalla velocità · modello bloccato · budget superato · governance bloccata.

Impostazioni — CRUD completo per organizzazione, credenziali del provider, team, budget e chiavi virtuali.

Gli endpoint privati di Bedrock / Vertex / Azure e i BAA senza training risolvono il canale verso il fornitore. Non dicono alla finanza chi ha speso i $40k, non intercettano i segreti in uscita, non forniscono una registrazione per gli auditor e non mostrano dove il context-rot sta consumando il tuo budget di token. Questa è la lacuna che Conduit colma — senza mai vedere i tuoi prompt.
Recupera le ultime immagini firmate da GHCR (verificabili tramite cosign verify, vedere Postura di sicurezza).
# 1. Ottieni il file compose + il template .env (nessuna clonazione completa necessaria)
curl -fsSL https://raw.githubusercontent.com/anee769/conduit/master/docker-compose.yml -o docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/anee769/conduit/master/.env.example -o .env
# 2. Genera una vera chiave di crittografia master
sed -i.bak "s|^MASTER_ENCRYPTION_KEY=.*|MASTER_ENCRYPTION_KEY=$(openssl rand -base64 32)|" .env && rm .env.bak
# 3. Recupera le immagini firmate + avvia
docker compose --profile app pull
docker compose --profile app up -d
# 4. Esegui le migrazioni + carica il libro dei prezzi (una tantum)
docker exec conduit-gateway-1 pnpm --filter @finops/db db:migrate
docker exec conduit-gateway-1 pnpm --filter @finops/db seed-pricing
# → apri http://localhost:3000/setup → crea org / credenziale / team / chiave virtuale
Fissare una release specifica esportando GATEWAY_IMAGE e CONTROL_PLANE_IMAGE prima di up:
export GATEWAY_IMAGE=ghcr.io/anee769/conduit-gateway:v0.1.0
export CONTROL_PLANE_IMAGE=ghcr.io/anee769/conduit-control-plane:v0.1.0
git clone https://github.com/anee769/conduit && cd conduit
cp .env.example .env
sed -i.bak "s|^MASTER_ENCRYPTION_KEY=.*|MASTER_ENCRYPTION_KEY=$(openssl rand -base64 32)|" .env && rm .env.bak
docker compose --profile app up -d --build
docker exec conduit-gateway-1 pnpm --filter @finops/db db:migrate
docker exec conduit-gateway-1 pnpm --filter @finops/db seed-pricing
export ANTHROPIC_BASE_URL=http://localhost:4000
export ANTHROPIC_AUTH_TOKEN=vk_live_… # chiave virtuale da /setup
claude # oppure cursor / codex / aider
Guida completa da zero in INSTALL.md.
LiteLLM è eccellente per alias e routing dei modelli — Conduit aggiunge il livello richiesto dai tuoi team di sicurezza e finanza. Portkey è la sovrapposizione di funzionalità più vicina, ma è enterprise closed-source una volta che hai bisogno di governance + on-prem. Helicone è solo osservabilità (ti dice dove sono finiti i token; non controlla dove vanno).
SECURITY.md per la postura completa./invoke funziona.Conduit viene eseguito interamente nel tuo cloud — nessun fornitore nel percorso della richiesta, nessun phone-home, air-gappable. Vedi SECURITY.md per il white paper (diagramma del flusso dati, cosa viene memorizzato, crittografia, autenticazione a chiusura, postura di conformità, modello delle minacce).
ghcr.io/anee769/conduit-gateway e ghcr.io/anee769/conduit-control-plane ad ogni tag git v* (vedi .github/workflows/release.yml). Verifica qualsiasi tag rilasciato:
cosign verify ghcr.io/anee769/conduit-gateway:<tag> \
--certificate-identity-regexp 'https://github.com/anee769/conduit' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
bash scripts/sbom.sh.apps/gateway — Hono su Node, il data plane a caldo. Nessun passaggio di build (tsx). Client ClickHouse a zero dipendenze + ioredis.apps/control-plane — Dashboard Next.js 15 / React 19 + API admin + procedura guidata /setup al primo avvio.packages/db — Schema Drizzle, crittografia AES-256-GCM, hashing delle chiavi, prezzi + budget.usage_events solo append) + Redis (cache + limiti di velocità + contatori di budget in tempo reale).Ciclo di vita della richiesta (apps/gateway/src/routes/proxy.ts):
auth (vk) → rate limit → model allow-list → budget check
→ governance scan (T1 secrets + T2-lite entities)
→ cache lookup → resolve credential → adapter.prepare()
→ forward + tee stream (client untouched; meter branch in background)
bash scripts/run-tests.sh # full unit + live-system suite (72 tests)
bash scripts/run-tests.sh --unit-only # pure logic, no Docker stack needed
pwsh scripts/run-tests.ps1 # Windows equivalent
La CI (.github/workflows/ci.yml) esegue entrambi i job su ogni PR — unisci solo quando è verde.
PR benvenuti. Percorso rapido:
git checkout -b feat/my-change
# …
bash scripts/ci-local.sh # runs the same checks CI runs
bash scripts/ci-local.sh --fast # typecheck + unit only, no Docker
git push -u origin feat/my-change
gh pr create --base dev
Flusso dei branch: feature → dev → master. La CI deve passare prima dell'unione.
Licenza Apache 2.0 — stessa licenza di Kubernetes, Terraform, Kafka. Usala commercialmente, modificala, rivendila; per favore non pretendere che Conduit sia opera tua.
SECURITY.mddocs/run-with-litellm.mdINSTALL.md| Cosa utilizzi oggi | Configura l'upstream di Conduit come |
|---|
| LiteLLM (qualsiasi modello, qualsiasi provider) | UPSTREAM_ANTHROPIC_URL=http://litellm:4000 → guida completa: docs/run-with-litellm.md |
| Portkey | Punta UPSTREAM_OPENAI_URL / UPSTREAM_ANTHROPIC_URL al tuo URL base di Portkey |
| Anthropic / OpenAI diretti | Predefinito — nulla da configurare |
| AWS Bedrock | Configura una credenziale Bedrock in /setup; Conduit firma le richieste con SigV4 |
| Azure OpenAI | Configura una credenziale Azure (nome deployment + api-version) in /setup |
| Conduit | LiteLLM | Portkey | Helicone |
|---|
| Licenza open-source | Apache 2.0 | MIT | Apache 2.0 (gateway) | MIT |
| Funziona interamente on-prem / nella tua VPC | ✅ | ✅ | ✅ (enterprise) | ✅ (self-host) |
| Routing, alias e fallback dei provider | ✅ (qualsiasi upstream) | ✅ | ✅ | ❌ |
| Attribuzione dei costi per ingegnere (chiavi virtuali con nomi) | ✅ | parziale (fatture condivise con chiave master) | ✅ | ✅ (solo osservazione) |
| Budget rigidi (402 a chiusura) | ✅ | parziale | ✅ | ❌ |
| Governance dell'egresso (segreti + lista di entità consentite per organizzazione, avviso→blocco) | ✅ | ❌ | ✅ (guardrails) | ❌ |
| Esportazione CSV/JSON pronta per audit (solo metadati) | ✅ | ❌ | parziale | ✅ |
| Osservabilità del context-rot (curva costo-e-tasso-di-errore per dimensione dei token di input) | ✅ | ❌ | ❌ | ❌ |
| Prompt / completamenti mai memorizzati | ✅ | log per impostazione predefinita | configurabile | log per impostazione predefinita |
| Release firmate + CycloneDX SBOM | ✅ | ❌ | ❌ | ❌ |
| Progettato per posizionarsi sopra ad altri | ✅ | n/a | n/a | n/a |