mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-25 13:27:52 +00:00
# Which Problems Are Solved
When Postgres was not ready when the API was started, the API failed
immediately.
This made task orchestration hard, especially in a platform agnostic
way:
- The current health check in the Nx target `@zitadel/api:prod` uses the
timeout command, which is not installed on all platforms and behaves
unpredictably
- The current health check in the Nx target `@zitadel/api:prod` requires
the DB to have been started using `@zitadel/zitadel:db`
# How the Problems Are Solved
- Additional configuration option `Database.Postgres.AwaitInitialConn`
is added and defaults to *0m* for backwards compatibility.
- If a duration is configured, the API retries to ping the database
until it succeeds
- The API sleeps for a second between each ping.
- It emits an info-level log with the error on each try.
- When the configured duration times out before the ping is successful,
the error is returned and the command exits with a failure code.
- When the ping succeeds within the configured duration, the API goes on
with the init, setup or start phase.
# Additional Context
- Relates to internally reported problems with the current DB health
check command
[here](https://zitadel.slack.com/archives/C07EUL5H83A/p1759915009839269?thread_ts=1759912259.410789&cid=C07EUL5H83A)
and
[here](https://zitadel.slack.com/archives/C07EUL5H83A/p1759918324246249?thread_ts=1759912259.410789&cid=C07EUL5H83A).
(cherry picked from commit 7ba6870baf)
27 lines
714 B
YAML
27 lines
714 B
YAML
ExternalSecure: false
|
|
TLS.Enabled: false
|
|
Database.Postgres:
|
|
Database: zitadel
|
|
AwaitInitialConn: 5m
|
|
MaxOpenConns: 20
|
|
MaxIdleConns: 20
|
|
ConnMaxLifetime: 60m
|
|
ConnMaxIdleTime: 10m
|
|
FirstInstance:
|
|
LoginClientPatPath: login-client.pat
|
|
PatPath: admin.pat
|
|
InstanceName: ZITADEL
|
|
DefaultLanguage: en
|
|
Org:
|
|
LoginClient:
|
|
Machine:
|
|
Username: login-client
|
|
Name: Automatically Initialized IAM Login Client
|
|
Pat.ExpirationDate: 2099-01-01T00:00:00Z
|
|
Machine:
|
|
Machine:
|
|
Username: admin
|
|
Name: Automatically Initialized IAM admin Client
|
|
Pat.ExpirationDate: 2099-01-01T00:00:00Z
|
|
DefaultInstance.Features.LoginV2.BaseURI: http://localhost:3000/ui/v2/login
|