Skip to main content
Every module can be enabled or disabled per installation. Flags are read from the environment:
The flag name is upper-snake-cased from the flag key — job-distribution becomes FEATURE_JOB_DISTRIBUTION.

The flags

Resolution

1

Environment variable

FEATURE_<NAME>true or 1 enables, anything else disables. The env value is authoritative when present.
2

The default

Every module flag defaults on, except multi-legal-entity.
A single-employer installation keeps one invisible default legal entity and must never see the entity-management UI. Defaulting it on would surface an empty, confusing surface on every installation that does not need it. Turn it on deliberately, per installation, when the customer genuinely employs through more than one Rechtsträger. Enabling the flag does not migrate anything — existing records stay on the default entity until you assign them. See Legal entities.

Flags versus menu configuration

Two different tools: Use the flag when the customer does not have the module. Use menu configuration when they have it but do not want it in the way.

Turning a flag off on a live installation

Disabling a module hides its surfaces; it does not delete its data. Scheduled jobs for a disabled module stop, which is usually what you want — but check whether anything is mid-flight first. Disabling recruitment with open Stellenmeldungen, for instance, stops the sync that advances their embargo states.

Reading flags in code

getAllFeatureFlags() returns the resolved state of every flag — used by the diagnostics surface, and useful when reproducing a customer’s configuration.