Skip to main content

Technical Advisory 10008

Date and Version​

Versions: 2.44.0, 2.43 >= 2.43.6, 2.42 > 2.42.12

Date: 2024-01-25

Description​

The versions mentioned above introduce a new flag --init-projections to zitadel setup commands (setup, start-from-setup, start-from-init)

This flag enables prefilling of newly added or changed projections (database tables) during setup phase instead of start phase which are used to query data, for example users.

This new feature adds the following fields to the setup configuration, previously only used in start-command:

  • AssetStore: Storage for assets like user avatar, organization logo, icon, font, etc.
  • OIDC
  • Login
  • WebAuthNName
  • Telemetry
  • SystemAPIUsers

If you use different configurations on setup and start and have overwritten previously mentioned configurations please make sure to also add them to the configuration provided to ZITADEL setup command.

Statement​

Filling of projections can get time-consuming as your system grows and this can cause downtime of self-hosted installations of ZITADEL because queries first need to ensure data consistency.

Before this release, this step was executed after the start of ZITADEL and therefore lead to inconsistent retrieval of data until the projections were up-to-date.

Mitigation​

Enable the flag (--init-projections=true) in setup phase and make sure the previous deployment of ZITADEL remains active until the new revision started properly.

Note that the flag is enabled by default starting with the following versions:

  • >=2.49.0
  • 2.48.x: >=2.48.2
  • 2.47.x: >=2.47.7
  • 2.46.x: >=2.46.4
  • 2.45.x: >=2.45.4
  • 2.44.x: >=2.44.6
  • 2.43.x: >=2.43.10
  • 2.42.x: >=2.42.16

Impact​

Decreases downtime of starting new revisions with new or changed projections dramatically.