This repository is an npm workspaces monorepo with:
apps/web— Next.js frontendapps/backend— Supabase CLI project for local database + migrations
npm installnpm run dev:webOr use the default dev script:
npm run devStart local Supabase services:
npm run dev:backendUseful backend scripts:
npm run supabase:status -w @connorvault/backend
npm run supabase:stop -w @connorvault/backend
npm run supabase:db:reset -w @connorvault/backendapps/
web/
app/
public/
package.json
backend/
supabase/
package.json
Connor Keys (cv_key_...) are internal proxy keys. They do not work directly against provider APIs.
Point your side project SDK to ConnorVault's proxy endpoint:
OPENAI_API_KEY=cv_key_your_full_secret
CONNORVAULT_BASE_URL=http://localhost:3000/api/proxy/openaiimport OpenAI from "openai"
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: process.env.CONNORVAULT_BASE_URL,
})ConnorVault forwards requests from:
/api/proxy/:provider/*
to the provider's configured base_url with the provider's real API key attached.
-
In ConnorVault UI, create a Connor Key for
openaiand copy the full key shown in the success step. -
Call the proxy directly:
curl -i http://localhost:3000/api/proxy/openai/models \
-H "Authorization: Bearer cv_key_your_full_secret"Expected result: HTTP 200 with provider JSON from OpenAI (or provider-level auth/model errors if your upstream key/provider setup is invalid).
- Verify SDK wiring from a side project:
OPENAI_API_KEY=cv_key_your_full_secret
CONNORVAULT_BASE_URL=http://localhost:3000/api/proxy/openaiimport OpenAI from "openai"
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: process.env.CONNORVAULT_BASE_URL,
})
const models = await client.models.list()
console.log(models.data.length)If you get 403 Invalid Connor key, generate a fresh key and ensure you pasted the full cv_key_... value (not just the prefix shown on cards).