.env.sample from the repository root to .env and fill in the values before starting any service.
API Gateway
string
required
Host address the API Gateway binds to. Default:
0.0.0.0.number
required
Port the API Gateway HTTP server listens on. Default:
5000.string
required
Protocol used for API Gateway URLs in Swagger server list. Example:
http.string
Secure protocol variant. Example:
https.string
Host and port used when building Swagger server URLs. Example:
localhost:5000.number
Port component for
API_ENDPOINT. Example: 5000.URL
WebSocket host URL. Example:
http://localhost:5000.string
Comma-separated list of origins allowed by CORS. Leave empty to disable CORS restrictions. Example:
https://app.example.com,https://dashboard.example.com.boolean
When
true, hides OID4VC, OID4VP, and x509 controller routes from the OpenAPI documentation. Default: true.URL
Localhost API URL added as a Swagger server entry.
URL
Development environment API URL added as a Swagger server entry.
URL
QA environment API URL added as a Swagger server entry.
URL
Production environment API URL added as a Swagger server entry.
URL
Sandbox environment API URL added as a Swagger server entry.
string
Application-level protocol identifier used in SSO redirect flows.
string
Runtime mode. Example:
DEV.Platform identity
string
required
Display name of the platform. Used as the Swagger API title. Example:
CREDEBL.URL
URL of the platform logo image shown in emails and the web UI.
URL
Public URL of the platform web application.
URL
Base URL for the platform API. Example:
https://devapi.credebl.id.string
Support email address displayed to users.
string
Organization name shown in “powered by” attribution.
URL
URL linked to the “powered by” attribution.
URL
Domain used to construct public URLs for uploaded logo files.
URL
URL of the front-end application. Example:
http://localhost:3000.URL
Domain of the S3 bucket that stores shortened URL objects. Example:
https://bucket-name.s3.ap-east-1.amazonaws.com.URL
Domain used to generate deep-links. The platform appends
url as a query parameter. Example: https://your-deeplink-domain?url=.string
required
Email address of the platform administrator account.
string
Deployment environment label. Example:
production.number
Maximum number of out-of-band invitations dispatched in a single batch. Default:
10.number
Maximum concurrent proof-request connections. Default:
10.Database
string
required
Full Prisma-compatible PostgreSQL connection string. Example:
postgresql://postgres:password@localhost:5432/postgres?schema=public.string
Pooled connection string (e.g., via Supabase PgBouncer). Used when connection pooling is required.
string
required
PostgreSQL host. Example:
0.0.0.0.number
required
PostgreSQL port. Default:
5432.string
required
PostgreSQL username. Default:
postgres.string
required
PostgreSQL password.
string
required
Name of the PostgreSQL database.
boolean
When
true, enables email alerts when the ledger_id column in org_agents is set to null. Requires the utility microservice.string
Comma-separated list of email addresses that receive database alerts.
string
Comma-separated Prisma log types. Example:
error,warn. Adding query produces verbose logging for every SQL statement.NATS messaging
string
required
NATS server URL(s). Multiple servers can be provided as comma-separated values. Example:
nats://0.0.0.0:4222.string
required
NATS server hostname. Example:
0.0.0.0.number
required
NATS server port. Default:
4222.string
required
Authentication method for NATS connections. One of:
nkey, creds, usernamePassword, none. Default: nkey.string
NATS username. Required when
NATS_AUTH_TYPE=usernamePassword.string
NATS password. Required when
NATS_AUTH_TYPE=usernamePassword.
string
Absolute path to a NATS credentials file. Required when
NATS_AUTH_TYPE=creds. Example: /platform/app_user.creds.string
Auth type override for the notification service NATS connection. Accepts the same values as
NATS_AUTH_TYPE.boolean
Enables the NATS-based notification pathway. Default:
false.Per-service NKEY seeds
Each microservice authenticates to NATS using its own NKey seed. Required whenNATS_AUTH_TYPE=nkey.
string
NKey seed for the
api-gateway service.string
NKey seed for the
user service.string
NKey seed for the
organization service.string
NKey seed for the
agent-provisioning service.string
NKey seed for the
agent-service service.string
NKey seed for the
verification service.string
NKey seed for the
issuance service.string
NKey seed for the
connection service.string
NKey seed for the
ecosystem service.string
NKey seed for the
credential-definition service.string
NKey seed for the
schema service.string
NKey seed for the
utilities service.string
NKey seed for the
geo-location service.string
NKey seed for the
x509 service.string
NKey seed for the
oid4vc-issuance service.string
NKey seed for the
oid4vc-verification service.JetStream / streaming
string
Name of the JetStream aggregate stream. Default:
aggregate.string
Name of the JetStream DID notification stream. Default:
did-notify.string
Name of the JetStream pull consumer. Default:
hub-pull-consumer.number
Acknowledgement wait time in nanoseconds. Default:
10_000.number
Maximum delivery attempts before a message is considered dead. Default:
4.Redis
string
required
Redis server host. Example:
0.0.0.0.number
required
Redis server port. Default:
6379.number
Time-to-live in milliseconds for the file-upload cache stored in Redis.
number
Maximum number of concurrent sessions a user can hold.
number
Maximum file upload size in bytes. Default:
10485760 (10 MB).Authentication
Supabase
URL
required
URL of your Supabase project. Example:
https://xyzcompany.supabase.co.string
required
Supabase anonymous (public) API key.
string
required
JWT secret from your Supabase project settings. Used to verify tokens server-side.
Keycloak
URL
required
Base URL of the Keycloak server. Example:
http://localhost:8080/.URL
required
Keycloak admin console URL. Example:
http://localhost:8080.string
required
Name of the Keycloak master realm.
string
required
Client ID of the management client in Keycloak.
string
required
Secret of the management client.
string
required
Keycloak realm used by the platform. Example:
credebl-platform.string
required
Client ID of the Keycloak client created for the platform admin console. Example:
adminClient.string
required
Secret of the platform admin Keycloak client.
string
Previous client ID — used when migrating users after a Keycloak client rename.
SSO clients
To support multiple SSO clients, add a set of four variables for each client and append its name to
SUPPORTED_SSO_CLIENTS. The variable names follow the pattern {CLIENT-NAME}_CLIENT_ALIAS, {CLIENT-NAME}_DOMAIN, {CLIENT-NAME}_KEYCLOAK_MANAGEMENT_CLIENT_ID, and {CLIENT-NAME}_KEYCLOAK_MANAGEMENT_CLIENT_SECRET.string
Comma-separated list of enabled SSO client names. Example:
CREDEBL,VERIFIER.string
Alias token that identifies the default CREDEBL SSO client. Example:
CREDEBL.URL
Redirect URL for the default CREDEBL client after login. Example:
http://localhost:3000.string
Encrypted Keycloak management client ID for the CREDEBL SSO client. Encrypt using
CRYPTO_PRIVATE_KEY.string
Encrypted Keycloak management client secret for the CREDEBL SSO client.
Crypto
string
required
Private key used to encrypt/decrypt sensitive configuration values (e.g., Keycloak client secrets). Must match the key used in the Studio UI.
FIDO / WebAuthn
URL
Host and port of the FIDO (WebAuthn) server. Example:
http://localhost:8000.AWS / storage
General AWS credentials
string
AWS access key ID for the public assets bucket.
string
AWS secret access key for the public assets bucket.
string
AWS region for the public assets bucket. Example:
ap-south-1.string
Name of the S3 bucket used for public assets.
string
Name of the S3 bucket used for organization logos.
string
General AWS access key ID.
string
General AWS secret access key.
string
General AWS region. Example:
us-east-1.string
General S3 bucket name.
string
AWS account ID.
string
ARN of the S3 bucket. Example:
arn:aws:s3:::bucket-name.S3 object store (dedicated credentials)
string
AWS access key ID for the object-store S3 bucket.
string
AWS secret access key for the object-store S3 bucket.
string
AWS region for the object-store S3 bucket.
string
Name of the S3 bucket used for stored objects.
ECS (agent provisioning)
string
ECS cluster name for Credo controller agents. Example:
CREDO-CONTROLLER-CLUSTER.string
ECS task definition family name. Example:
CREDO-CONTROLLER-TASKDEFINITION.string
Security group ID for ECS tasks.
string
Subnet ID for ECS tasks.
string
EFS filesystem ID used by ECS tasks.
string
ARN of the inbound target group for agent load balancing.
string
ARN of the admin target group for agent load balancing.
string
required
Active email provider. One of:
resend, sendgrid, ses, smtp.string
API key for the Resend email service. Required when
EMAIL_PROVIDER=resend. Example: re_xxxxxxxxxx.
string
API key for SendGrid. Required when
EMAIL_PROVIDER=sendgrid. Example: SG.xxxxxxx.
string
AWS region for SES. Required when
EMAIL_PROVIDER=ses. Example: ap-south-1.string
AWS access key ID for SES.
string
AWS secret access key for SES.
string
SMTP server hostname. Required when
EMAIL_PROVIDER=smtp. Example: smtp.gmail.com.number
SMTP server port. Example:
587.string
SMTP username / sender address.
string
SMTP password.
Agent
string
SSH-style address of the agent host VM. Example:
username@0.0.0.0.string
Protocol for agent communication. Example:
http.string
required
API key for the base agent wallet. Must be at least 16 characters. Example:
supersecret-that-too-16chars.
string
Docker image tag for the AFJ (Aries Framework JavaScript) agent. Example:
afj-0.4.1:latest.string
Absolute path to the agent startup shell script. Example:
/apps/agent-provisioning/AFJ/scripts/start_agent.sh.string
Directory path for agent endpoint configuration files. Example:
/apps/agent-provisioning/AFJ/endpoints/.string
Host (IP address) of the PostgreSQL database used for agent wallet storage.
number
Port of the wallet storage database. Default:
5432.string
Username for the wallet storage database. Default:
postgres.string
Password for the wallet storage database.
string
Name of the platform administrator wallet. Default:
platform-admin.string
Encrypted password for the platform wallet. Encrypt with
crypto-js using CRYPTO_PRIVATE_KEY.
string
32-character seed used when creating the platform DID.
string
Unique identifier for this platform instance.
string
URL of the file server used to host tails files and other agent assets.
number
Port of the file server. Default:
8081.string
Username for file server SSH access. Default:
credebl.string
Hostname or IP of the file server. Example:
0.0.0.0.URL
URL of the schema file server (used for Polygon-based W3C schemas).
string
Authentication token for the schema file server.
string
Protocol used by agent endpoint URLs. Example:
http.Observability
ELK Stack
boolean
Enables ELK-based structured logging. Example:
true.boolean
Enables console output of ELK-format logs. Example:
true.string
Log verbosity level. Example:
debug.URL
Elasticsearch endpoint for log ingestion. Example:
http://localhost:9200/.string
Elasticsearch username. Example:
elastic.string
Elasticsearch password.
string
Organization label attached to log entries. Example:
credebl.string
Context label attached to log entries. Example:
platform.string
Application label attached to log entries. Example:
api.string
Hostname or unique identifier for this service instance. Example:
localhost.OpenTelemetry
boolean
Enables the OpenTelemetry SDK. Default:
false.string
Logical service name shown in observability tools such as SigNoz. Example:
CREDEBL-PLATFORM-SERVICE.string
Service version reported to the OTel collector. Example:
1.0.0.URL
OTLP/HTTP endpoint for trace export. Example:
http://localhost:4318/v1/traces.URL
OTLP/HTTP endpoint for log export. Example:
http://localhost:4318/v1/logs.string
API key or token used to authenticate with the OTel collector.
string
Name of the OpenTelemetry logger. Example:
credebl-platform-logger.