Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
106 lines (91 loc) · 4.36 KB
/
Copy path.env.example
File metadata and controls
106 lines (91 loc) · 4.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
APP_PORT=8080
CCF_DB_DRIVER="postgres"
CCF_DB_CONNECTION="host=db user=postgres password=postgres dbname=ccf port=5432 sslmode=disable"
CCF_JWT_SECRET="some-secret"
CCF_JWT_PRIVATE_KEY=private.pem
CCF_JWT_PUBLIC_KEY=public.pem
# To use in-memory key generation, remove/comment out both CCF_JWT_PRIVATE_KEY and CCF_JWT_PUBLIC_KEY lines.
# Do not set these variables to empty strings.
CCF_API_ALLOWED_ORIGINS="http://localhost:3000,http://localhost:8000"
CCF_RISK_CONFIG="risk.yaml"
CCF_SLACK_ENABLED=false
# Slack token generated from https://api.slack.com/apps, with "chat:write" scope.
CCF_SLACK_TOKEN="xxxx"
# DEPRECATED:
# Legacy one-time migration source for the initial Slack digest destination row in ccf_system_notification_destinations.
CCF_SLACK_DIGEST_CHANNEL="my_slack_channel"
# Slack OAuth account-linking config.
CCF_SLACK_CLIENT_ID=""
CCF_SLACK_CLIENT_SECRET=""
# Redirect URL must match Slack app configuration exactly. Must be running on HTTPS due to Slack requirements.
CCF_SLACK_REDIRECT_URL="https://localhost:8443/api/auth/slack/link/callback"
CCF_ENVIRONMENT="" # Defaults to production.
## This configuration disables cookie setting to allow testing on Safari
## It is insecure so use it with caution
#CCF_ENVIRONMENT="local"
# AI configuration (disabled by default)
CCF_AI_ENABLED=false
CCF_AI_PROVIDER="anthropic"
CCF_AI_API_KEY=""
CCF_AI_MODEL="claude-opus-4-8"
CCF_AI_BASE_URL=""
CCF_AI_REQUEST_TIMEOUT="120s"
CCF_AI_MAX_CONTROLS_PER_CHUNK=40
CCF_AI_MAX_LABEL_SETS_PER_CHUNK=200
CCF_AI_QUEUE_WORKERS=4
CCF_AI_MAX_CALLS_PER_RUN=0
CCF_AI_MAX_SUGGESTIONS_PER_RUN=500
# Pprof debugging (disabled by default)
# Enable this for profiling during load tests
CCF_PPROF_ENABLED=false
CCF_PPROF_PORT=6060
# Rego playback: POST /api/playback/evaluate (enabled by default, see docs/playback.md)
CCF_PLAYBACK_ENABLED=true
CCF_PLAYBACK_TIMEOUT="5s"
CCF_PLAYBACK_MAX_BYTES=2097152
CCF_PLAYBACK_MAX_CONCURRENT=4
# Agent remote configuration: instance freshness, retention, pruning (River job; needs
# CCF_WORKER_ENABLED) and the per-agent instance cap.
CCF_AGENT_INSTANCE_STALE_AFTER="10m"
CCF_AGENT_INSTANCE_RETENTION="720h"
CCF_AGENT_INSTANCE_ONESHOT_RETENTION="24h"
CCF_AGENT_INSTANCE_PRUNE_ENABLED=true
# The prune job is deduplicated per hour: it runs at most hourly, whatever the schedule.
CCF_AGENT_INSTANCE_PRUNE_SCHEDULE="0 17 * * * *"
# Cap on non-prunable instances per agent. When full, a new instance replaces the oldest
# stale one (not seen within CCF_AGENT_INSTANCE_STALE_AFTER); 409 only when all are fresh.
CCF_AGENT_MAX_INSTANCES=500
# Policy evaluation artifacts: POST /api/agent/artifacts (see docs/artifacts.md)
CCF_ARTIFACT_MAX_BYTES=16777216
CCF_ARTIFACT_MAX_CONCURRENT=8
# Evidence subjects
# Agent evidence whose labels match no component subject template: off (accept), warn (accept
# and log) or enforce (reject with 400).
CCF_EVIDENCE_REQUIRE_SUBJECT=off
# Require evidence submitted by a user to name a subject (subjects[].subject-uuid).
CCF_MANUAL_EVIDENCE_REQUIRE_SUBJECT=false
# Asynchronous batch evidence ingest (POST /api/evidence/batches; needs the worker service)
# Most evidence one batch may hold.
CCF_EVIDENCE_BATCH_MAX_ITEMS=1000
# Evidence processed per background job.
CCF_EVIDENCE_BATCH_CHUNK_SIZE=100
# Background jobs processing batch evidence at once.
CCF_EVIDENCE_BATCH_WORKERS=4
# How long batches and their item outcomes are kept after they were accepted.
CCF_EVIDENCE_BATCH_RETENTION=168h
# River (6-field) cron of the batch prune job; it runs at most hourly.
CCF_EVIDENCE_BATCH_PRUNE_SCHEDULE="0 47 * * * *"
# River (6-field) cron of the job that creates the missing automatic per-policy filters of
# every SSP with automatic filters on; it runs at most hourly.
CCF_SSP_SCOPE_AUTO_FILTERS_SCHEDULE="0 23 * * * *"
# River (6-field) cron of SSP template discovery, which creates one SSP per distinct key
# value in the latest evidence and learns their scopes; it runs at most hourly.
CCF_SSP_TEMPLATE_DISCOVERY_SCHEDULE="0 37 * * * *"
# An SSP a template created is reported as stale after this long without evidence for its
# key values (a Go duration). Nothing is deleted.
CCF_SSP_TEMPLATE_STALE_AFTER=168h
# Compliance Map (/api/lineage): built datasets are shared across users and reused for the
# TTL; ?refresh=true rebuilds one. 0 disables the cache.
CCF_LINEAGE_CACHE_TTL=5m
# Most cached scopes (SSP x component); the oldest is evicted first.
CCF_LINEAGE_CACHE_MAX_ENTRIES=8