Skip to content

Commit 67dfbf2

Browse files
Document server environment config contract
1 parent 74844f8 commit 67dfbf2

7 files changed

Lines changed: 560 additions & 22 deletions

File tree

docs/polyglot/server-config-reference.md

Lines changed: 261 additions & 0 deletions
Large diffs are not rendered by default.

docs/polyglot/server.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ This starts:
6666

6767
## Configuration
6868

69-
The server uses environment variables for configuration. Key settings:
69+
The server uses environment variables for configuration. Key settings are
70+
summarized below; the full operator-facing `DW_*` contract is documented in
71+
the [server config reference](/docs/2.0/polyglot/server-config-reference).
7072

7173
### Database
7274

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"scripts": {
66
"docusaurus": "docusaurus",
77
"start": "docusaurus start",
8-
"build": "node scripts/check-reference-docs.js && node scripts/check-discoverability.js && docusaurus build && node scripts/generate-llms.js && node scripts/generate-llms-full.js && node scripts/check-llms-ai-surfaces.js",
8+
"build": "node scripts/check-reference-docs.js && node scripts/check-server-env-docs.js && node scripts/check-discoverability.js && docusaurus build && node scripts/generate-llms.js && node scripts/generate-llms-full.js && node scripts/check-llms-ai-surfaces.js",
99
"check:reference-docs": "node scripts/check-reference-docs.js",
1010
"check:discoverability": "node scripts/check-discoverability.js",
1111
"check:simulator-lines": "node scripts/check-simulator-lines.js",

scripts/check-server-env-docs.js

Lines changed: 66 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,27 @@ const fs = require('fs');
44
const path = require('path');
55

66
const repoRoot = path.resolve(__dirname, '..');
7-
const serverRepoCandidates = [
8-
process.env.SERVER_REPO_PATH,
9-
path.resolve(repoRoot, '..', 'server'),
10-
].filter(Boolean);
11-
const serverRepo = serverRepoCandidates.find((candidate) => (
7+
const snapshotPath = path.join(__dirname, 'server-env-contract.json');
8+
const snapshot = JSON.parse(fs.readFileSync(snapshotPath, 'utf8'));
9+
const explicitServerRepo = Boolean(process.env.SERVER_REPO_PATH);
10+
const serverRepoCandidates = explicitServerRepo
11+
? [process.env.SERVER_REPO_PATH]
12+
: [path.resolve(repoRoot, '..', 'server')];
13+
const serverRepo = serverRepoCandidates.filter(Boolean).find((candidate) => (
1214
fs.existsSync(path.join(candidate, 'config', 'dw-contract.php'))
1315
));
1416
const docsPath = path.join(repoRoot, 'docs', 'polyglot', 'server.md');
1517

16-
if (!serverRepo) {
17-
console.error('Server env contract not found.');
18-
console.error('Set SERVER_REPO_PATH to the Durable Workflow server repository.');
18+
if (explicitServerRepo && !serverRepo) {
19+
console.error(`Server env contract not found at ${process.env.SERVER_REPO_PATH}.`);
1920
process.exit(1);
2021
}
2122

22-
const contractPath = path.join(serverRepo, 'config', 'dw-contract.php');
23-
const contract = fs.readFileSync(contractPath, 'utf8');
23+
const contractPath = serverRepo ? path.join(serverRepo, 'config', 'dw-contract.php') : null;
24+
const contract = contractPath ? fs.readFileSync(contractPath, 'utf8') : null;
2425
const docs = fs.readFileSync(docsPath, 'utf8');
26+
const referencePath = path.join(repoRoot, 'docs', 'polyglot', 'server-config-reference.md');
27+
const reference = fs.readFileSync(referencePath, 'utf8');
2528

2629
function phpArraySection(source, sectionName) {
2730
const start = source.indexOf(`'${sectionName}' => [`);
@@ -60,14 +63,18 @@ function valuesFromPhpArraySection(source, sectionName) {
6063
.map((match) => match[1]);
6164
}
6265

66+
const livePublicVars = contract ? keysFromPhpArraySection(contract, 'vars') : null;
67+
const liveLegacyVars = contract
68+
? [...contract.matchAll(/'legacy'\s*=>\s*'([A-Z][A-Z0-9_]+)'/g)].map((match) => match[1])
69+
: null;
70+
const frameworkVars = contract ? valuesFromPhpArraySection(contract, 'framework') : [];
71+
const publicVars = livePublicVars || snapshot.vars;
6372
const contractVars = new Set([
64-
...keysFromPhpArraySection(contract, 'vars'),
65-
...valuesFromPhpArraySection(contract, 'framework'),
73+
...publicVars,
74+
...frameworkVars,
6675
]);
6776

68-
const legacyVars = new Set(
69-
[...contract.matchAll(/'legacy'\s*=>\s*'([A-Z][A-Z0-9_]+)'/g)].map((match) => match[1]),
70-
);
77+
const legacyVars = new Set(liveLegacyVars || snapshot.legacy);
7178

7279
const allowedNonServerVars = new Set([
7380
'DURABLE_WORKFLOW_AUTH_TOKEN',
@@ -91,10 +98,12 @@ for (const pattern of patterns) {
9198
}
9299
}
93100

94-
const unsupported = [...documentedVars]
95-
.filter((name) => !contractVars.has(name))
96-
.filter((name) => !allowedNonServerVars.has(name))
97-
.sort();
101+
const unsupported = contract
102+
? [...documentedVars]
103+
.filter((name) => !contractVars.has(name))
104+
.filter((name) => !allowedNonServerVars.has(name))
105+
.sort()
106+
: [];
98107

99108
const legacyDocumented = [...documentedVars]
100109
.filter((name) => legacyVars.has(name))
@@ -118,4 +127,41 @@ if (unsupported.length > 0 || legacyDocumented.length > 0) {
118127
process.exit(1);
119128
}
120129

121-
console.log(`Checked ${documentedVars.size} documented env names against ${contractPath}`);
130+
const missingFromReference = publicVars
131+
.filter((name) => !reference.includes(`\`${name}\``))
132+
.sort();
133+
134+
if (missingFromReference.length > 0) {
135+
console.error(`Missing DW_* env reference entries in ${path.relative(repoRoot, referencePath)}:`);
136+
for (const name of missingFromReference) {
137+
console.error(`- ${name}`);
138+
}
139+
process.exit(1);
140+
}
141+
142+
if (livePublicVars) {
143+
const snapshotVars = new Set(snapshot.vars);
144+
const added = livePublicVars.filter((name) => !snapshotVars.has(name)).sort();
145+
const removed = snapshot.vars.filter((name) => !livePublicVars.includes(name)).sort();
146+
147+
if (added.length > 0 || removed.length > 0) {
148+
if (added.length > 0) {
149+
console.error(`Server env snapshot is missing ${added.length} live DW_* vars from ${contractPath}:`);
150+
for (const name of added) {
151+
console.error(`- ${name}`);
152+
}
153+
}
154+
155+
if (removed.length > 0) {
156+
console.error(`Server env snapshot contains ${removed.length} removed DW_* vars not present in ${contractPath}:`);
157+
for (const name of removed) {
158+
console.error(`- ${name}`);
159+
}
160+
}
161+
162+
process.exit(1);
163+
}
164+
}
165+
166+
const source = contractPath || snapshotPath;
167+
console.log(`Checked ${documentedVars.size} documented env names and ${publicVars.length} DW_* reference entries against ${source}`);

scripts/reference-docs-contract.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,31 @@
4747
"/waterline/api/preferences/{surface}"
4848
]
4949
},
50+
{
51+
"path": "polyglot/server-config-reference.md",
52+
"title": "Server Config Reference",
53+
"minimumCodeFences": 2,
54+
"requiredHeadings": [
55+
"How The Contract Is Enforced",
56+
"Server Identity And Mode",
57+
"Authentication",
58+
"Command Attribution",
59+
"Worker Polling And Admission",
60+
"Worker Protocol And Query Transport",
61+
"Limits, Retention, And Metrics",
62+
"Docker Bootstrap And Provenance",
63+
"Workflow Package Controls",
64+
"Runtime Infrastructure Variables",
65+
"Migration Notes"
66+
],
67+
"requiredTerms": [
68+
"DW_ENV_AUDIT_STRICT",
69+
"DW_TASK_QUEUE_ADMISSION_OVERRIDES",
70+
"DW_V2_LIMIT_COMMAND_BATCH_SIZE",
71+
"legacy names are fallback-only",
72+
"Runtime infrastructure variables"
73+
]
74+
},
5075
{
5176
"path": "polyglot/server-api-reference.md",
5277
"title": "Server API Reference",

scripts/server-env-contract.json

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
{
2+
"vars": [
3+
"DW_MODE",
4+
"DW_SERVER_ID",
5+
"DW_SERVER_KEY",
6+
"DW_DEFAULT_NAMESPACE",
7+
"DW_TASK_DISPATCH_MODE",
8+
"DW_EXTERNAL_EXECUTOR_CONFIG_PATH",
9+
"DW_EXTERNAL_EXECUTOR_CONFIG_OVERLAY",
10+
"DW_AUTH_PROVIDER",
11+
"DW_AUTH_DRIVER",
12+
"DW_AUTH_TOKEN",
13+
"DW_SIGNATURE_KEY",
14+
"DW_WORKER_TOKEN",
15+
"DW_OPERATOR_TOKEN",
16+
"DW_ADMIN_TOKEN",
17+
"DW_WORKER_SIGNATURE_KEY",
18+
"DW_OPERATOR_SIGNATURE_KEY",
19+
"DW_ADMIN_SIGNATURE_KEY",
20+
"DW_AUTH_BACKWARD_COMPATIBLE",
21+
"DW_TRUST_FORWARDED_ATTRIBUTION_HEADERS",
22+
"DW_CALLER_TYPE_HEADER",
23+
"DW_CALLER_LABEL_HEADER",
24+
"DW_AUTH_STATUS_HEADER",
25+
"DW_AUTH_METHOD_HEADER",
26+
"DW_WORKER_POLL_TIMEOUT",
27+
"DW_WORKER_POLL_INTERVAL_MS",
28+
"DW_WORKER_POLL_SIGNAL_CHECK_INTERVAL_MS",
29+
"DW_POLLING_CACHE_PATH",
30+
"DW_WAKE_SIGNAL_TTL_SECONDS",
31+
"DW_MAX_TASKS_PER_POLL",
32+
"DW_WORKFLOW_TASK_MAX_ACTIVE_LEASES_PER_QUEUE",
33+
"DW_WORKFLOW_TASK_MAX_ACTIVE_LEASES_PER_NAMESPACE",
34+
"DW_WORKFLOW_TASK_MAX_DISPATCHES_PER_MINUTE",
35+
"DW_WORKFLOW_TASK_MAX_DISPATCHES_PER_MINUTE_PER_NAMESPACE",
36+
"DW_ACTIVITY_TASK_MAX_ACTIVE_LEASES_PER_QUEUE",
37+
"DW_ACTIVITY_TASK_MAX_ACTIVE_LEASES_PER_NAMESPACE",
38+
"DW_ACTIVITY_TASK_MAX_DISPATCHES_PER_MINUTE",
39+
"DW_ACTIVITY_TASK_MAX_DISPATCHES_PER_MINUTE_PER_NAMESPACE",
40+
"DW_TASK_QUEUE_ADMISSION_OVERRIDES",
41+
"DW_EXPIRED_WORKFLOW_TASK_RECOVERY_SCAN_LIMIT",
42+
"DW_EXPIRED_WORKFLOW_TASK_RECOVERY_TTL_SECONDS",
43+
"DW_WORKER_PROTOCOL_VERSION",
44+
"DW_HISTORY_PAGE_SIZE_DEFAULT",
45+
"DW_HISTORY_PAGE_SIZE_MAX",
46+
"DW_QUERY_TASK_TIMEOUT",
47+
"DW_QUERY_TASK_LEASE_TIMEOUT",
48+
"DW_QUERY_TASK_TTL_SECONDS",
49+
"DW_QUERY_TASK_MAX_PENDING_PER_QUEUE",
50+
"DW_WORKFLOW_TASK_TIMEOUT",
51+
"DW_ACTIVITY_TASK_TIMEOUT",
52+
"DW_WORKER_STALE_AFTER_SECONDS",
53+
"DW_METRICS_WORKFLOW_TASK_FAILURE_TYPE_LIMIT",
54+
"DW_MAX_HISTORY_EVENTS",
55+
"DW_HISTORY_RETENTION_DAYS",
56+
"DW_MAX_PAYLOAD_BYTES",
57+
"DW_MAX_MEMO_BYTES",
58+
"DW_MAX_SEARCH_ATTRIBUTES",
59+
"DW_MAX_SEARCH_ATTRIBUTE_KEY_LENGTH",
60+
"DW_MAX_SEARCH_ATTRIBUTE_VALUE_BYTES",
61+
"DW_MAX_OPERATION_NAME_LENGTH",
62+
"DW_MAX_PENDING_ACTIVITIES",
63+
"DW_MAX_PENDING_CHILDREN",
64+
"DW_COMPRESSION_ENABLED",
65+
"DW_EXPOSE_PACKAGE_PROVENANCE",
66+
"DW_PACKAGE_PROVENANCE_PATH",
67+
"DW_ENV_AUDIT_STRICT",
68+
"DW_BOOTSTRAP_RETRIES",
69+
"DW_BOOTSTRAP_DELAY_SECONDS",
70+
"DW_V2_NAMESPACE",
71+
"DW_V2_CURRENT_COMPATIBILITY",
72+
"DW_V2_SUPPORTED_COMPATIBILITIES",
73+
"DW_V2_COMPATIBILITY_NAMESPACE",
74+
"DW_V2_COMPATIBILITY_HEARTBEAT_TTL",
75+
"DW_V2_PIN_TO_RECORDED_FINGERPRINT",
76+
"DW_V2_CONTINUE_AS_NEW_EVENT_THRESHOLD",
77+
"DW_V2_CONTINUE_AS_NEW_SIZE_BYTES_THRESHOLD",
78+
"DW_V2_HISTORY_EXPORT_SIGNING_KEY",
79+
"DW_V2_HISTORY_EXPORT_SIGNING_KEY_ID",
80+
"DW_V2_UPDATE_WAIT_COMPLETION_TIMEOUT_SECONDS",
81+
"DW_V2_UPDATE_WAIT_POLL_INTERVAL_MS",
82+
"DW_V2_GUARDRAILS_BOOT",
83+
"DW_V2_LIMIT_PENDING_ACTIVITIES",
84+
"DW_V2_LIMIT_PENDING_CHILDREN",
85+
"DW_V2_LIMIT_PENDING_TIMERS",
86+
"DW_V2_LIMIT_PENDING_SIGNALS",
87+
"DW_V2_LIMIT_PENDING_UPDATES",
88+
"DW_V2_LIMIT_COMMAND_BATCH_SIZE",
89+
"DW_V2_LIMIT_PAYLOAD_SIZE_BYTES",
90+
"DW_V2_LIMIT_MEMO_SIZE_BYTES",
91+
"DW_V2_LIMIT_SEARCH_ATTRIBUTE_SIZE_BYTES",
92+
"DW_V2_LIMIT_HISTORY_TRANSACTION_SIZE",
93+
"DW_V2_LIMIT_WARNING_THRESHOLD_PERCENT",
94+
"DW_V2_TASK_DISPATCH_MODE",
95+
"DW_V2_TASK_REPAIR_REDISPATCH_AFTER_SECONDS",
96+
"DW_V2_TASK_REPAIR_LOOP_THROTTLE_SECONDS",
97+
"DW_V2_TASK_REPAIR_SCAN_LIMIT",
98+
"DW_V2_TASK_REPAIR_FAILURE_BACKOFF_MAX_SECONDS",
99+
"DW_V2_MULTI_NODE",
100+
"DW_V2_VALIDATE_CACHE_BACKEND",
101+
"DW_V2_CACHE_VALIDATION_MODE",
102+
"DW_SERIALIZER"
103+
],
104+
"legacy": [
105+
"WORKFLOW_SERVER_MODE",
106+
"WORKFLOW_SERVER_ID",
107+
"WORKFLOW_SERVER_DEFAULT_NAMESPACE",
108+
"WORKFLOW_V2_TASK_DISPATCH_MODE",
109+
"WORKFLOW_SERVER_EXTERNAL_EXECUTOR_CONFIG_PATH",
110+
"WORKFLOW_SERVER_EXTERNAL_EXECUTOR_CONFIG_OVERLAY",
111+
"WORKFLOW_SERVER_AUTH_PROVIDER",
112+
"WORKFLOW_SERVER_AUTH_DRIVER",
113+
"WORKFLOW_SERVER_AUTH_TOKEN",
114+
"WORKFLOW_SERVER_SIGNATURE_KEY",
115+
"WORKFLOW_SERVER_WORKER_TOKEN",
116+
"WORKFLOW_SERVER_OPERATOR_TOKEN",
117+
"WORKFLOW_SERVER_ADMIN_TOKEN",
118+
"WORKFLOW_SERVER_WORKER_SIGNATURE_KEY",
119+
"WORKFLOW_SERVER_OPERATOR_SIGNATURE_KEY",
120+
"WORKFLOW_SERVER_ADMIN_SIGNATURE_KEY",
121+
"WORKFLOW_SERVER_AUTH_BACKWARD_COMPATIBLE",
122+
"WORKFLOW_SERVER_TRUST_FORWARDED_ATTRIBUTION_HEADERS",
123+
"WORKFLOW_SERVER_CALLER_TYPE_HEADER",
124+
"WORKFLOW_SERVER_CALLER_LABEL_HEADER",
125+
"WORKFLOW_SERVER_AUTH_STATUS_HEADER",
126+
"WORKFLOW_SERVER_AUTH_METHOD_HEADER",
127+
"WORKFLOW_SERVER_WORKER_POLL_TIMEOUT",
128+
"WORKFLOW_SERVER_WORKER_POLL_INTERVAL_MS",
129+
"WORKFLOW_SERVER_WORKER_POLL_SIGNAL_CHECK_INTERVAL_MS",
130+
"WORKFLOW_SERVER_POLLING_CACHE_PATH",
131+
"WORKFLOW_SERVER_WAKE_SIGNAL_TTL_SECONDS",
132+
"WORKFLOW_SERVER_MAX_TASKS_PER_POLL",
133+
"WORKFLOW_SERVER_WORKFLOW_TASK_MAX_ACTIVE_LEASES_PER_QUEUE",
134+
"WORKFLOW_SERVER_WORKFLOW_TASK_MAX_ACTIVE_LEASES_PER_NAMESPACE",
135+
"WORKFLOW_SERVER_WORKFLOW_TASK_MAX_DISPATCHES_PER_MINUTE",
136+
"WORKFLOW_SERVER_WORKFLOW_TASK_MAX_DISPATCHES_PER_MINUTE_PER_NAMESPACE",
137+
"WORKFLOW_SERVER_ACTIVITY_TASK_MAX_ACTIVE_LEASES_PER_QUEUE",
138+
"WORKFLOW_SERVER_ACTIVITY_TASK_MAX_ACTIVE_LEASES_PER_NAMESPACE",
139+
"WORKFLOW_SERVER_ACTIVITY_TASK_MAX_DISPATCHES_PER_MINUTE",
140+
"WORKFLOW_SERVER_ACTIVITY_TASK_MAX_DISPATCHES_PER_MINUTE_PER_NAMESPACE",
141+
"WORKFLOW_SERVER_TASK_QUEUE_ADMISSION_OVERRIDES",
142+
"WORKFLOW_SERVER_EXPIRED_WORKFLOW_TASK_RECOVERY_SCAN_LIMIT",
143+
"WORKFLOW_SERVER_EXPIRED_WORKFLOW_TASK_RECOVERY_TTL_SECONDS",
144+
"WORKFLOW_SERVER_WORKER_PROTOCOL_VERSION",
145+
"WORKFLOW_SERVER_HISTORY_PAGE_SIZE_DEFAULT",
146+
"WORKFLOW_SERVER_HISTORY_PAGE_SIZE_MAX",
147+
"WORKFLOW_SERVER_QUERY_TASK_TIMEOUT",
148+
"WORKFLOW_SERVER_QUERY_TASK_LEASE_TIMEOUT",
149+
"WORKFLOW_SERVER_QUERY_TASK_TTL_SECONDS",
150+
"WORKFLOW_SERVER_QUERY_TASK_MAX_PENDING_PER_QUEUE",
151+
"WORKFLOW_TASK_TIMEOUT",
152+
"ACTIVITY_TASK_TIMEOUT",
153+
"WORKFLOW_SERVER_WORKER_STALE_AFTER_SECONDS",
154+
"WORKFLOW_SERVER_METRICS_WORKFLOW_TASK_FAILURE_TYPE_LIMIT",
155+
"WORKFLOW_MAX_HISTORY_EVENTS",
156+
"WORKFLOW_HISTORY_RETENTION_DAYS",
157+
"WORKFLOW_MAX_PAYLOAD_BYTES",
158+
"WORKFLOW_MAX_MEMO_BYTES",
159+
"WORKFLOW_MAX_SEARCH_ATTRIBUTES",
160+
"WORKFLOW_MAX_SEARCH_ATTRIBUTE_KEY_LENGTH",
161+
"WORKFLOW_MAX_SEARCH_ATTRIBUTE_VALUE_BYTES",
162+
"WORKFLOW_MAX_OPERATION_NAME_LENGTH",
163+
"WORKFLOW_MAX_PENDING_ACTIVITIES",
164+
"WORKFLOW_MAX_PENDING_CHILDREN",
165+
"WORKFLOW_SERVER_COMPRESSION_ENABLED",
166+
"WORKFLOW_SERVER_EXPOSE_PACKAGE_PROVENANCE",
167+
"WORKFLOW_SERVER_PACKAGE_PROVENANCE_PATH",
168+
"WORKFLOW_SERVER_BOOTSTRAP_RETRIES",
169+
"WORKFLOW_SERVER_BOOTSTRAP_DELAY_SECONDS",
170+
"WORKFLOW_V2_NAMESPACE",
171+
"WORKFLOW_V2_CURRENT_COMPATIBILITY",
172+
"WORKFLOW_V2_SUPPORTED_COMPATIBILITIES",
173+
"WORKFLOW_V2_COMPATIBILITY_NAMESPACE",
174+
"WORKFLOW_V2_COMPATIBILITY_HEARTBEAT_TTL",
175+
"WORKFLOW_V2_PIN_TO_RECORDED_FINGERPRINT",
176+
"WORKFLOW_V2_CONTINUE_AS_NEW_EVENT_THRESHOLD",
177+
"WORKFLOW_V2_CONTINUE_AS_NEW_SIZE_BYTES_THRESHOLD",
178+
"WORKFLOW_V2_HISTORY_EXPORT_SIGNING_KEY",
179+
"WORKFLOW_V2_HISTORY_EXPORT_SIGNING_KEY_ID",
180+
"WORKFLOW_V2_UPDATE_WAIT_COMPLETION_TIMEOUT_SECONDS",
181+
"WORKFLOW_V2_UPDATE_WAIT_POLL_INTERVAL_MS",
182+
"WORKFLOW_V2_GUARDRAILS_BOOT",
183+
"WORKFLOW_V2_LIMIT_PENDING_ACTIVITIES",
184+
"WORKFLOW_V2_LIMIT_PENDING_CHILDREN",
185+
"WORKFLOW_V2_LIMIT_PENDING_TIMERS",
186+
"WORKFLOW_V2_LIMIT_PENDING_SIGNALS",
187+
"WORKFLOW_V2_LIMIT_PENDING_UPDATES",
188+
"WORKFLOW_V2_LIMIT_COMMAND_BATCH_SIZE",
189+
"WORKFLOW_V2_LIMIT_PAYLOAD_SIZE_BYTES",
190+
"WORKFLOW_V2_LIMIT_MEMO_SIZE_BYTES",
191+
"WORKFLOW_V2_LIMIT_SEARCH_ATTRIBUTE_SIZE_BYTES",
192+
"WORKFLOW_V2_LIMIT_HISTORY_TRANSACTION_SIZE",
193+
"WORKFLOW_V2_LIMIT_WARNING_THRESHOLD_PERCENT",
194+
"WORKFLOW_V2_TASK_REPAIR_REDISPATCH_AFTER_SECONDS",
195+
"WORKFLOW_V2_TASK_REPAIR_LOOP_THROTTLE_SECONDS",
196+
"WORKFLOW_V2_TASK_REPAIR_SCAN_LIMIT",
197+
"WORKFLOW_V2_TASK_REPAIR_FAILURE_BACKOFF_MAX_SECONDS",
198+
"WORKFLOW_V2_MULTI_NODE",
199+
"WORKFLOW_V2_VALIDATE_CACHE_BACKEND",
200+
"WORKFLOW_V2_CACHE_VALIDATION_MODE",
201+
"WORKFLOW_SERIALIZER"
202+
]
203+
}

sidebars.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ const sidebars = {
124124
},
125125
items: [
126126
'polyglot/server',
127+
'polyglot/server-config-reference',
127128
'polyglot/server-api-reference',
128129
'polyglot/namespace-auth-workers',
129130
'polyglot/embedded-to-server',

0 commit comments

Comments
 (0)