Skip to main content

Two credential types

Why two credentials?

Your API key is sent with every event your application ingests — it lives in your production services and travels over the network constantly. If it is ever leaked, an attacker can only ingest events into that one app. They cannot read your stored data, modify schemas, delete apps, or access anything else. Your client secret has full account access. It belongs only in server-side configuration, CI/CD secret stores, or the Vela CLI. Never put a client secret in frontend JavaScript, mobile apps, or public repositories.

Client secret

Used with the Management Client to authenticate account-level operations.
Generate client secrets from Settings → Client Secrets in the dashboard. You can have multiple active secrets simultaneously — useful for zero-downtime rotation.

API key

Used with the Ingest Client to send events. Scoped to a single app.

Best practices

Store credentials in environment variables or your platform’s secret store.
Use .env.sample with empty placeholder values for documentation.
Create a separate Vela app per environment. A leaked staging key then has zero impact on production.
  • API key — rotate from app settings. Old key revoked instantly.
  • Client secret — generate a new one first, update services, then revoke the old one.
Client secrets grant full account access. They must never appear in browser JavaScript, mobile app bundles, Docker images pushed to public registries, or application logs.
Credentials are shown in full only at creation time. If you lose one, revoke it and generate a new one — Vela stores only a hashed version internally.

Next steps

Client Secrets

Generate, use, and revoke client secrets.

API Keys

How API keys are created and rotated.