@kindgi/env-schema 0.1.7 → 0.1.8-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +123 -6
- package/dist/schema.js.map +1 -1
- package/dist/values.d.ts +62 -0
- package/dist/values.d.ts.map +1 -1
- package/dist/values.js +115 -0
- package/dist/values.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +9 -0
- package/src/schema.ts +137 -6
- package/src/values.ts +155 -0
package/README.md
CHANGED
|
@@ -39,8 +39,9 @@ field is optional:
|
|
|
39
39
|
a pack's code (its tools and guardrail checks). The pack service's
|
|
40
40
|
target lists `KINDGI_PACK_SERVICE_TOKEN`, `KINDGI_PACK_INDEX`,
|
|
41
41
|
`KINDGI_PACK_SERVICE_MAX_CONCURRENCY`, `KINDGI_PACK_ENV_CHECK`,
|
|
42
|
-
`KINDGI_PACK_ENV_FILTER
|
|
43
|
-
|
|
42
|
+
`KINDGI_PACK_ENV_FILTER`, `KINDGI_PACK_ENV_DECLARED` and
|
|
43
|
+
`KINDGI_PACK_TENANT_ID` (the one tenant it serves, when set), and none of
|
|
44
|
+
the server's vars.
|
|
44
45
|
It also listens on `PORT` (default 8080), the platform convention,
|
|
45
46
|
which isn't a Kindgi variable.
|
|
46
47
|
- **`secretsBackend`**, **`secretsBackendKms`**: the server's secrets
|
|
@@ -48,7 +49,13 @@ field is optional:
|
|
|
48
49
|
- **`packTransport`**: `http` when the server calls a pack service at
|
|
49
50
|
`KINDGI_PACK_SERVICE_URL`. Its token (`KINDGI_PACK_SERVICE_TOKEN`,
|
|
50
51
|
shared with the pack service) is then required, and
|
|
51
|
-
`KINDGI_PACK_CALL_TIMEOUT_MS` and `KINDGI_PACK_SERVICE_AUTH` apply.
|
|
52
|
+
`KINDGI_PACK_CALL_TIMEOUT_MS` and `KINDGI_PACK_SERVICE_AUTH` apply. The
|
|
53
|
+
server's `KINDGI_PACK_ROUTING` (`single` by default, or `per-deployment`,
|
|
54
|
+
which needs `KINDGI_TENANCY=multi`, with `KINDGI_PACK_ENDPOINT_HOSTS`)
|
|
55
|
+
picks the pack service for each call; their parsers
|
|
56
|
+
(`parsePackRouting`, `parsePackEndpointHosts`, `packEndpointHostAllowed`,
|
|
57
|
+
`parsePackTenantId`) are exported, so the server and the pack service
|
|
58
|
+
read them the same way.
|
|
52
59
|
|
|
53
60
|
## What lives here
|
|
54
61
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { ENV_GROUPS, type EnvTarget, type EnvVarSpec, KINDGI_ENV_SCHEMA, envVarsForTarget, renderEnvExample, validateEnvForTarget, } from './schema.js';
|
|
2
|
-
export { AUTH_EMAIL_FROM_VAR, AUTH_EMAIL_LINK_DAILY_CAP_VAR, AUTH_EMAIL_SMTP_URL_PATH_VAR, AUTH_EMAIL_SMTP_URL_VAR, AUTH_GITHUB_CLIENT_ID_VAR, AUTH_GITHUB_CLIENT_SECRET_PATH_VAR, AUTH_GITHUB_CLIENT_SECRET_VAR, AUTH_GOOGLE_CLIENT_ID_VAR, AUTH_GOOGLE_CLIENT_SECRET_PATH_VAR, AUTH_GOOGLE_CLIENT_SECRET_VAR, AUTH_MICROSOFT_CLIENT_ID_VAR, AUTH_MICROSOFT_CLIENT_SECRET_PATH_VAR, AUTH_MICROSOFT_CLIENT_SECRET_VAR, AUTH_PRIVATE_IDP_ORIGINS_VAR, AUTH_SECRET_PATH_VAR, AUTH_SECRET_VAR, AUTH_TENANT_PROVIDERS_VAR, AZURE_KEY_ID_VAR, AZURE_VAULT_URL_VAR, type AzureKeyId, AUTH_TURNSTILE_SECRET_PATH_VAR, AUTH_TURNSTILE_SECRET_VAR, AUTH_TURNSTILE_SITE_KEY_VAR, AUTH_VERIFIED_DOMAINS_VAR, CORS_ORIGINS_VAR, EXPORT_SIGNING_KEY_PATH_VAR, EXPORT_SIGNING_KEY_VAR, EXPORT_SIGNING_KMS_KEY_VAR, EXPORT_SIGNING_RETIRED_PUBLIC_KEYS_PATH_VAR, EXPORT_SIGNING_RETIRED_PUBLIC_KEYS_VAR, PUBLIC_URL_VAR, SESSION_IDLE_TIMEOUT_MS_VAR, CONSOLE_TOKEN_SIGN_IN_VAR, SESSION_TTL_MS_VAR, TRUSTED_PROXIES_VAR, LICENSE_KEY_VAR, PACK_SERVICE_TOKEN_VAR, PUBLIC_TOKEN_KEY_PATH_VAR, PUBLIC_TOKEN_KEY_VAR, parseAzureKeyId, parseAzureVaultUrl, parseCorsOrigins, parsePublicUrl, parsePackServiceToken, } from './values.js';
|
|
2
|
+
export { AUTH_EMAIL_FROM_VAR, AUTH_EMAIL_LINK_DAILY_CAP_VAR, AUTH_EMAIL_SMTP_URL_PATH_VAR, AUTH_EMAIL_SMTP_URL_VAR, AUTH_GITHUB_CLIENT_ID_VAR, AUTH_GITHUB_CLIENT_SECRET_PATH_VAR, AUTH_GITHUB_CLIENT_SECRET_VAR, AUTH_GOOGLE_CLIENT_ID_VAR, AUTH_GOOGLE_CLIENT_SECRET_PATH_VAR, AUTH_GOOGLE_CLIENT_SECRET_VAR, AUTH_MICROSOFT_CLIENT_ID_VAR, AUTH_MICROSOFT_CLIENT_SECRET_PATH_VAR, AUTH_MICROSOFT_CLIENT_SECRET_VAR, AUTH_PRIVATE_IDP_ORIGINS_VAR, AUTH_SECRET_PATH_VAR, AUTH_SECRET_VAR, AUTH_TENANT_PROVIDERS_VAR, AZURE_KEY_ID_VAR, AZURE_VAULT_URL_VAR, type AzureKeyId, AUTH_TURNSTILE_SECRET_PATH_VAR, AUTH_TURNSTILE_SECRET_VAR, AUTH_TURNSTILE_SITE_KEY_VAR, AUTH_VERIFIED_DOMAINS_VAR, CORS_ORIGINS_VAR, EXPORT_SIGNING_KEY_PATH_VAR, EXPORT_SIGNING_KEY_VAR, EXPORT_SIGNING_KMS_KEY_VAR, EXPORT_SIGNING_RETIRED_PUBLIC_KEYS_PATH_VAR, EXPORT_SIGNING_RETIRED_PUBLIC_KEYS_VAR, PUBLIC_URL_VAR, SESSION_IDLE_TIMEOUT_MS_VAR, CONSOLE_TOKEN_SIGN_IN_VAR, SESSION_TTL_MS_VAR, TRUSTED_PROXIES_VAR, LICENSE_KEY_VAR, PACK_SERVICE_TOKEN_VAR, PACK_TENANT_ID_VAR, PACK_ROUTING_VAR, PACK_ENDPOINT_HOSTS_VAR, type PackRouting, type PackEndpointHost, packEndpointHostAllowed, parsePackEndpointHosts, parsePackRouting, parsePackTenantId, PUBLIC_TOKEN_KEY_PATH_VAR, PUBLIC_TOKEN_KEY_VAR, parseAzureKeyId, parseAzureVaultUrl, parseCorsOrigins, parsePublicUrl, parsePackServiceToken, } from './values.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EACV,KAAK,SAAS,EACd,KAAK,UAAU,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,kCAAkC,EAClC,6BAA6B,EAC7B,yBAAyB,EACzB,kCAAkC,EAClC,6BAA6B,EAC7B,4BAA4B,EAC5B,qCAAqC,EACrC,gCAAgC,EAChC,4BAA4B,EAC5B,oBAAoB,EACpB,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,UAAU,EACf,8BAA8B,EAC9B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,2CAA2C,EAC3C,sCAAsC,EACtC,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EACV,KAAK,SAAS,EACd,KAAK,UAAU,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,kCAAkC,EAClC,6BAA6B,EAC7B,yBAAyB,EACzB,kCAAkC,EAClC,6BAA6B,EAC7B,4BAA4B,EAC5B,qCAAqC,EACrC,gCAAgC,EAChC,4BAA4B,EAC5B,oBAAoB,EACpB,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,UAAU,EACf,8BAA8B,EAC9B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,2CAA2C,EAC3C,sCAAsC,EACtC,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
// Copyright (C) 2026 Kindgi Inc.
|
|
3
3
|
export { ENV_GROUPS, KINDGI_ENV_SCHEMA, envVarsForTarget, renderEnvExample, validateEnvForTarget, } from './schema.js';
|
|
4
|
-
export { AUTH_EMAIL_FROM_VAR, AUTH_EMAIL_LINK_DAILY_CAP_VAR, AUTH_EMAIL_SMTP_URL_PATH_VAR, AUTH_EMAIL_SMTP_URL_VAR, AUTH_GITHUB_CLIENT_ID_VAR, AUTH_GITHUB_CLIENT_SECRET_PATH_VAR, AUTH_GITHUB_CLIENT_SECRET_VAR, AUTH_GOOGLE_CLIENT_ID_VAR, AUTH_GOOGLE_CLIENT_SECRET_PATH_VAR, AUTH_GOOGLE_CLIENT_SECRET_VAR, AUTH_MICROSOFT_CLIENT_ID_VAR, AUTH_MICROSOFT_CLIENT_SECRET_PATH_VAR, AUTH_MICROSOFT_CLIENT_SECRET_VAR, AUTH_PRIVATE_IDP_ORIGINS_VAR, AUTH_SECRET_PATH_VAR, AUTH_SECRET_VAR, AUTH_TENANT_PROVIDERS_VAR, AZURE_KEY_ID_VAR, AZURE_VAULT_URL_VAR, AUTH_TURNSTILE_SECRET_PATH_VAR, AUTH_TURNSTILE_SECRET_VAR, AUTH_TURNSTILE_SITE_KEY_VAR, AUTH_VERIFIED_DOMAINS_VAR, CORS_ORIGINS_VAR, EXPORT_SIGNING_KEY_PATH_VAR, EXPORT_SIGNING_KEY_VAR, EXPORT_SIGNING_KMS_KEY_VAR, EXPORT_SIGNING_RETIRED_PUBLIC_KEYS_PATH_VAR, EXPORT_SIGNING_RETIRED_PUBLIC_KEYS_VAR, PUBLIC_URL_VAR, SESSION_IDLE_TIMEOUT_MS_VAR, CONSOLE_TOKEN_SIGN_IN_VAR, SESSION_TTL_MS_VAR, TRUSTED_PROXIES_VAR, LICENSE_KEY_VAR, PACK_SERVICE_TOKEN_VAR, PUBLIC_TOKEN_KEY_PATH_VAR, PUBLIC_TOKEN_KEY_VAR, parseAzureKeyId, parseAzureVaultUrl, parseCorsOrigins, parsePublicUrl, parsePackServiceToken, } from './values.js';
|
|
4
|
+
export { AUTH_EMAIL_FROM_VAR, AUTH_EMAIL_LINK_DAILY_CAP_VAR, AUTH_EMAIL_SMTP_URL_PATH_VAR, AUTH_EMAIL_SMTP_URL_VAR, AUTH_GITHUB_CLIENT_ID_VAR, AUTH_GITHUB_CLIENT_SECRET_PATH_VAR, AUTH_GITHUB_CLIENT_SECRET_VAR, AUTH_GOOGLE_CLIENT_ID_VAR, AUTH_GOOGLE_CLIENT_SECRET_PATH_VAR, AUTH_GOOGLE_CLIENT_SECRET_VAR, AUTH_MICROSOFT_CLIENT_ID_VAR, AUTH_MICROSOFT_CLIENT_SECRET_PATH_VAR, AUTH_MICROSOFT_CLIENT_SECRET_VAR, AUTH_PRIVATE_IDP_ORIGINS_VAR, AUTH_SECRET_PATH_VAR, AUTH_SECRET_VAR, AUTH_TENANT_PROVIDERS_VAR, AZURE_KEY_ID_VAR, AZURE_VAULT_URL_VAR, AUTH_TURNSTILE_SECRET_PATH_VAR, AUTH_TURNSTILE_SECRET_VAR, AUTH_TURNSTILE_SITE_KEY_VAR, AUTH_VERIFIED_DOMAINS_VAR, CORS_ORIGINS_VAR, EXPORT_SIGNING_KEY_PATH_VAR, EXPORT_SIGNING_KEY_VAR, EXPORT_SIGNING_KMS_KEY_VAR, EXPORT_SIGNING_RETIRED_PUBLIC_KEYS_PATH_VAR, EXPORT_SIGNING_RETIRED_PUBLIC_KEYS_VAR, PUBLIC_URL_VAR, SESSION_IDLE_TIMEOUT_MS_VAR, CONSOLE_TOKEN_SIGN_IN_VAR, SESSION_TTL_MS_VAR, TRUSTED_PROXIES_VAR, LICENSE_KEY_VAR, PACK_SERVICE_TOKEN_VAR, PACK_TENANT_ID_VAR, PACK_ROUTING_VAR, PACK_ENDPOINT_HOSTS_VAR, packEndpointHostAllowed, parsePackEndpointHosts, parsePackRouting, parsePackTenantId, PUBLIC_TOKEN_KEY_PATH_VAR, PUBLIC_TOKEN_KEY_VAR, parseAzureKeyId, parseAzureVaultUrl, parseCorsOrigins, parsePublicUrl, parsePackServiceToken, } from './values.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EACL,UAAU,EAGV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,kCAAkC,EAClC,6BAA6B,EAC7B,yBAAyB,EACzB,kCAAkC,EAClC,6BAA6B,EAC7B,4BAA4B,EAC5B,qCAAqC,EACrC,gCAAgC,EAChC,4BAA4B,EAC5B,oBAAoB,EACpB,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EAEnB,8BAA8B,EAC9B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,2CAA2C,EAC3C,sCAAsC,EACtC,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EACL,UAAU,EAGV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,kCAAkC,EAClC,6BAA6B,EAC7B,yBAAyB,EACzB,kCAAkC,EAClC,6BAA6B,EAC7B,4BAA4B,EAC5B,qCAAqC,EACrC,gCAAgC,EAChC,4BAA4B,EAC5B,oBAAoB,EACpB,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EAEnB,8BAA8B,EAC9B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,2CAA2C,EAC3C,sCAAsC,EACtC,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EAGvB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,gBAAgB,GAAG,QAAQ,CAAC;IAC5E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,GAAG,OAAO,CAAC;IAC7E;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAMD,eAAO,MAAM,UAAU;;;;;;;;;;;;CAab,CAAC;AAsCX;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,gBAAgB,GAAG,QAAQ,CAAC;IAC5E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,GAAG,OAAO,CAAC;IAC7E;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAMD,eAAO,MAAM,UAAU;;;;;;;;;;;;CAab,CAAC;AAsCX;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,EAwsClD,CAAC;AAMF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,MAAM,GAAE,SAAS,UAAU,EAAsB,GAChD,SAAS,UAAU,EAAE,CAEvB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CA8CpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EACjD,MAAM,EAAE,SAAS,EACjB,MAAM,GAAE,SAAS,UAAU,EAAsB,GAChD;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAYrF"}
|
package/dist/schema.js
CHANGED
|
@@ -78,6 +78,23 @@ export const KINDGI_ENV_SCHEMA = [
|
|
|
78
78
|
appliesTo: appliesToServer,
|
|
79
79
|
group: 'core',
|
|
80
80
|
},
|
|
81
|
+
{
|
|
82
|
+
name: 'KINDGI_OPENFGA_PRESHARED_KEY',
|
|
83
|
+
description: "Used from runtime 0.1.8; earlier runtimes ignore it. OpenFGA's preshared key, for an OpenFGA run with `--authn-method=preshared` (`OPENFGA_AUTHN_PRESHARED_KEYS`): the server sends it with every call, as `Authorization: Bearer <key>`, so nothing else on the network can read or write permissions. Needs `KINDGI_OPENFGA_API_URL`; `KINDGI_TENANCY=multi` starts only with both. Set it by reference to a secret, pinned to a version. Use a long random value (`openssl rand -hex 32`); the server drops surrounding whitespace and refuses spaces, commas or control characters inside (it travels in an HTTP header, and OpenFGA's list is comma-separated). To rotate it without a refusal: add the new key to OpenFGA's list, then point the server at it, then drop the old one, each step its own deploy.",
|
|
84
|
+
example: '',
|
|
85
|
+
required: false,
|
|
86
|
+
appliesTo: appliesToServer,
|
|
87
|
+
group: 'core',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: 'KINDGI_OPENFGA_AUTH',
|
|
91
|
+
description: "Used from runtime 0.1.8; earlier runtimes ignore it. What the server sends OpenFGA besides the preshared key. `none` (default). `google-id-token`: also a Google ID token for `KINDGI_OPENFGA_API_URL`, from the server's own identity, for an OpenFGA on Cloud Run behind IAM; the URL must be https. It goes in `X-Serverless-Authorization`, which Cloud Run checks in place of `Authorization` (and passes on without its signature), because `Authorization` carries the key.",
|
|
92
|
+
example: 'none',
|
|
93
|
+
required: false,
|
|
94
|
+
appliesTo: appliesToServer,
|
|
95
|
+
group: 'core',
|
|
96
|
+
allowedValues: ['none', 'google-id-token'],
|
|
97
|
+
},
|
|
81
98
|
{
|
|
82
99
|
name: 'KINDGI_TENANT_ID',
|
|
83
100
|
description: 'Tenant UUID to seed / reuse. Default: fresh UUID printed at boot.',
|
|
@@ -86,6 +103,15 @@ export const KINDGI_ENV_SCHEMA = [
|
|
|
86
103
|
appliesTo: appliesToServer,
|
|
87
104
|
group: 'core',
|
|
88
105
|
},
|
|
106
|
+
{
|
|
107
|
+
name: 'KINDGI_TENANCY',
|
|
108
|
+
description: "Used from runtime 0.1.8; earlier runtimes ignore it. How many tenants the runtime serves. `single` (default): one, `KINDGI_TENANT_ID`'s, as before. `multi`: many, each created through `POST /v1/system/tenants`. A request's tenant comes from its key or session, so `KINDGI_TENANT_ID` is refused, and `KINDGI_API_TOKEN` acts as the operator (`kindgi:system`) in no tenant. The first `multi` boot keeps the existing tenant, with its data, keys and people, as the first of many. `multi` starts only with all of these: `KINDGI_TENANT_HOST_ACCESS=isolated`, `KINDGI_PACK_ROUTING=per-deployment` with `KINDGI_PACK_ENDPOINT_HOSTS`, `KINDGI_OPENFGA_API_URL` with `KINDGI_OPENFGA_PRESHARED_KEY`, `KINDGI_PRODUCTION_GATE=on` and `KINDGI_USAGE_METERING=on`. A start that lacks any is refused, naming each.",
|
|
109
|
+
example: 'single',
|
|
110
|
+
required: false,
|
|
111
|
+
appliesTo: appliesToServer,
|
|
112
|
+
group: 'core',
|
|
113
|
+
allowedValues: ['single', 'multi'],
|
|
114
|
+
},
|
|
89
115
|
{
|
|
90
116
|
name: 'KINDGI_API_TOKEN',
|
|
91
117
|
description: 'Bearer token to seed / reuse. Default: fresh `kgi_bt_...` token per boot.',
|
|
@@ -122,22 +148,48 @@ export const KINDGI_ENV_SCHEMA = [
|
|
|
122
148
|
},
|
|
123
149
|
{
|
|
124
150
|
name: 'KINDGI_TENANT_HOST_ACCESS',
|
|
125
|
-
description: "How far what tenants register may reach into the server's own host. `deployed` refuses a `stdio` MCP endpoint (a command the server would run in its container, as its user) at registration (`403 host-access-denied`) and at connect; run MCP servers over HTTP instead. It also refuses the server's connections to the cloud metadata endpoints (link-local addresses) and to its own host (loopback) when a tenant chose the host: an MCP endpoint, a model provider's base URL, an HTTP tool, an image reference. Private networks stay reachable. `local` allows all of it: only for a machine where every token holder may run commands. Unset: `local` with `KINDGI_DEV`, `deployed` otherwise; a value set here always wins.",
|
|
151
|
+
description: "How far what tenants register may reach into the server's own host. `deployed` refuses a `stdio` MCP endpoint (a command the server would run in its container, as its user) at registration (`403 host-access-denied`) and at connect; run MCP servers over HTTP instead. It also refuses the server's connections to the cloud metadata endpoints (link-local addresses, and the few that clouds serve outside that range, such as Azure's 168.63.129.16) and to its own host (loopback) when a tenant chose the host: an MCP endpoint, a model provider's base URL, an HTTP tool, an image reference. Private networks stay reachable. `isolated` is for a server whose tenants don't trust one another: it refuses all that `deployed` does, plus private networks (RFC 1918, CGNAT 100.64.0.0/10, IPv6 unique-local, IPv6 site-local), and the server's own cloud credentials: a model provider can't sign in as the server (a Gemini provider on Vertex AI needs `secret_ref` rather than Application Default Credentials, and Azure OpenAI's `auth: entra` and Bedrock's `auth: aws-identity` are refused). The server won't start with it and `KINDGI_DEV`, `KINDGI_WEBHOOK_PRIVATE_NETWORKS=allow` or `KINDGI_AUTH_PRIVATE_IDP_ORIGINS`. `KINDGI_TENANCY=multi` starts only with it. `isolated` is used from runtime 0.1.8; earlier runtimes refuse it at startup. `local` allows all of it: only for a machine where every token holder may run commands. Unset: `local` with `KINDGI_DEV`, `deployed` otherwise; a value set here always wins.",
|
|
126
152
|
example: 'deployed',
|
|
127
153
|
required: false,
|
|
128
154
|
appliesTo: appliesToServer,
|
|
129
155
|
group: 'core',
|
|
130
|
-
allowedValues: ['local', 'deployed'],
|
|
156
|
+
allowedValues: ['local', 'deployed', 'isolated'],
|
|
131
157
|
},
|
|
132
158
|
{
|
|
133
159
|
name: 'KINDGI_WEBHOOK_PRIVATE_NETWORKS',
|
|
134
|
-
description: 'Whether a webhook may go to a private network address: for a receiver on the same VPC or compose network as a self-hosted server. `allow` accepts a receiver whose host resolves to a private address: RFC 1918, CGNAT (100.64.0.0/10) or IPv6
|
|
160
|
+
description: 'Whether a webhook may go to a private network address: for a receiver on the same VPC or compose network as a self-hosted server. `allow` accepts a receiver whose host resolves to a private address: RFC 1918, CGNAT (100.64.0.0/10), IPv6 unique-local or IPv6 site-local. Loopback, the cloud metadata endpoints (link-local addresses, and the few that clouds serve elsewhere, some inside CGNAT or IPv6 unique-local) and unroutable addresses stay refused, even with `allow`, and webhooks stay https only. Unset or `deny`: public addresses only. Development mode (`KINDGI_DEV`) allows http and every address anyway. `KINDGI_TENANT_HOST_ACCESS=isolated` refuses `allow`.',
|
|
135
161
|
example: 'allow',
|
|
136
162
|
required: false,
|
|
137
163
|
appliesTo: appliesToServer,
|
|
138
164
|
group: 'core',
|
|
139
165
|
allowedValues: ['allow', 'deny'],
|
|
140
166
|
},
|
|
167
|
+
{
|
|
168
|
+
name: 'KINDGI_PRODUCTION_GATE',
|
|
169
|
+
description: "Used from runtime 0.1.8; earlier runtimes ignore it. Whether putting a project in production needs the tenant to be allowed it, for example once it has paid. `on`: `PUT /v1/projects/{projectId}/production` refuses with `403 production-not-allowed` while the tenant isn't allowed (its `productionAllowed` is `false`, set through the system API); a project already in production stays so. A tenant is allowed unless it's switched off, so turning the gate on keeps existing tenants' production. Unset or `off`: no gate, and any tenant admin can put a project in production. `KINDGI_TENANCY=multi` starts only with `on`.",
|
|
170
|
+
example: 'on',
|
|
171
|
+
required: false,
|
|
172
|
+
appliesTo: appliesToServer,
|
|
173
|
+
group: 'core',
|
|
174
|
+
allowedValues: ['on', 'off'],
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
name: 'KINDGI_PRODUCTION_NEXT_URL',
|
|
178
|
+
description: "Used from runtime 0.1.8; earlier runtimes ignore it. Where a tenant goes to put more projects in production, for example a billing page: an https URL. It's the `details.next` of two refusals: `production-not-allowed`, for a tenant that isn't allowed to put projects in production, and `production-limit-reached`, for one at its limit on projects in production. It's also `GET /v1/tenant`'s `productionNext` while the tenant isn't allowed. Unset: the first refusal says to ask whoever runs the server, and the second to take a project out of production or ask whoever runs the server to raise the limit.",
|
|
179
|
+
example: 'https://platform.example.com/account/billing',
|
|
180
|
+
required: false,
|
|
181
|
+
appliesTo: appliesToServer,
|
|
182
|
+
group: 'core',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
name: 'KINDGI_USAGE_METERING',
|
|
186
|
+
description: "Used from runtime 0.1.8; earlier runtimes ignore it. Whether the server counts usage. `on`: it records each run when it's created (with its class: `production`, `staging`, `dry-run`, `replay`, `eval` or `child`) and when it ends, each approval asked for and decided, each model call, and each project put in production or taken out. Each is counted exactly once, in the same transaction as what it counts. `/v1/cost/*` reads a tenant's own counts. Unset or `off`: model calls are counted as before, and nothing else. `KINDGI_TENANCY=multi` starts only with `on`.",
|
|
187
|
+
example: 'on',
|
|
188
|
+
required: false,
|
|
189
|
+
appliesTo: appliesToServer,
|
|
190
|
+
group: 'core',
|
|
191
|
+
allowedValues: ['on', 'off'],
|
|
192
|
+
},
|
|
141
193
|
{
|
|
142
194
|
name: 'KINDGI_LICENSE_KEY',
|
|
143
195
|
description: 'The commercial license key (`kgi_lk_...`) Kindgi issues: signed, checked offline at startup, with no call to Kindgi. Required outside development mode: without a valid key the server refuses to start, naming this variable. `KINDGI_DEV=true` needs none. A production key comes with a commercial license; a free non-production key covers staging and CI. A secret: give it from your secrets store.',
|
|
@@ -204,7 +256,7 @@ export const KINDGI_ENV_SCHEMA = [
|
|
|
204
256
|
},
|
|
205
257
|
{
|
|
206
258
|
name: 'KINDGI_AUTH_PRIVATE_IDP_ORIGINS',
|
|
207
|
-
description: "Comma-separated origins of identity providers on a private network (a self-hosted Keycloak or AD FS behind a VPN, e.g. `https://sso.corp.internal`) that tenants may register. Only public HTTPS identity providers are allowed otherwise: a tenant admin can't point the runtime at the deployment's own network.",
|
|
259
|
+
description: "Comma-separated origins of identity providers on a private network (a self-hosted Keycloak or AD FS behind a VPN, e.g. `https://sso.corp.internal`) that tenants may register. Only public HTTPS identity providers are allowed otherwise: a tenant admin can't point the runtime at the deployment's own network. `KINDGI_TENANT_HOST_ACCESS=isolated` refuses this setting, since every tenant could name a listed origin.",
|
|
208
260
|
example: 'https://sso.corp.internal',
|
|
209
261
|
required: false,
|
|
210
262
|
appliesTo: appliesToServer,
|
|
@@ -530,6 +582,30 @@ export const KINDGI_ENV_SCHEMA = [
|
|
|
530
582
|
appliesTo: appliesToServer,
|
|
531
583
|
group: 'core',
|
|
532
584
|
},
|
|
585
|
+
{
|
|
586
|
+
name: 'KINDGI_ERASURE_LEDGER_EXPORT',
|
|
587
|
+
description: 'Where the server keeps copies of the erasure ledger, off the database, so erasures can be replayed after a backup restore: `local:<absolute dir>` or `gcs:<bucket>[/<prefix>]` (Application Default Credentials; creating objects is all it needs). On an interval (`KINDGI_ERASURE_LEDGER_EXPORT_INTERVAL_MS`) it writes the ledger of every tenant it serves as one file (keyed hashes only, never whom an erasure names), as `kindgi memory erasures export` does for one tenant: a new file when the ledger changed, and at least one a day. It never overwrites or deletes one; keep them longer than your backups. Replay the newest after a restore with `kindgi-runtime erasures replay`. Unset (the default): the ledger stays in the database only.',
|
|
588
|
+
example: 'gcs:acme-erasure-ledger/runtime',
|
|
589
|
+
required: false,
|
|
590
|
+
appliesTo: appliesToServer,
|
|
591
|
+
group: 'core',
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
name: 'KINDGI_ERASURE_LEDGER_EXPORT_INTERVAL_MS',
|
|
595
|
+
description: 'How often the server writes the erasure ledger to `KINDGI_ERASURE_LEDGER_EXPORT`, in milliseconds. An erasure made after the last copy and after the restore point is in neither, so this bounds what a restore can miss. Default 3600000 (an hour). At least 60000, and needs `KINDGI_ERASURE_LEDGER_EXPORT`, or the server refuses to start.',
|
|
596
|
+
example: '900000',
|
|
597
|
+
required: false,
|
|
598
|
+
appliesTo: appliesToServer,
|
|
599
|
+
group: 'core',
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
name: 'KINDGI_PASSIVE',
|
|
603
|
+
description: "`on` boots a server that does nothing on its own, for looking at a restored backup before anyone uses it: none of its background work starts (runs, schedules and event triggers, webhook deliveries, sending permission changes to OpenFGA, the sweeps, erasures and the erasure ledger export), and it sends no email. Requests are served as usual, and a run started through the API still runs (in the server that took the request), so keep a passive server where only you can reach it. The startup output and `/ready` say it's passive. Off by default.",
|
|
604
|
+
example: 'on',
|
|
605
|
+
required: false,
|
|
606
|
+
appliesTo: appliesToServer,
|
|
607
|
+
group: 'core',
|
|
608
|
+
},
|
|
533
609
|
{
|
|
534
610
|
name: 'KINDGI_PAGINATION_KEY_PATH',
|
|
535
611
|
description: "Absolute path to the 32-byte key (mode 0600) every list's page cursors are sealed with, so a cursor never shows the row it points after; the same on every instance. Unset (and no `KINDGI_PAGINATION_KEY`): a key made at boot and kept nowhere, so a cursor handed out before a restart answers 400 after it, and more than one instance behind one address needs the key set. Rotate it yearly (each cursor is sealed with a random nonce): the new key here, the old one in `KINDGI_PAGINATION_PREVIOUS_KEY_PATH` for at least a day. Its own key: never the erasure ledger's or the secrets AAD key. This or `KINDGI_PAGINATION_KEY`, not both.",
|
|
@@ -580,12 +656,28 @@ export const KINDGI_ENV_SCHEMA = [
|
|
|
580
656
|
},
|
|
581
657
|
{
|
|
582
658
|
name: 'KINDGI_ARTIFACT_MAX_BYTES',
|
|
583
|
-
description: 'The most bytes one artifact upload may carry, the whole request body; more is `413 artifact-too-large`. Default 104857600 (100
|
|
659
|
+
description: 'The most bytes one artifact upload may carry, the whole request body; more is `413 artifact-too-large`. Default 104857600 (100 MiB).',
|
|
584
660
|
example: '104857600',
|
|
585
661
|
required: false,
|
|
586
662
|
appliesTo: appliesToServer,
|
|
587
663
|
group: 'core',
|
|
588
664
|
},
|
|
665
|
+
{
|
|
666
|
+
name: 'KINDGI_TURN_MEMORY_MIB',
|
|
667
|
+
description: "Used from runtime 0.1.8; earlier runtimes ignore it. The most memory, in MiB, that every tenant's running agent turns may hold together. A turn is charged by size before each model call: (4 + the iterations it has done) × its conversation as sent, plus a resumed run's journal. Past the limit, the turn fails with `429 turn-memory-limit-reached` (`limit: server`). Unset: no limit. Kindgi Cloud sets 384.",
|
|
668
|
+
example: '384',
|
|
669
|
+
required: false,
|
|
670
|
+
appliesTo: appliesToServer,
|
|
671
|
+
group: 'core',
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
name: 'KINDGI_TURN_MEMORY_PER_TENANT_MIB',
|
|
675
|
+
description: "Used from runtime 0.1.8; earlier runtimes ignore it. The most memory, in MiB, that one tenant's running agent turns may hold, charged as for `KINDGI_TURN_MEMORY_MIB`. Past it, the turn fails with `429 turn-memory-limit-reached` (`limit: tenant`), and a resume whose journal alone is bigger fails at once. Unset: no limit per tenant. Kindgi Cloud sets 192.",
|
|
676
|
+
example: '192',
|
|
677
|
+
required: false,
|
|
678
|
+
appliesTo: appliesToServer,
|
|
679
|
+
group: 'core',
|
|
680
|
+
},
|
|
589
681
|
{
|
|
590
682
|
name: 'KINDGI_LOG_LEVEL',
|
|
591
683
|
description: 'The lowest level written: `error`, `warn`, `info` (default), `debug` or `trace`. At `info` an idle runtime writes nothing after its boot record but background work that did something. An unknown level stops the server at boot, naming this variable (exit code 2).',
|
|
@@ -708,7 +800,7 @@ export const KINDGI_ENV_SCHEMA = [
|
|
|
708
800
|
},
|
|
709
801
|
{
|
|
710
802
|
name: 'KINDGI_AWS_IDENTITY',
|
|
711
|
-
description: "Used from runtime 0.1.7; runtime 0.1.6 ignores it. Where the server's AWS credentials come from, for the settings that sign in as it (such as the Bedrock adapter's `auth: aws-identity`). `container`: the task's or pod's role from the container credentials endpoint (ECS and Fargate, and EKS Pod Identity). `instance`: the EC2 instance profile, IMDSv2 only (in a container on EC2, raise the IMDS hop limit to 2, or use `container`). `web-identity`: EKS IRSA, from the projected token file and `AWS_ROLE_ARN`, which the platform sets. `profile`: development only (`KINDGI_DEV=true`), a named profile from `~/.aws` as `aws login` or SSO makes it (`KINDGI_AWS_PROFILE`). Unset: the server has no AWS identity, and a registration that needs one is refused. Never the AWS SDK's default chain or keys in the environment; Kindgi keeps no key.",
|
|
803
|
+
description: "Used from runtime 0.1.7; runtime 0.1.6 ignores it. Where the server's AWS credentials come from, for the settings that sign in as it (such as the Bedrock adapter's `auth: aws-identity`). `container`: the task's or pod's role from the container credentials endpoint (ECS and Fargate, and EKS Pod Identity). `instance`: the EC2 instance profile, IMDSv2 only (in a container on EC2, raise the IMDS hop limit to 2, or use `container`). `web-identity`: EKS IRSA, from the projected token file and `AWS_ROLE_ARN`, which the platform sets. `profile`: development only (`KINDGI_DEV=true`), a named profile from `~/.aws` as `aws login` or SSO makes it (`KINDGI_AWS_PROFILE`). Unset: the server has no AWS identity, and a registration that needs one is refused. Under `KINDGI_TENANT_HOST_ACCESS=isolated`, model providers can't sign in as it either. Never the AWS SDK's default chain or keys in the environment; Kindgi keeps no key.",
|
|
712
804
|
example: 'container',
|
|
713
805
|
required: false,
|
|
714
806
|
appliesTo: appliesToServer,
|
|
@@ -946,6 +1038,31 @@ export const KINDGI_ENV_SCHEMA = [
|
|
|
946
1038
|
appliesTo: appliesToPackService,
|
|
947
1039
|
group: 'pack-service',
|
|
948
1040
|
},
|
|
1041
|
+
{
|
|
1042
|
+
name: 'KINDGI_PACK_TENANT_ID',
|
|
1043
|
+
description: "The one tenant this pack service serves: the tenant's id, a UUID, checked at startup. It needs a runtime that sends the `kindgi-tenant-id` header on its pack calls, 0.1.8 or later: with an earlier runtime, every call is refused. Set: the service refuses, with 421 (`pack-tenant-mismatch`), a call to `/v1/invoke` or `/v1/info` whose `kindgi-tenant-id` header is missing or names another tenant, and a tool call whose context names another tenant, before any pack code runs. The health probes stay open. The server sends the header on every call, from the deployment it routed the call to. An orchestrator that runs a pack service per tenant sets it. Unset: no check. It's a backstop for a misrouted call to an honest pack, not a boundary: the server's routing is.",
|
|
1044
|
+
example: '',
|
|
1045
|
+
required: false,
|
|
1046
|
+
appliesTo: appliesToPackService,
|
|
1047
|
+
group: 'pack-service',
|
|
1048
|
+
},
|
|
1049
|
+
{
|
|
1050
|
+
name: 'KINDGI_PACK_ROUTING',
|
|
1051
|
+
description: 'Used from runtime 0.1.8; earlier runtimes ignore it. How the server finds the pack service for a call. `single` (default): one pack service, `KINDGI_PACK_SERVICE_URL`, for every call. `per-deployment` needs `KINDGI_TENANCY=multi`: the endpoints are recorded through the system API, which a runtime serving one tenant does not have, so the server refuses to start with it there; `multi` starts only with it. Each call then goes to the newest deployment that shipped the tool or check, at the endpoint recorded for it by whatever runs the services (an orchestrator, or a script) with a `system:deployments` key. Each endpoint carries its own token and auth, so `KINDGI_PACK_SERVICE_URL`, `KINDGI_PACK_SERVICE_TOKEN` and `KINDGI_PACK_SERVICE_AUTH` are refused; `KINDGI_PACK_CALL_TIMEOUT_MS` still applies. A call whose deployment has no endpoint yet fails (`pack-endpoint-pending`): it never falls back to an older deployment or another service. Deployments registered before it was turned on have no routes; deploy them again.',
|
|
1052
|
+
example: 'single',
|
|
1053
|
+
required: false,
|
|
1054
|
+
appliesTo: appliesToServer,
|
|
1055
|
+
group: 'pack-service',
|
|
1056
|
+
allowedValues: ['single', 'per-deployment'],
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
name: 'KINDGI_PACK_ENDPOINT_HOSTS',
|
|
1060
|
+
description: "Used from runtime 0.1.8; earlier runtimes ignore it. With `KINDGI_PACK_ROUTING=per-deployment`: the hosts a deployment's pack endpoint may name, comma-separated. Each is a host name; `*.` and a domain, which matches one more label in front of it; or `*-`, a tail and a domain, which matches one more label ending with `-` and the tail. On Cloud Run, name each pack project with `*-<project number>.<region>.run.app`: Cloud Run URLs are `<service>-<project number>.<region>.run.app` for every project, so `*.`, or a `*-` tail that isn't a project number, with `run.app` or a domain under it would admit anyone's service, and the server refuses to start with one. Lowercase, with no scheme, port or path. Without it, the server refuses to start: per-deployment routing needs `KINDGI_TENANCY=multi`, which starts only with the hosts named. An endpoint's host must also begin with its deployment's own service name (`kp-` and 20 characters, then `-` or `.`), so an endpoint can't point one tenant's deployment at another's service.",
|
|
1061
|
+
example: '*-123456789012.us-central1.run.app',
|
|
1062
|
+
required: false,
|
|
1063
|
+
appliesTo: appliesToServer,
|
|
1064
|
+
group: 'pack-service',
|
|
1065
|
+
},
|
|
949
1066
|
{
|
|
950
1067
|
name: 'KINDGI_IMAGE_REGISTRY_HOST',
|
|
951
1068
|
description: 'The registry host the credentials below are for, with its port when it has one (e.g. `registry.example`, `ghcr.io`). Other registries are read anonymously.',
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/values.d.ts
CHANGED
|
@@ -77,6 +77,68 @@ export declare const PACK_SERVICE_TOKEN_VAR = "KINDGI_PACK_SERVICE_TOKEN";
|
|
|
77
77
|
* character or a non-ASCII character inside, which a header can't carry.
|
|
78
78
|
*/
|
|
79
79
|
export declare function parsePackServiceToken(raw: string | undefined): string | undefined;
|
|
80
|
+
/** The tenant a pack service serves: it refuses calls for any other (`KINDGI_PACK_TENANT_ID`). */
|
|
81
|
+
export declare const PACK_TENANT_ID_VAR = "KINDGI_PACK_TENANT_ID";
|
|
82
|
+
/**
|
|
83
|
+
* `KINDGI_PACK_TENANT_ID` as the pack service reads it, without surrounding
|
|
84
|
+
* whitespace: it's compared with the `kindgi-tenant-id` header, which never
|
|
85
|
+
* carries any. Unset or blank: `undefined` (no tenant pin). Throws unless
|
|
86
|
+
* it's a tenant's id, a UUID, so a typo fails at startup instead of
|
|
87
|
+
* refusing every call; and throws on the id no tenant has.
|
|
88
|
+
*/
|
|
89
|
+
export declare function parsePackTenantId(raw: string | undefined): string | undefined;
|
|
90
|
+
/** How the server picks the pack service for a call (`KINDGI_PACK_ROUTING`). */
|
|
91
|
+
export declare const PACK_ROUTING_VAR = "KINDGI_PACK_ROUTING";
|
|
92
|
+
/** `single`: one pack service for every call. `per-deployment`: the service of the deployment that shipped the tool or check. */
|
|
93
|
+
export type PackRouting = 'single' | 'per-deployment';
|
|
94
|
+
/** Parse `KINDGI_PACK_ROUTING`. Unset or blank: `single`. Throws on any other value. */
|
|
95
|
+
export declare function parsePackRouting(raw: string | undefined): PackRouting;
|
|
96
|
+
/** The hosts a deployment's pack endpoint may name (`KINDGI_PACK_ENDPOINT_HOSTS`). */
|
|
97
|
+
export declare const PACK_ENDPOINT_HOSTS_VAR = "KINDGI_PACK_ENDPOINT_HOSTS";
|
|
98
|
+
/**
|
|
99
|
+
* One allowed host:
|
|
100
|
+
* - `exact` (`pack.internal`);
|
|
101
|
+
* - `suffix`, from `*.<suffix>`: one more label in front of the suffix
|
|
102
|
+
* (`*.example.internal` matches `pack-a.example.internal`, but neither
|
|
103
|
+
* `example.internal` itself nor `a.b.example.internal`). Never `run.app`
|
|
104
|
+
* or a domain under it: that's Cloud Run's shared domain, so the entry
|
|
105
|
+
* would admit any project's services;
|
|
106
|
+
* - `tail`, from `*-<tail>.<domain>`: one more label that ends with `-<tail>`
|
|
107
|
+
* (`*-123456789012.us-central1.run.app` matches
|
|
108
|
+
* `kp-abc-123456789012.us-central1.run.app`). On Cloud Run, whose URLs are
|
|
109
|
+
* `<service>-<project number>.<region>.run.app` for every project, this is
|
|
110
|
+
* the form that admits only one project's services; under `run.app`, the
|
|
111
|
+
* tail must be one (digits only).
|
|
112
|
+
*/
|
|
113
|
+
export type PackEndpointHost = {
|
|
114
|
+
readonly kind: 'exact';
|
|
115
|
+
readonly host: string;
|
|
116
|
+
} | {
|
|
117
|
+
readonly kind: 'suffix';
|
|
118
|
+
readonly suffix: string;
|
|
119
|
+
} | {
|
|
120
|
+
readonly kind: 'tail';
|
|
121
|
+
readonly tail: string;
|
|
122
|
+
readonly domain: string;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Parse `KINDGI_PACK_ENDPOINT_HOSTS`: comma-separated host names, lowercase,
|
|
126
|
+
* with no scheme, port or path, each exact, `*.` and a domain, or `*-`, a tail
|
|
127
|
+
* and a domain (`*-123456789012.us-central1.run.app`); a domain has at least
|
|
128
|
+
* two labels. Unset or blank: none, so every endpoint is refused. Throws on
|
|
129
|
+
* anything else, so a typo fails at startup rather than refusing every
|
|
130
|
+
* endpoint later. Throws, too, on `*.`, or a `*-` tail that isn't a
|
|
131
|
+
* project number, with `run.app` or a domain under it
|
|
132
|
+
* (`*.us-central1.run.app`, `*-uc.a.run.app`): either would admit anyone's
|
|
133
|
+
* Cloud Run service.
|
|
134
|
+
*/
|
|
135
|
+
export declare function parsePackEndpointHosts(raw: string | undefined): readonly PackEndpointHost[];
|
|
136
|
+
/**
|
|
137
|
+
* Whether `host` is one `KINDGI_PACK_ENDPOINT_HOSTS` allows (compared
|
|
138
|
+
* lowercase). Pass the URL's `hostname` (`new URL(endpoint).hostname`), not
|
|
139
|
+
* its `host`: a port makes it no host name, so it's refused.
|
|
140
|
+
*/
|
|
141
|
+
export declare function packEndpointHostAllowed(host: string, allowed: readonly PackEndpointHost[]): boolean;
|
|
80
142
|
/**
|
|
81
143
|
* Parse `KINDGI_CORS_ORIGINS`: comma-separated exact origins
|
|
82
144
|
* (`https://app.example.com`, `http://localhost:3000`): a scheme, a host
|
package/dist/values.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"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"}
|
package/dist/values.js
CHANGED
|
@@ -87,6 +87,121 @@ export function parsePackServiceToken(raw) {
|
|
|
87
87
|
}
|
|
88
88
|
return token;
|
|
89
89
|
}
|
|
90
|
+
/** The tenant a pack service serves: it refuses calls for any other (`KINDGI_PACK_TENANT_ID`). */
|
|
91
|
+
export const PACK_TENANT_ID_VAR = 'KINDGI_PACK_TENANT_ID';
|
|
92
|
+
const TENANT_UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
93
|
+
/**
|
|
94
|
+
* The id no tenant has: a request the operator makes in no tenant carries
|
|
95
|
+
* it (`SYSTEM_TENANT_ID` in `@kindgi/api`). No pack call does, so a pack
|
|
96
|
+
* service pinned to it would refuse every call.
|
|
97
|
+
*/
|
|
98
|
+
const NO_TENANT_ID = '00000000-0000-4000-8000-000000000000';
|
|
99
|
+
/**
|
|
100
|
+
* `KINDGI_PACK_TENANT_ID` as the pack service reads it, without surrounding
|
|
101
|
+
* whitespace: it's compared with the `kindgi-tenant-id` header, which never
|
|
102
|
+
* carries any. Unset or blank: `undefined` (no tenant pin). Throws unless
|
|
103
|
+
* it's a tenant's id, a UUID, so a typo fails at startup instead of
|
|
104
|
+
* refusing every call; and throws on the id no tenant has.
|
|
105
|
+
*/
|
|
106
|
+
export function parsePackTenantId(raw) {
|
|
107
|
+
const id = raw?.trim();
|
|
108
|
+
if (id === undefined || id === '')
|
|
109
|
+
return undefined;
|
|
110
|
+
if (!TENANT_UUID.test(id)) {
|
|
111
|
+
throw new Error(`${PACK_TENANT_ID_VAR} must be the tenant's id, a UUID such as 3f2b8c1e-4a5d-4e6f-9a0b-1c2d3e4f5a6b. Got a value that isn't one.`);
|
|
112
|
+
}
|
|
113
|
+
if (id.toLowerCase() === NO_TENANT_ID) {
|
|
114
|
+
throw new Error(`${PACK_TENANT_ID_VAR} is ${NO_TENANT_ID}, the id no tenant has: no pack call carries it. Set the tenant's own id.`);
|
|
115
|
+
}
|
|
116
|
+
return id;
|
|
117
|
+
}
|
|
118
|
+
/** How the server picks the pack service for a call (`KINDGI_PACK_ROUTING`). */
|
|
119
|
+
export const PACK_ROUTING_VAR = 'KINDGI_PACK_ROUTING';
|
|
120
|
+
/** Parse `KINDGI_PACK_ROUTING`. Unset or blank: `single`. Throws on any other value. */
|
|
121
|
+
export function parsePackRouting(raw) {
|
|
122
|
+
const value = raw?.trim();
|
|
123
|
+
if (value === undefined || value === '' || value === 'single')
|
|
124
|
+
return 'single';
|
|
125
|
+
if (value === 'per-deployment')
|
|
126
|
+
return 'per-deployment';
|
|
127
|
+
throw new Error(`${PACK_ROUTING_VAR} is \`single\` or \`per-deployment\`. Got "${value}".`);
|
|
128
|
+
}
|
|
129
|
+
/** The hosts a deployment's pack endpoint may name (`KINDGI_PACK_ENDPOINT_HOSTS`). */
|
|
130
|
+
export const PACK_ENDPOINT_HOSTS_VAR = 'KINDGI_PACK_ENDPOINT_HOSTS';
|
|
131
|
+
const HOST_LABEL = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
132
|
+
/**
|
|
133
|
+
* Cloud Run's shared domain. Under it, a `*.` entry, or a `*-` tail that
|
|
134
|
+
* isn't a project number, would admit any project's services.
|
|
135
|
+
*/
|
|
136
|
+
const CLOUD_RUN_DOMAIN = 'run.app';
|
|
137
|
+
function onCloudRun(domain) {
|
|
138
|
+
return domain === CLOUD_RUN_DOMAIN || domain.endsWith(`.${CLOUD_RUN_DOMAIN}`);
|
|
139
|
+
}
|
|
140
|
+
function cloudRunRefusal(item) {
|
|
141
|
+
return new Error(`${PACK_ENDPOINT_HOSTS_VAR} refuses "${item}": ${CLOUD_RUN_DOMAIN} is Cloud Run's shared domain, whose URLs are \`<service>-<project number>.<region>.run.app\` in every project, so it would admit anyone's service. List the exact hosts, or name one project with \`*-<project number>.<region>.run.app\`.`);
|
|
142
|
+
}
|
|
143
|
+
function isHostName(name) {
|
|
144
|
+
const labels = name.split('.');
|
|
145
|
+
return labels.length >= 2 && labels.every((label) => HOST_LABEL.test(label));
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Parse `KINDGI_PACK_ENDPOINT_HOSTS`: comma-separated host names, lowercase,
|
|
149
|
+
* with no scheme, port or path, each exact, `*.` and a domain, or `*-`, a tail
|
|
150
|
+
* and a domain (`*-123456789012.us-central1.run.app`); a domain has at least
|
|
151
|
+
* two labels. Unset or blank: none, so every endpoint is refused. Throws on
|
|
152
|
+
* anything else, so a typo fails at startup rather than refusing every
|
|
153
|
+
* endpoint later. Throws, too, on `*.`, or a `*-` tail that isn't a
|
|
154
|
+
* project number, with `run.app` or a domain under it
|
|
155
|
+
* (`*.us-central1.run.app`, `*-uc.a.run.app`): either would admit anyone's
|
|
156
|
+
* Cloud Run service.
|
|
157
|
+
*/
|
|
158
|
+
export function parsePackEndpointHosts(raw) {
|
|
159
|
+
if (raw === undefined || raw.trim() === '')
|
|
160
|
+
return [];
|
|
161
|
+
return raw.split(',').map((entry) => {
|
|
162
|
+
const item = entry.trim();
|
|
163
|
+
if (item.startsWith('*-')) {
|
|
164
|
+
const dot = item.indexOf('.');
|
|
165
|
+
const tail = dot < 0 ? '' : item.slice(2, dot);
|
|
166
|
+
const domain = dot < 0 ? '' : item.slice(dot + 1);
|
|
167
|
+
if (HOST_LABEL.test(tail) && isHostName(domain)) {
|
|
168
|
+
if (onCloudRun(domain) && !/^[0-9]+$/.test(tail))
|
|
169
|
+
throw cloudRunRefusal(item);
|
|
170
|
+
return { kind: 'tail', tail, domain };
|
|
171
|
+
}
|
|
172
|
+
throw new Error(`${PACK_ENDPOINT_HOSTS_VAR} takes host names, \`*.\` and a domain, or \`*-\`, a tail and a domain, comma-separated: lowercase, with no scheme, port or path (for example \`*-123456789012.us-central1.run.app\`). Got "${item}".`);
|
|
173
|
+
}
|
|
174
|
+
const suffix = item.startsWith('*.') ? item.slice(2) : undefined;
|
|
175
|
+
const name = suffix ?? item;
|
|
176
|
+
if (!isHostName(name)) {
|
|
177
|
+
throw new Error(`${PACK_ENDPOINT_HOSTS_VAR} takes host names, \`*.\` and a domain, or \`*-\`, a tail and a domain, comma-separated: lowercase, with no scheme, port or path (for example \`*-123456789012.us-central1.run.app\`). Got "${item}".`);
|
|
178
|
+
}
|
|
179
|
+
if (suffix === undefined)
|
|
180
|
+
return { kind: 'exact', host: name };
|
|
181
|
+
if (onCloudRun(suffix))
|
|
182
|
+
throw cloudRunRefusal(item);
|
|
183
|
+
return { kind: 'suffix', suffix };
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Whether `host` is one `KINDGI_PACK_ENDPOINT_HOSTS` allows (compared
|
|
188
|
+
* lowercase). Pass the URL's `hostname` (`new URL(endpoint).hostname`), not
|
|
189
|
+
* its `host`: a port makes it no host name, so it's refused.
|
|
190
|
+
*/
|
|
191
|
+
export function packEndpointHostAllowed(host, allowed) {
|
|
192
|
+
const name = host.toLowerCase();
|
|
193
|
+
return allowed.some((entry) => {
|
|
194
|
+
if (entry.kind === 'exact')
|
|
195
|
+
return name === entry.host;
|
|
196
|
+
const domain = entry.kind === 'suffix' ? entry.suffix : entry.domain;
|
|
197
|
+
if (!name.endsWith(`.${domain}`))
|
|
198
|
+
return false;
|
|
199
|
+
const first = name.slice(0, name.length - domain.length - 1);
|
|
200
|
+
if (!HOST_LABEL.test(first))
|
|
201
|
+
return false;
|
|
202
|
+
return entry.kind === 'suffix' || first.endsWith(`-${entry.tail}`);
|
|
203
|
+
});
|
|
204
|
+
}
|
|
90
205
|
/**
|
|
91
206
|
* Parse `KINDGI_CORS_ORIGINS`: comma-separated exact origins
|
|
92
207
|
* (`https://app.example.com`, `http://localhost:3000`): a scheme, a host
|
package/dist/values.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kindgi/env-schema",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8-rc.0",
|
|
4
4
|
"description": "Machine-readable registry of the Kindgi runtime's operator-facing env vars. Single source of truth for boot-time validation (validateEnvForTarget), .env.example scaffolding (renderEnvExample), and tools or coding agents introspecting deployment config. Adding a new env var means adding one entry here — no drift between validation, docs, and .env.example generation.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
package/src/index.ts
CHANGED
|
@@ -48,6 +48,15 @@ export {
|
|
|
48
48
|
TRUSTED_PROXIES_VAR,
|
|
49
49
|
LICENSE_KEY_VAR,
|
|
50
50
|
PACK_SERVICE_TOKEN_VAR,
|
|
51
|
+
PACK_TENANT_ID_VAR,
|
|
52
|
+
PACK_ROUTING_VAR,
|
|
53
|
+
PACK_ENDPOINT_HOSTS_VAR,
|
|
54
|
+
type PackRouting,
|
|
55
|
+
type PackEndpointHost,
|
|
56
|
+
packEndpointHostAllowed,
|
|
57
|
+
parsePackEndpointHosts,
|
|
58
|
+
parsePackRouting,
|
|
59
|
+
parsePackTenantId,
|
|
51
60
|
PUBLIC_TOKEN_KEY_PATH_VAR,
|
|
52
61
|
PUBLIC_TOKEN_KEY_VAR,
|
|
53
62
|
parseAzureKeyId,
|
package/src/schema.ts
CHANGED
|
@@ -209,6 +209,25 @@ export const KINDGI_ENV_SCHEMA: readonly EnvVarSpec[] = [
|
|
|
209
209
|
appliesTo: appliesToServer,
|
|
210
210
|
group: 'core',
|
|
211
211
|
},
|
|
212
|
+
{
|
|
213
|
+
name: 'KINDGI_OPENFGA_PRESHARED_KEY',
|
|
214
|
+
description:
|
|
215
|
+
"Used from runtime 0.1.8; earlier runtimes ignore it. OpenFGA's preshared key, for an OpenFGA run with `--authn-method=preshared` (`OPENFGA_AUTHN_PRESHARED_KEYS`): the server sends it with every call, as `Authorization: Bearer <key>`, so nothing else on the network can read or write permissions. Needs `KINDGI_OPENFGA_API_URL`; `KINDGI_TENANCY=multi` starts only with both. Set it by reference to a secret, pinned to a version. Use a long random value (`openssl rand -hex 32`); the server drops surrounding whitespace and refuses spaces, commas or control characters inside (it travels in an HTTP header, and OpenFGA's list is comma-separated). To rotate it without a refusal: add the new key to OpenFGA's list, then point the server at it, then drop the old one, each step its own deploy.",
|
|
216
|
+
example: '',
|
|
217
|
+
required: false,
|
|
218
|
+
appliesTo: appliesToServer,
|
|
219
|
+
group: 'core',
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
name: 'KINDGI_OPENFGA_AUTH',
|
|
223
|
+
description:
|
|
224
|
+
"Used from runtime 0.1.8; earlier runtimes ignore it. What the server sends OpenFGA besides the preshared key. `none` (default). `google-id-token`: also a Google ID token for `KINDGI_OPENFGA_API_URL`, from the server's own identity, for an OpenFGA on Cloud Run behind IAM; the URL must be https. It goes in `X-Serverless-Authorization`, which Cloud Run checks in place of `Authorization` (and passes on without its signature), because `Authorization` carries the key.",
|
|
225
|
+
example: 'none',
|
|
226
|
+
required: false,
|
|
227
|
+
appliesTo: appliesToServer,
|
|
228
|
+
group: 'core',
|
|
229
|
+
allowedValues: ['none', 'google-id-token'],
|
|
230
|
+
},
|
|
212
231
|
{
|
|
213
232
|
name: 'KINDGI_TENANT_ID',
|
|
214
233
|
description: 'Tenant UUID to seed / reuse. Default: fresh UUID printed at boot.',
|
|
@@ -217,6 +236,16 @@ export const KINDGI_ENV_SCHEMA: readonly EnvVarSpec[] = [
|
|
|
217
236
|
appliesTo: appliesToServer,
|
|
218
237
|
group: 'core',
|
|
219
238
|
},
|
|
239
|
+
{
|
|
240
|
+
name: 'KINDGI_TENANCY',
|
|
241
|
+
description:
|
|
242
|
+
"Used from runtime 0.1.8; earlier runtimes ignore it. How many tenants the runtime serves. `single` (default): one, `KINDGI_TENANT_ID`'s, as before. `multi`: many, each created through `POST /v1/system/tenants`. A request's tenant comes from its key or session, so `KINDGI_TENANT_ID` is refused, and `KINDGI_API_TOKEN` acts as the operator (`kindgi:system`) in no tenant. The first `multi` boot keeps the existing tenant, with its data, keys and people, as the first of many. `multi` starts only with all of these: `KINDGI_TENANT_HOST_ACCESS=isolated`, `KINDGI_PACK_ROUTING=per-deployment` with `KINDGI_PACK_ENDPOINT_HOSTS`, `KINDGI_OPENFGA_API_URL` with `KINDGI_OPENFGA_PRESHARED_KEY`, `KINDGI_PRODUCTION_GATE=on` and `KINDGI_USAGE_METERING=on`. A start that lacks any is refused, naming each.",
|
|
243
|
+
example: 'single',
|
|
244
|
+
required: false,
|
|
245
|
+
appliesTo: appliesToServer,
|
|
246
|
+
group: 'core',
|
|
247
|
+
allowedValues: ['single', 'multi'],
|
|
248
|
+
},
|
|
220
249
|
{
|
|
221
250
|
name: 'KINDGI_API_TOKEN',
|
|
222
251
|
description: 'Bearer token to seed / reuse. Default: fresh `kgi_bt_...` token per boot.',
|
|
@@ -256,23 +285,52 @@ export const KINDGI_ENV_SCHEMA: readonly EnvVarSpec[] = [
|
|
|
256
285
|
{
|
|
257
286
|
name: 'KINDGI_TENANT_HOST_ACCESS',
|
|
258
287
|
description:
|
|
259
|
-
"How far what tenants register may reach into the server's own host. `deployed` refuses a `stdio` MCP endpoint (a command the server would run in its container, as its user) at registration (`403 host-access-denied`) and at connect; run MCP servers over HTTP instead. It also refuses the server's connections to the cloud metadata endpoints (link-local addresses) and to its own host (loopback) when a tenant chose the host: an MCP endpoint, a model provider's base URL, an HTTP tool, an image reference. Private networks stay reachable. `local` allows all of it: only for a machine where every token holder may run commands. Unset: `local` with `KINDGI_DEV`, `deployed` otherwise; a value set here always wins.",
|
|
288
|
+
"How far what tenants register may reach into the server's own host. `deployed` refuses a `stdio` MCP endpoint (a command the server would run in its container, as its user) at registration (`403 host-access-denied`) and at connect; run MCP servers over HTTP instead. It also refuses the server's connections to the cloud metadata endpoints (link-local addresses, and the few that clouds serve outside that range, such as Azure's 168.63.129.16) and to its own host (loopback) when a tenant chose the host: an MCP endpoint, a model provider's base URL, an HTTP tool, an image reference. Private networks stay reachable. `isolated` is for a server whose tenants don't trust one another: it refuses all that `deployed` does, plus private networks (RFC 1918, CGNAT 100.64.0.0/10, IPv6 unique-local, IPv6 site-local), and the server's own cloud credentials: a model provider can't sign in as the server (a Gemini provider on Vertex AI needs `secret_ref` rather than Application Default Credentials, and Azure OpenAI's `auth: entra` and Bedrock's `auth: aws-identity` are refused). The server won't start with it and `KINDGI_DEV`, `KINDGI_WEBHOOK_PRIVATE_NETWORKS=allow` or `KINDGI_AUTH_PRIVATE_IDP_ORIGINS`. `KINDGI_TENANCY=multi` starts only with it. `isolated` is used from runtime 0.1.8; earlier runtimes refuse it at startup. `local` allows all of it: only for a machine where every token holder may run commands. Unset: `local` with `KINDGI_DEV`, `deployed` otherwise; a value set here always wins.",
|
|
260
289
|
example: 'deployed',
|
|
261
290
|
required: false,
|
|
262
291
|
appliesTo: appliesToServer,
|
|
263
292
|
group: 'core',
|
|
264
|
-
allowedValues: ['local', 'deployed'],
|
|
293
|
+
allowedValues: ['local', 'deployed', 'isolated'],
|
|
265
294
|
},
|
|
266
295
|
{
|
|
267
296
|
name: 'KINDGI_WEBHOOK_PRIVATE_NETWORKS',
|
|
268
297
|
description:
|
|
269
|
-
'Whether a webhook may go to a private network address: for a receiver on the same VPC or compose network as a self-hosted server. `allow` accepts a receiver whose host resolves to a private address: RFC 1918, CGNAT (100.64.0.0/10) or IPv6
|
|
298
|
+
'Whether a webhook may go to a private network address: for a receiver on the same VPC or compose network as a self-hosted server. `allow` accepts a receiver whose host resolves to a private address: RFC 1918, CGNAT (100.64.0.0/10), IPv6 unique-local or IPv6 site-local. Loopback, the cloud metadata endpoints (link-local addresses, and the few that clouds serve elsewhere, some inside CGNAT or IPv6 unique-local) and unroutable addresses stay refused, even with `allow`, and webhooks stay https only. Unset or `deny`: public addresses only. Development mode (`KINDGI_DEV`) allows http and every address anyway. `KINDGI_TENANT_HOST_ACCESS=isolated` refuses `allow`.',
|
|
270
299
|
example: 'allow',
|
|
271
300
|
required: false,
|
|
272
301
|
appliesTo: appliesToServer,
|
|
273
302
|
group: 'core',
|
|
274
303
|
allowedValues: ['allow', 'deny'],
|
|
275
304
|
},
|
|
305
|
+
{
|
|
306
|
+
name: 'KINDGI_PRODUCTION_GATE',
|
|
307
|
+
description:
|
|
308
|
+
"Used from runtime 0.1.8; earlier runtimes ignore it. Whether putting a project in production needs the tenant to be allowed it, for example once it has paid. `on`: `PUT /v1/projects/{projectId}/production` refuses with `403 production-not-allowed` while the tenant isn't allowed (its `productionAllowed` is `false`, set through the system API); a project already in production stays so. A tenant is allowed unless it's switched off, so turning the gate on keeps existing tenants' production. Unset or `off`: no gate, and any tenant admin can put a project in production. `KINDGI_TENANCY=multi` starts only with `on`.",
|
|
309
|
+
example: 'on',
|
|
310
|
+
required: false,
|
|
311
|
+
appliesTo: appliesToServer,
|
|
312
|
+
group: 'core',
|
|
313
|
+
allowedValues: ['on', 'off'],
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
name: 'KINDGI_PRODUCTION_NEXT_URL',
|
|
317
|
+
description:
|
|
318
|
+
"Used from runtime 0.1.8; earlier runtimes ignore it. Where a tenant goes to put more projects in production, for example a billing page: an https URL. It's the `details.next` of two refusals: `production-not-allowed`, for a tenant that isn't allowed to put projects in production, and `production-limit-reached`, for one at its limit on projects in production. It's also `GET /v1/tenant`'s `productionNext` while the tenant isn't allowed. Unset: the first refusal says to ask whoever runs the server, and the second to take a project out of production or ask whoever runs the server to raise the limit.",
|
|
319
|
+
example: 'https://platform.example.com/account/billing',
|
|
320
|
+
required: false,
|
|
321
|
+
appliesTo: appliesToServer,
|
|
322
|
+
group: 'core',
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
name: 'KINDGI_USAGE_METERING',
|
|
326
|
+
description:
|
|
327
|
+
"Used from runtime 0.1.8; earlier runtimes ignore it. Whether the server counts usage. `on`: it records each run when it's created (with its class: `production`, `staging`, `dry-run`, `replay`, `eval` or `child`) and when it ends, each approval asked for and decided, each model call, and each project put in production or taken out. Each is counted exactly once, in the same transaction as what it counts. `/v1/cost/*` reads a tenant's own counts. Unset or `off`: model calls are counted as before, and nothing else. `KINDGI_TENANCY=multi` starts only with `on`.",
|
|
328
|
+
example: 'on',
|
|
329
|
+
required: false,
|
|
330
|
+
appliesTo: appliesToServer,
|
|
331
|
+
group: 'core',
|
|
332
|
+
allowedValues: ['on', 'off'],
|
|
333
|
+
},
|
|
276
334
|
{
|
|
277
335
|
name: 'KINDGI_LICENSE_KEY',
|
|
278
336
|
description:
|
|
@@ -348,7 +406,7 @@ export const KINDGI_ENV_SCHEMA: readonly EnvVarSpec[] = [
|
|
|
348
406
|
{
|
|
349
407
|
name: 'KINDGI_AUTH_PRIVATE_IDP_ORIGINS',
|
|
350
408
|
description:
|
|
351
|
-
"Comma-separated origins of identity providers on a private network (a self-hosted Keycloak or AD FS behind a VPN, e.g. `https://sso.corp.internal`) that tenants may register. Only public HTTPS identity providers are allowed otherwise: a tenant admin can't point the runtime at the deployment's own network.",
|
|
409
|
+
"Comma-separated origins of identity providers on a private network (a self-hosted Keycloak or AD FS behind a VPN, e.g. `https://sso.corp.internal`) that tenants may register. Only public HTTPS identity providers are allowed otherwise: a tenant admin can't point the runtime at the deployment's own network. `KINDGI_TENANT_HOST_ACCESS=isolated` refuses this setting, since every tenant could name a listed origin.",
|
|
352
410
|
example: 'https://sso.corp.internal',
|
|
353
411
|
required: false,
|
|
354
412
|
appliesTo: appliesToServer,
|
|
@@ -715,6 +773,33 @@ export const KINDGI_ENV_SCHEMA: readonly EnvVarSpec[] = [
|
|
|
715
773
|
appliesTo: appliesToServer,
|
|
716
774
|
group: 'core',
|
|
717
775
|
},
|
|
776
|
+
{
|
|
777
|
+
name: 'KINDGI_ERASURE_LEDGER_EXPORT',
|
|
778
|
+
description:
|
|
779
|
+
'Where the server keeps copies of the erasure ledger, off the database, so erasures can be replayed after a backup restore: `local:<absolute dir>` or `gcs:<bucket>[/<prefix>]` (Application Default Credentials; creating objects is all it needs). On an interval (`KINDGI_ERASURE_LEDGER_EXPORT_INTERVAL_MS`) it writes the ledger of every tenant it serves as one file (keyed hashes only, never whom an erasure names), as `kindgi memory erasures export` does for one tenant: a new file when the ledger changed, and at least one a day. It never overwrites or deletes one; keep them longer than your backups. Replay the newest after a restore with `kindgi-runtime erasures replay`. Unset (the default): the ledger stays in the database only.',
|
|
780
|
+
example: 'gcs:acme-erasure-ledger/runtime',
|
|
781
|
+
required: false,
|
|
782
|
+
appliesTo: appliesToServer,
|
|
783
|
+
group: 'core',
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
name: 'KINDGI_ERASURE_LEDGER_EXPORT_INTERVAL_MS',
|
|
787
|
+
description:
|
|
788
|
+
'How often the server writes the erasure ledger to `KINDGI_ERASURE_LEDGER_EXPORT`, in milliseconds. An erasure made after the last copy and after the restore point is in neither, so this bounds what a restore can miss. Default 3600000 (an hour). At least 60000, and needs `KINDGI_ERASURE_LEDGER_EXPORT`, or the server refuses to start.',
|
|
789
|
+
example: '900000',
|
|
790
|
+
required: false,
|
|
791
|
+
appliesTo: appliesToServer,
|
|
792
|
+
group: 'core',
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
name: 'KINDGI_PASSIVE',
|
|
796
|
+
description:
|
|
797
|
+
"`on` boots a server that does nothing on its own, for looking at a restored backup before anyone uses it: none of its background work starts (runs, schedules and event triggers, webhook deliveries, sending permission changes to OpenFGA, the sweeps, erasures and the erasure ledger export), and it sends no email. Requests are served as usual, and a run started through the API still runs (in the server that took the request), so keep a passive server where only you can reach it. The startup output and `/ready` say it's passive. Off by default.",
|
|
798
|
+
example: 'on',
|
|
799
|
+
required: false,
|
|
800
|
+
appliesTo: appliesToServer,
|
|
801
|
+
group: 'core',
|
|
802
|
+
},
|
|
718
803
|
{
|
|
719
804
|
name: 'KINDGI_PAGINATION_KEY_PATH',
|
|
720
805
|
description:
|
|
@@ -772,12 +857,30 @@ export const KINDGI_ENV_SCHEMA: readonly EnvVarSpec[] = [
|
|
|
772
857
|
{
|
|
773
858
|
name: 'KINDGI_ARTIFACT_MAX_BYTES',
|
|
774
859
|
description:
|
|
775
|
-
'The most bytes one artifact upload may carry, the whole request body; more is `413 artifact-too-large`. Default 104857600 (100
|
|
860
|
+
'The most bytes one artifact upload may carry, the whole request body; more is `413 artifact-too-large`. Default 104857600 (100 MiB).',
|
|
776
861
|
example: '104857600',
|
|
777
862
|
required: false,
|
|
778
863
|
appliesTo: appliesToServer,
|
|
779
864
|
group: 'core',
|
|
780
865
|
},
|
|
866
|
+
{
|
|
867
|
+
name: 'KINDGI_TURN_MEMORY_MIB',
|
|
868
|
+
description:
|
|
869
|
+
"Used from runtime 0.1.8; earlier runtimes ignore it. The most memory, in MiB, that every tenant's running agent turns may hold together. A turn is charged by size before each model call: (4 + the iterations it has done) × its conversation as sent, plus a resumed run's journal. Past the limit, the turn fails with `429 turn-memory-limit-reached` (`limit: server`). Unset: no limit. Kindgi Cloud sets 384.",
|
|
870
|
+
example: '384',
|
|
871
|
+
required: false,
|
|
872
|
+
appliesTo: appliesToServer,
|
|
873
|
+
group: 'core',
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
name: 'KINDGI_TURN_MEMORY_PER_TENANT_MIB',
|
|
877
|
+
description:
|
|
878
|
+
"Used from runtime 0.1.8; earlier runtimes ignore it. The most memory, in MiB, that one tenant's running agent turns may hold, charged as for `KINDGI_TURN_MEMORY_MIB`. Past it, the turn fails with `429 turn-memory-limit-reached` (`limit: tenant`), and a resume whose journal alone is bigger fails at once. Unset: no limit per tenant. Kindgi Cloud sets 192.",
|
|
879
|
+
example: '192',
|
|
880
|
+
required: false,
|
|
881
|
+
appliesTo: appliesToServer,
|
|
882
|
+
group: 'core',
|
|
883
|
+
},
|
|
781
884
|
{
|
|
782
885
|
name: 'KINDGI_LOG_LEVEL',
|
|
783
886
|
description:
|
|
@@ -912,7 +1015,7 @@ export const KINDGI_ENV_SCHEMA: readonly EnvVarSpec[] = [
|
|
|
912
1015
|
{
|
|
913
1016
|
name: 'KINDGI_AWS_IDENTITY',
|
|
914
1017
|
description:
|
|
915
|
-
"Used from runtime 0.1.7; runtime 0.1.6 ignores it. Where the server's AWS credentials come from, for the settings that sign in as it (such as the Bedrock adapter's `auth: aws-identity`). `container`: the task's or pod's role from the container credentials endpoint (ECS and Fargate, and EKS Pod Identity). `instance`: the EC2 instance profile, IMDSv2 only (in a container on EC2, raise the IMDS hop limit to 2, or use `container`). `web-identity`: EKS IRSA, from the projected token file and `AWS_ROLE_ARN`, which the platform sets. `profile`: development only (`KINDGI_DEV=true`), a named profile from `~/.aws` as `aws login` or SSO makes it (`KINDGI_AWS_PROFILE`). Unset: the server has no AWS identity, and a registration that needs one is refused. Never the AWS SDK's default chain or keys in the environment; Kindgi keeps no key.",
|
|
1018
|
+
"Used from runtime 0.1.7; runtime 0.1.6 ignores it. Where the server's AWS credentials come from, for the settings that sign in as it (such as the Bedrock adapter's `auth: aws-identity`). `container`: the task's or pod's role from the container credentials endpoint (ECS and Fargate, and EKS Pod Identity). `instance`: the EC2 instance profile, IMDSv2 only (in a container on EC2, raise the IMDS hop limit to 2, or use `container`). `web-identity`: EKS IRSA, from the projected token file and `AWS_ROLE_ARN`, which the platform sets. `profile`: development only (`KINDGI_DEV=true`), a named profile from `~/.aws` as `aws login` or SSO makes it (`KINDGI_AWS_PROFILE`). Unset: the server has no AWS identity, and a registration that needs one is refused. Under `KINDGI_TENANT_HOST_ACCESS=isolated`, model providers can't sign in as it either. Never the AWS SDK's default chain or keys in the environment; Kindgi keeps no key.",
|
|
916
1019
|
example: 'container',
|
|
917
1020
|
required: false,
|
|
918
1021
|
appliesTo: appliesToServer,
|
|
@@ -1181,6 +1284,34 @@ export const KINDGI_ENV_SCHEMA: readonly EnvVarSpec[] = [
|
|
|
1181
1284
|
appliesTo: appliesToPackService,
|
|
1182
1285
|
group: 'pack-service',
|
|
1183
1286
|
},
|
|
1287
|
+
{
|
|
1288
|
+
name: 'KINDGI_PACK_TENANT_ID',
|
|
1289
|
+
description:
|
|
1290
|
+
"The one tenant this pack service serves: the tenant's id, a UUID, checked at startup. It needs a runtime that sends the `kindgi-tenant-id` header on its pack calls, 0.1.8 or later: with an earlier runtime, every call is refused. Set: the service refuses, with 421 (`pack-tenant-mismatch`), a call to `/v1/invoke` or `/v1/info` whose `kindgi-tenant-id` header is missing or names another tenant, and a tool call whose context names another tenant, before any pack code runs. The health probes stay open. The server sends the header on every call, from the deployment it routed the call to. An orchestrator that runs a pack service per tenant sets it. Unset: no check. It's a backstop for a misrouted call to an honest pack, not a boundary: the server's routing is.",
|
|
1291
|
+
example: '',
|
|
1292
|
+
required: false,
|
|
1293
|
+
appliesTo: appliesToPackService,
|
|
1294
|
+
group: 'pack-service',
|
|
1295
|
+
},
|
|
1296
|
+
{
|
|
1297
|
+
name: 'KINDGI_PACK_ROUTING',
|
|
1298
|
+
description:
|
|
1299
|
+
'Used from runtime 0.1.8; earlier runtimes ignore it. How the server finds the pack service for a call. `single` (default): one pack service, `KINDGI_PACK_SERVICE_URL`, for every call. `per-deployment` needs `KINDGI_TENANCY=multi`: the endpoints are recorded through the system API, which a runtime serving one tenant does not have, so the server refuses to start with it there; `multi` starts only with it. Each call then goes to the newest deployment that shipped the tool or check, at the endpoint recorded for it by whatever runs the services (an orchestrator, or a script) with a `system:deployments` key. Each endpoint carries its own token and auth, so `KINDGI_PACK_SERVICE_URL`, `KINDGI_PACK_SERVICE_TOKEN` and `KINDGI_PACK_SERVICE_AUTH` are refused; `KINDGI_PACK_CALL_TIMEOUT_MS` still applies. A call whose deployment has no endpoint yet fails (`pack-endpoint-pending`): it never falls back to an older deployment or another service. Deployments registered before it was turned on have no routes; deploy them again.',
|
|
1300
|
+
example: 'single',
|
|
1301
|
+
required: false,
|
|
1302
|
+
appliesTo: appliesToServer,
|
|
1303
|
+
group: 'pack-service',
|
|
1304
|
+
allowedValues: ['single', 'per-deployment'],
|
|
1305
|
+
},
|
|
1306
|
+
{
|
|
1307
|
+
name: 'KINDGI_PACK_ENDPOINT_HOSTS',
|
|
1308
|
+
description:
|
|
1309
|
+
"Used from runtime 0.1.8; earlier runtimes ignore it. With `KINDGI_PACK_ROUTING=per-deployment`: the hosts a deployment's pack endpoint may name, comma-separated. Each is a host name; `*.` and a domain, which matches one more label in front of it; or `*-`, a tail and a domain, which matches one more label ending with `-` and the tail. On Cloud Run, name each pack project with `*-<project number>.<region>.run.app`: Cloud Run URLs are `<service>-<project number>.<region>.run.app` for every project, so `*.`, or a `*-` tail that isn't a project number, with `run.app` or a domain under it would admit anyone's service, and the server refuses to start with one. Lowercase, with no scheme, port or path. Without it, the server refuses to start: per-deployment routing needs `KINDGI_TENANCY=multi`, which starts only with the hosts named. An endpoint's host must also begin with its deployment's own service name (`kp-` and 20 characters, then `-` or `.`), so an endpoint can't point one tenant's deployment at another's service.",
|
|
1310
|
+
example: '*-123456789012.us-central1.run.app',
|
|
1311
|
+
required: false,
|
|
1312
|
+
appliesTo: appliesToServer,
|
|
1313
|
+
group: 'pack-service',
|
|
1314
|
+
},
|
|
1184
1315
|
{
|
|
1185
1316
|
name: 'KINDGI_IMAGE_REGISTRY_HOST',
|
|
1186
1317
|
description:
|
package/src/values.ts
CHANGED
|
@@ -119,6 +119,161 @@ export function parsePackServiceToken(raw: string | undefined): string | undefin
|
|
|
119
119
|
return token;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
/** The tenant a pack service serves: it refuses calls for any other (`KINDGI_PACK_TENANT_ID`). */
|
|
123
|
+
export const PACK_TENANT_ID_VAR = 'KINDGI_PACK_TENANT_ID';
|
|
124
|
+
|
|
125
|
+
const TENANT_UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* The id no tenant has: a request the operator makes in no tenant carries
|
|
129
|
+
* it (`SYSTEM_TENANT_ID` in `@kindgi/api`). No pack call does, so a pack
|
|
130
|
+
* service pinned to it would refuse every call.
|
|
131
|
+
*/
|
|
132
|
+
const NO_TENANT_ID = '00000000-0000-4000-8000-000000000000';
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* `KINDGI_PACK_TENANT_ID` as the pack service reads it, without surrounding
|
|
136
|
+
* whitespace: it's compared with the `kindgi-tenant-id` header, which never
|
|
137
|
+
* carries any. Unset or blank: `undefined` (no tenant pin). Throws unless
|
|
138
|
+
* it's a tenant's id, a UUID, so a typo fails at startup instead of
|
|
139
|
+
* refusing every call; and throws on the id no tenant has.
|
|
140
|
+
*/
|
|
141
|
+
export function parsePackTenantId(raw: string | undefined): string | undefined {
|
|
142
|
+
const id = raw?.trim();
|
|
143
|
+
if (id === undefined || id === '') return undefined;
|
|
144
|
+
if (!TENANT_UUID.test(id)) {
|
|
145
|
+
throw new Error(
|
|
146
|
+
`${PACK_TENANT_ID_VAR} must be the tenant's id, a UUID such as 3f2b8c1e-4a5d-4e6f-9a0b-1c2d3e4f5a6b. Got a value that isn't one.`,
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
if (id.toLowerCase() === NO_TENANT_ID) {
|
|
150
|
+
throw new Error(
|
|
151
|
+
`${PACK_TENANT_ID_VAR} is ${NO_TENANT_ID}, the id no tenant has: no pack call carries it. Set the tenant's own id.`,
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
return id;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** How the server picks the pack service for a call (`KINDGI_PACK_ROUTING`). */
|
|
158
|
+
export const PACK_ROUTING_VAR = 'KINDGI_PACK_ROUTING';
|
|
159
|
+
|
|
160
|
+
/** `single`: one pack service for every call. `per-deployment`: the service of the deployment that shipped the tool or check. */
|
|
161
|
+
export type PackRouting = 'single' | 'per-deployment';
|
|
162
|
+
|
|
163
|
+
/** Parse `KINDGI_PACK_ROUTING`. Unset or blank: `single`. Throws on any other value. */
|
|
164
|
+
export function parsePackRouting(raw: string | undefined): PackRouting {
|
|
165
|
+
const value = raw?.trim();
|
|
166
|
+
if (value === undefined || value === '' || value === 'single') return 'single';
|
|
167
|
+
if (value === 'per-deployment') return 'per-deployment';
|
|
168
|
+
throw new Error(`${PACK_ROUTING_VAR} is \`single\` or \`per-deployment\`. Got "${value}".`);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/** The hosts a deployment's pack endpoint may name (`KINDGI_PACK_ENDPOINT_HOSTS`). */
|
|
172
|
+
export const PACK_ENDPOINT_HOSTS_VAR = 'KINDGI_PACK_ENDPOINT_HOSTS';
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* One allowed host:
|
|
176
|
+
* - `exact` (`pack.internal`);
|
|
177
|
+
* - `suffix`, from `*.<suffix>`: one more label in front of the suffix
|
|
178
|
+
* (`*.example.internal` matches `pack-a.example.internal`, but neither
|
|
179
|
+
* `example.internal` itself nor `a.b.example.internal`). Never `run.app`
|
|
180
|
+
* or a domain under it: that's Cloud Run's shared domain, so the entry
|
|
181
|
+
* would admit any project's services;
|
|
182
|
+
* - `tail`, from `*-<tail>.<domain>`: one more label that ends with `-<tail>`
|
|
183
|
+
* (`*-123456789012.us-central1.run.app` matches
|
|
184
|
+
* `kp-abc-123456789012.us-central1.run.app`). On Cloud Run, whose URLs are
|
|
185
|
+
* `<service>-<project number>.<region>.run.app` for every project, this is
|
|
186
|
+
* the form that admits only one project's services; under `run.app`, the
|
|
187
|
+
* tail must be one (digits only).
|
|
188
|
+
*/
|
|
189
|
+
export type PackEndpointHost =
|
|
190
|
+
| { readonly kind: 'exact'; readonly host: string }
|
|
191
|
+
| { readonly kind: 'suffix'; readonly suffix: string }
|
|
192
|
+
| { readonly kind: 'tail'; readonly tail: string; readonly domain: string };
|
|
193
|
+
|
|
194
|
+
const HOST_LABEL = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Cloud Run's shared domain. Under it, a `*.` entry, or a `*-` tail that
|
|
198
|
+
* isn't a project number, would admit any project's services.
|
|
199
|
+
*/
|
|
200
|
+
const CLOUD_RUN_DOMAIN = 'run.app';
|
|
201
|
+
|
|
202
|
+
function onCloudRun(domain: string): boolean {
|
|
203
|
+
return domain === CLOUD_RUN_DOMAIN || domain.endsWith(`.${CLOUD_RUN_DOMAIN}`);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
function cloudRunRefusal(item: string): Error {
|
|
207
|
+
return new Error(
|
|
208
|
+
`${PACK_ENDPOINT_HOSTS_VAR} refuses "${item}": ${CLOUD_RUN_DOMAIN} is Cloud Run's shared domain, whose URLs are \`<service>-<project number>.<region>.run.app\` in every project, so it would admit anyone's service. List the exact hosts, or name one project with \`*-<project number>.<region>.run.app\`.`,
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
function isHostName(name: string): boolean {
|
|
213
|
+
const labels = name.split('.');
|
|
214
|
+
return labels.length >= 2 && labels.every((label) => HOST_LABEL.test(label));
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Parse `KINDGI_PACK_ENDPOINT_HOSTS`: comma-separated host names, lowercase,
|
|
219
|
+
* with no scheme, port or path, each exact, `*.` and a domain, or `*-`, a tail
|
|
220
|
+
* and a domain (`*-123456789012.us-central1.run.app`); a domain has at least
|
|
221
|
+
* two labels. Unset or blank: none, so every endpoint is refused. Throws on
|
|
222
|
+
* anything else, so a typo fails at startup rather than refusing every
|
|
223
|
+
* endpoint later. Throws, too, on `*.`, or a `*-` tail that isn't a
|
|
224
|
+
* project number, with `run.app` or a domain under it
|
|
225
|
+
* (`*.us-central1.run.app`, `*-uc.a.run.app`): either would admit anyone's
|
|
226
|
+
* Cloud Run service.
|
|
227
|
+
*/
|
|
228
|
+
export function parsePackEndpointHosts(raw: string | undefined): readonly PackEndpointHost[] {
|
|
229
|
+
if (raw === undefined || raw.trim() === '') return [];
|
|
230
|
+
return raw.split(',').map((entry) => {
|
|
231
|
+
const item = entry.trim();
|
|
232
|
+
if (item.startsWith('*-')) {
|
|
233
|
+
const dot = item.indexOf('.');
|
|
234
|
+
const tail = dot < 0 ? '' : item.slice(2, dot);
|
|
235
|
+
const domain = dot < 0 ? '' : item.slice(dot + 1);
|
|
236
|
+
if (HOST_LABEL.test(tail) && isHostName(domain)) {
|
|
237
|
+
if (onCloudRun(domain) && !/^[0-9]+$/.test(tail)) throw cloudRunRefusal(item);
|
|
238
|
+
return { kind: 'tail' as const, tail, domain };
|
|
239
|
+
}
|
|
240
|
+
throw new Error(
|
|
241
|
+
`${PACK_ENDPOINT_HOSTS_VAR} takes host names, \`*.\` and a domain, or \`*-\`, a tail and a domain, comma-separated: lowercase, with no scheme, port or path (for example \`*-123456789012.us-central1.run.app\`). Got "${item}".`,
|
|
242
|
+
);
|
|
243
|
+
}
|
|
244
|
+
const suffix = item.startsWith('*.') ? item.slice(2) : undefined;
|
|
245
|
+
const name = suffix ?? item;
|
|
246
|
+
if (!isHostName(name)) {
|
|
247
|
+
throw new Error(
|
|
248
|
+
`${PACK_ENDPOINT_HOSTS_VAR} takes host names, \`*.\` and a domain, or \`*-\`, a tail and a domain, comma-separated: lowercase, with no scheme, port or path (for example \`*-123456789012.us-central1.run.app\`). Got "${item}".`,
|
|
249
|
+
);
|
|
250
|
+
}
|
|
251
|
+
if (suffix === undefined) return { kind: 'exact' as const, host: name };
|
|
252
|
+
if (onCloudRun(suffix)) throw cloudRunRefusal(item);
|
|
253
|
+
return { kind: 'suffix' as const, suffix };
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Whether `host` is one `KINDGI_PACK_ENDPOINT_HOSTS` allows (compared
|
|
259
|
+
* lowercase). Pass the URL's `hostname` (`new URL(endpoint).hostname`), not
|
|
260
|
+
* its `host`: a port makes it no host name, so it's refused.
|
|
261
|
+
*/
|
|
262
|
+
export function packEndpointHostAllowed(
|
|
263
|
+
host: string,
|
|
264
|
+
allowed: readonly PackEndpointHost[],
|
|
265
|
+
): boolean {
|
|
266
|
+
const name = host.toLowerCase();
|
|
267
|
+
return allowed.some((entry) => {
|
|
268
|
+
if (entry.kind === 'exact') return name === entry.host;
|
|
269
|
+
const domain = entry.kind === 'suffix' ? entry.suffix : entry.domain;
|
|
270
|
+
if (!name.endsWith(`.${domain}`)) return false;
|
|
271
|
+
const first = name.slice(0, name.length - domain.length - 1);
|
|
272
|
+
if (!HOST_LABEL.test(first)) return false;
|
|
273
|
+
return entry.kind === 'suffix' || first.endsWith(`-${entry.tail}`);
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
|
|
122
277
|
/**
|
|
123
278
|
* Parse `KINDGI_CORS_ORIGINS`: comma-separated exact origins
|
|
124
279
|
* (`https://app.example.com`, `http://localhost:3000`): a scheme, a host
|