Endpoint Project API

Riferimento completo per gli endpoint REST API di gestione progetto, inclusi impostazioni, membri, chiavi dei provider, chiavi API e contatori.

12 min letto
apiprojectsettings

La Project API offre la gestione completa del tuo progetto CodeCourier - metadati, impostazioni, membri del team, chiavi dei provider, chiavi API e contatori di utilizzo. Tutti gli endpoint richiedono una chiave API di progetto valida nell’header Authorization.

CRUD del progetto

GET /api/v1/project

Recupera i dettagli del progetto corrente, inclusi nome, slug, URL del repo GitHub e data di creazione.

curl -H "Authorization: Bearer cc_live_..." \
  https://<deployment>.convex.site/api/v1/project

Risposta:

{
  "data": {
    "id": "...",
    "_id": "...",
    "name": "My Project",
    "slug": "my-project",
    "githubRepoUrl": "https://github.com/org/repo",
    "_creationTime": 1700000000000
  }
}

POST /api/v1/project/update

Aggiorna i metadati del progetto. Tutti i campi del body sono opzionali - vengono aggiornati solo i campi forniti.

curl -X POST -H "Authorization: Bearer cc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name": "New Name", "slug": "new-slug", "githubRepoUrl": "https://github.com/org/new-repo"}' \
  https://<deployment>.convex.site/api/v1/project/update

Campi del body:

  • name (string, opzionale) - Nuovo nome del progetto
  • slug (string, opzionale) - Nuovo slug URL
  • githubRepoUrl (string, opzionale) - URL del repository

POST /api/v1/project/delete

Elimina il progetto. Questa è un’operazione distruttiva. Nessun body della richiesta richiesto.

Impostazioni del progetto

GET /api/v1/project/settings

Recupera tutte le impostazioni del progetto, inclusi i prompt di sistema, le variabili d’ambiente, la configurazione dei learning e l’identità dei commit git.

POST /api/v1/project/settings/update

Aggiorna le impostazioni del progetto. Tutti i campi del body sono opzionali.

curl -X POST -H "Authorization: Bearer cc_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "sandboxSystemPrompt": "You are a helpful coding assistant.",
    "claudeMd": "# Project Instructions\n...",
    "issueDiscoveryPrompt": "Analyze the codebase and identify issues.",
    "envVars": {"NODE_ENV": "production"},
    "gitCommitName": "CodeCourier Bot",
    "gitCommitEmail": "bot@example.com"
  }' \
  https://<deployment>.convex.site/api/v1/project/settings/update

Campi del body:

  • sandboxSystemPrompt - Prompt di sistema iniettato nelle sandbox
  • claudeMd - Contenuto CLAUDE.md per gli agenti sandbox
  • issueDiscoveryPrompt - Prompt predefinito per le sessioni di issue discovery
  • selectedSkills - Array di identificatori di skill
  • selectedCommands - Array di identificatori di command
  • selectedScripts - Array di identificatori di script
  • envVars - Variabili d’ambiente chiave-valore
  • deployEnvVars - Variabili d’ambiente specifiche del deploy
  • testUserCredentials - Oggetto con le credenziali utente di test
  • convexDeployKey - Chiave di deploy Convex
  • convexDevKey - Chiave di sviluppo Convex
  • learningTemplateId - Template per l’estrazione dei learning
  • learningModel - Modello usato per l’estrazione dei learning
  • mergingTemplateId - Template per le operazioni di merge
  • mergingModel - Modello usato per le operazioni di merge
  • gitCommitName - Nome autore git
  • gitCommitEmail - Email autore git

Membri del team

GET /api/v1/project/members

Elenca tutti i membri del team del progetto con i loro ruoli e stato.

POST /api/v1/project/members/invite

Invita un nuovo membro nel progetto.

{
  "email": "user@example.com",
  "role": "member"
}

Ruoli validi: "owner", "admin", "member".

POST /api/v1/project/members/remove

Rimuove un membro dal progetto.

{ "targetUserId": "..." }

POST /api/v1/project/members/update-role

Aggiorna il ruolo di un membro.

{ "targetUserId": "...", "role": "admin" }

Chiavi dei provider

Le chiavi dei provider sono credenziali per servizi esterni usati a runtime della sandbox (E2B, Anthropic, OpenRouter, OpenAI, GitHub).

GET /api/v1/project/provider-keys

Elenca tutte le chiavi dei provider. Restituisce solo il nome del provider e le ultime 4 cifre (le chiavi sono cifrate a riposo).

POST /api/v1/project/provider-keys/set

Imposta o aggiorna una chiave di provider.

{
  "provider": "anthropic",
  "key": "sk-ant-..."
}

POST /api/v1/project/provider-keys/remove

Rimuove una chiave di provider.

{ "provider": "anthropic" }

Chiavi API

GET /api/v1/project/api-keys

Elenca tutte le chiavi API del progetto mostrando prefisso, nome, data di creazione, data dell’ultimo utilizzo e stato di revoca.

POST /api/v1/project/api-keys/generate

Genera una nuova chiave API. Restituisce la chiave completa (mostrata una sola volta).

curl -X POST -H "Authorization: Bearer cc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name": "My New Key"}' \
  https://<deployment>.convex.site/api/v1/project/api-keys/generate

Risposta:

{
  "data": {
    "key": "cc_live_abc123def456...",
    "id": "..."
  }
}

POST /api/v1/project/api-keys/revoke

Revoca una chiave API. La revoca è immediata e permanente.

{ "keyId": "..." }

Contatori del progetto

GET /api/v1/project/counters

Recupera i conteggi aggregati del progetto (run totali, sandbox, workflow, ecc.). Utile per i riepiloghi di dashboard.