mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-22 23:42:16 +00:00
# Which Problems Are Solved - Logo and heading overlap on login pages due to a -mb-4 negative margin on the logo container - The /login route returns a 500 when `listSessions` fails (e.g. stale session cookies), because loadSessions has no error handling. - The proxy logs `"fetch() returned undefined"` because `fetchIframeOrigins` returns undefined, which lru-cache's forceFetch treats as a fetch failure. # How the Problems Are Solved - Remove `-mb-4` from the logo container in DynamicTheme. - Wrap `loadSessions` in a try/catch — failures fall through as empty sessions instead of crashing. - Return `null` instead of `undefined` from `fetchIframeOrigins` so lru-cache caches it normally. --------- Co-authored-by: Livio Spring <[email protected]> Co-authored-by: conblem <[email protected]>
114 lines
4.7 KiB
TypeScript
114 lines
4.7 KiB
TypeScript
declare namespace NodeJS {
|
|
interface ProcessEnv {
|
|
// Allow any environment variable that matches the pattern
|
|
[key: `${string}_AUDIENCE`]: string; // The system api url
|
|
[key: `${string}_SYSTEM_USER_ID`]: string; // The service account id
|
|
[key: `${string}_SYSTEM_USER_PRIVATE_KEY`]: string; // The service account private key
|
|
[key: `${string}_SYSTEM_USER_PRIVATE_KEY_FILE`]: string; // The service account private key file path
|
|
|
|
AUDIENCE: string; // The fallback system api url
|
|
SYSTEM_USER_ID: string; // The fallback service account id
|
|
SYSTEM_USER_PRIVATE_KEY: string; // The fallback service account private key
|
|
SYSTEM_USER_PRIVATE_KEY_FILE: string; // The fallback service account private key file path
|
|
|
|
/**
|
|
* The Zitadel API url
|
|
*/
|
|
ZITADEL_API_URL: string;
|
|
|
|
/**
|
|
* The service account token
|
|
* If ZITADEL_SERVICE_USER_TOKEN is set, its value is used.
|
|
* If ZITADEL_SERVICE_USER_TOKEN is not set but ZITADEL_SERVICE_USER_TOKEN_FILE is set, the application blocks until the file is created.
|
|
* As soon as the file exists, its content is read and ZITADEL_SERVICE_USER_TOKEN is set.
|
|
*/
|
|
ZITADEL_SERVICE_USER_TOKEN: string;
|
|
|
|
/**
|
|
* Path to a private key file for login client JWT authentication.
|
|
* When set, the login service reads this key and signs JWTs with a
|
|
* hardcoded subject of "login-client".
|
|
* AUDIENCE defaults to ZITADEL_API_URL if not explicitly set.
|
|
*/
|
|
ZITADEL_LOGINCLIENT_KEYFILE?: string;
|
|
|
|
/**
|
|
* Optional: wheter a user must have verified email
|
|
*/
|
|
EMAIL_VERIFICATION: string;
|
|
|
|
/**
|
|
* Optional: custom request headers to be added to every request
|
|
* Split by comma, key value pairs separated by colon
|
|
* For example: to call the Zitadel API at an internal address, you can set:
|
|
* `CUSTOM_REQUEST_HEADERS=Host:http://zitadel-internal:8080`
|
|
*/
|
|
CUSTOM_REQUEST_HEADERS?: string;
|
|
|
|
/**
|
|
* The base path the app is served from, e.g. /ui/v2/login
|
|
*/
|
|
NEXT_PUBLIC_BASE_PATH: string;
|
|
|
|
/**
|
|
* Optional: The application name shown in the login and invite emails
|
|
*/
|
|
NEXT_PUBLIC_APPLICATION_NAME?: string;
|
|
|
|
/**
|
|
* Optional: override the redirect URI after successful login.
|
|
* If the value starts with "/", it will be used as a relative path and prepended with the host of the request (useful for rewrites).
|
|
* Otherwise, it will use the value as an absolute redirect URI.
|
|
* Takes precedence over organization settings.
|
|
*/
|
|
DEFAULT_REDIRECT_URI?: string;
|
|
|
|
/**
|
|
* Optional: Comma-separated list of additional allowed origins for Server Actions.
|
|
* Origins should include the protocol, e.g., 'https://zitadel.com,http://localhost:3000'.
|
|
* If not set, it defaults to an empty list, allowing only same-origin requests.
|
|
*/
|
|
SERVER_ACTION_ALLOWED_ORIGINS?: string;
|
|
|
|
/**
|
|
* Optional: Enable automatic code submission on page load.
|
|
* Set to "true" to auto-submit verification codes (e.g. email verification, Email OTP).
|
|
* Default behavior (undefined) requires users to click a Submit button,
|
|
* which is safer for environments with enterprise email link scanners.
|
|
*/
|
|
NEXT_PUBLIC_AUTO_SUBMIT_CODE?: string;
|
|
|
|
/**
|
|
* Optional: Enable the SWR in-memory cache for API requests globally.
|
|
* Defaults to true. Set to "false" to disable completely.
|
|
*/
|
|
API_CACHE_ENABLED?: string;
|
|
|
|
/**
|
|
* Optional: JSON string to configure the cache TTLs (in minutes) and size limits for specific backend API routes or global fallbacks.
|
|
* Example: '{"defaultMinutes": 15, "longMinutes": 60, "maxSize": 200, "getBrandingSettings": 120}'
|
|
*
|
|
* Properties:
|
|
* - \`defaultMinutes\`: The globally utilized default TTL in minutes (falls back to 15 if not set).
|
|
* - \`longMinutes\`: The TTL utilized string for long-cached routes, like branding/translation (falls back to 60 if not set).
|
|
* - \`maxSize\`: Maximum number of entries the in-memory cache may hold. Oldest entries are evicted when capacity is reached (defaults to 100).
|
|
* - \`[route_name]\`: Explicit overrides per specific API method (e.g., \`getHostedLoginTranslation\`).
|
|
*/
|
|
API_CACHE_CONFIG?: string;
|
|
|
|
/**
|
|
* Optional: Disable the proxy's runtime CSP fetch from the ZITADEL API.
|
|
* Defaults to true (enabled). Set to "false" to skip fetching iframe origins
|
|
* and use a restrictive default CSP instead.
|
|
*/
|
|
CSP_FETCH_ENABLED?: string;
|
|
|
|
/**
|
|
* Optional: Disable OpenTelemetry instrumentation.
|
|
* Set to "true" to bypass OTEL initialization.
|
|
* In local development (NODE_ENV=development), it is disabled by default unless explicitly set to "false".
|
|
*/
|
|
OTEL_SDK_DISABLED?: string;
|
|
}
|
|
}
|