Einstellungen aktualisieren
Returns the full settings map after the update (same shape as GET).
Authorizations
Bearer-Token, erhalten über den Login-Endpunkt (POST /rest/login).
Body
Validation for the bulk settings update.
export_format is validated against {@see ExportFormat}, the single source of
truth for export formats. The previous hardcoded list (csv,lodas,zucchetti)
predates that enum: lodas was the C++/stamp.json spelling for DATEV LODAS,
which the enum encodes as datev ({@see ExportFormat::DatevLodas}). The list
was therefore both too narrow (no csv_extended, datev_lug, agenda,
projects) and inconsistent with every other consumer of the format value
(ExportController resolves ?format= through the enum).
Decision: accept the enum values, and keep the legacy spelling working by
normalizing lodas to datev in {@see prepareForValidation()} instead of
rejecting it. Old clients (and tenants whose value was imported from
stamp.json as lodas) keep saving successfully, while every new write stores
the canonical enum value. Stored legacy lodas values are read-only strings
(Tenant::exportFormat()) and are intentionally left untouched — no data
migration is performed here.
language is a deliberate subset of {@see Locale}: only the two locales the
tenant-wide default is offered for today. It references the enum cases so a
renamed/removed locale breaks at compile time instead of silently drifting.
255de, en 500dec_10, dec_6, hex_6, hex_14 2552020^\d+$^\d+$1 <= x <= 12010 <= x <= 1122 <= x <= 245 <= x <= 76 <= x <= 154 <= x <= 524 <= x <= 8^(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$^(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$0, 1 0, 1 anteilig, voll_mit_hinweis, zurueckhalten ^(inbox|push|email)(,(inbox|push|email))*$0, 1 Registry of all file-based export formats. Adding a new export (e.g. Agenda Lohn und Gehalt) means: implement ExportProvider, add a case here, add the i18n label in the frontend.
csv, csv_extended, datev, datev_lug, agenda, zucchetti, projects Automatic minimum-pause deduction mode for roster days (tenant setting roster.auto_pause_mode).
off, legal, planned, max_of_both 0, 1 1 <= x <= 1440off, shift_start, shift_bounds off, 5, 10, 15 employer, nearest 0, 1 0 <= x <= 14400, 1 1 <= x <= 521 <= x <= 1000, 1 0, 1 1 <= x <= 336flags, rules