Org Unit Schema
Felder
Org Unit Schema
Schema for organisational units (Abteilungen, Teams)
name
Name of the organisational unit
parentUnitId
Parent org unit ID for hierarchical structures
kind
Structural classification (ADR 0107). TEAM = operational unit (people work here, customers get assigned here); DEPARTMENT = Abteilung (mid-layer); DIVISION = Fachbereich (top-layer, carries cost-center/budget identity). Informational by default — actual permission behavior is driven by data_scope.* and parties.allowed_assignment_ou_kinds setting_overrides.
TEAMDEPARTMENTDIVISIONmanagerIds
User IDs of the unit managers/leads. Supports co-leadership (Doppelspitze): all entries are equal leads — each is a SpiceDB `manager` and a valid approver source (ADR 0144). Replaces the former single `managerId` field (ADR 0148).
description
Description of the organisational unit
costCenterId
FK auf cost_center. Wird von Positionen dieser OU geerbt; Positionen können übersteuern. Siehe ADR 0116a.
isActive
Whether this unit is currently active
excludeFromAutoSkills
ADR 0910 — members of this unit (and of its sub-units) receive NO automatic skill changes: no XP on ticket/task completion, no level change from a satisfaction survey. Manual assignment, grant-xp, certificates and LMS courses are unaffected. Fail-closed: membership in one flagged unit wins over any unflagged one. Written via the org-unit routes (allowlist in orgunit.routes.ts), like excludeFromDataScopes.
timeZone
IANA-Zeitzone des Unit-Standorts (z.B. "Europe/Berlin"). Wird vom Working-Time-Resolver für Schicht-/Zuschlag-Zeitfenster benutzt. Override gegenüber Tenant-Default, überschrieben durch employee_profile.timeZone.
holidayRegion
ISO 3166-2 Feiertagsregion der Unit (z.B. "DE-NW"). Override gegenüber tenant.settings.defaultHolidayRegion, überschrieben durch employee_profile.holidayRegion.
absenceApprovalConfig
ADR 0682 — Ob und durch wen Abwesenheitsanträge genehmigt werden. Jedes Feld ist optional; null/fehlend bedeutet „von der übergeordneten Ebene erben" (Mitarbeiter → Team → Abteilung → Bereich → Mandant → Standard).
mode
REQUIRED = Antrag muss genehmigt werden (Standard). NONE = Antrag wird beim Anlegen sofort genehmigt, es entsteht keine Genehmigungsanfrage.
REQUIREDNONEnullapproverMode
ORG_UNIT_LEAD = Leitung der Organisationseinheit (Standard, mit Kette über die übergeordnete Einheit). SPECIFIC_USERS = feste Personen. ROLE = alle Inhaber einer Rolle.
ORG_UNIT_LEADSPECIFIC_USERSROLEnullapproverUserIds
Nur bei approverMode=SPECIFIC_USERS: die genehmigenden Personen.
approverRoleSlug
Nur bei approverMode=ROLE: Slug der Rolle aus role_definitions (z. B. "hr").
allowSelfApprovalAsLead
Standard true. Darf eine Person ihren eigenen Antrag genehmigen, wenn sie selbst Leitung ihrer Einheit ist und weder Doppelspitze noch übergeordnete Leitung gepflegt sind? Gilt NUR für Leitungen — ein Mitarbeitender ohne gepflegte Teamleitung genehmigt sich dadurch nicht selbst.
fallbackApproverUserIds
Auffanglinie: greift, wenn die reguläre Kette keine erreichbaren Genehmiger liefert.
overtimeApprovalConfig
ADR 0709 — Ob eine Leitung die eigene Überstundenbuchung freigeben darf. Jedes Feld ist optional; null/fehlend bedeutet „von der übergeordneten Ebene erben" (Mitarbeiter → Team → Abteilung → Bereich → Mandant → Standard).
allowSelfApprovalAsLead
Standard FALSE (anders als bei der Urlaubsgenehmigung — ohne ausdrückliche Einstellung bleibt es beim 4-Augen-Prinzip). Darf eine Person ihre eigene Überstundenbuchung freigeben, wenn sie Leitung einer ihrer Einheiten ist? Gilt NUR für Leitungen; wer die Berechtigung overtime_approve ohne Leitungsfunktion hat, kann sich dadurch nicht selbst freigeben. Anders als beim Urlaub greift die Regel auch dann, wenn eine zweite oder übergeordnete Leitung verfügbar wäre.
dailyClosingConfig
Configuration for daily closing (Tagesabschluss) requirement
enabled
Whether daily closing is required for this org unit
deadlineTime
Deadline for daily closing (HH:MM, e.g. 18:00)
reminderMinutesBefore
Minutes before deadline to send reminder
excludeWeekends
Whether weekends are excluded from daily closing requirement
staffingRules
Minimum staffing rules for this org unit
id
Unique rule identifier (UUIDv7)
ruleType
Type of staffing rule
MIN_HEADCOUNTMIN_HEADCOUNT_WITH_SKILLminCount
Minimum number of employees required
skillId
Required skill (for MIN_HEADCOUNT_WITH_SKILL)
minSkillLevel
Minimum proficiency level for the required skill
BEGINNERINTERMEDIATEADVANCEDEXPERTdaysOfWeek
ISO weekdays (1=Mon … 7=Sun), defaults to Mon-Fri
isActive
Whether this rule is currently active
skillTargets
Strategic skill staffing targets for this org unit (e.g. "≥2 Mitarbeiter müssen M365 Administration auf Experten-Level beherrschen"). Targets are NOT inherited downward — they apply only to the OU they are defined on. However, members of sub-OUs DO contribute to the target count when evaluating coverage (transitive members count). Used by the Skill-Matrix to flag Lücken. Distinct from staffingRules, which model shift-time coverage (timeWindow/daysOfWeek). See ADR 0137.
id
Unique target identifier (UUIDv7)
skillId
FK to skill_definitions._id (leaf or parent skill)
minHolders
Minimum number of employees that must meet the target
minLevel
Minimum proficiency tier required. NULL means any level counts (and is implied for binary skills, which have no level).
BEGINNERINTERMEDIATEADVANCEDEXPERTnotes
Free-text rationale / context for this target
Keine Felder passen zum Filter.
Standard-Endpoints
Diese Resource folgt dem generischen CRUD-Vertrag der Plattform. Lesen Sie die Konventionen für Pagination, Idempotenz, Optimistic Locking und Audit. Die wichtigsten Endpoints:
GET /api/v1/org_units— Liste, paginiert + filterbarGET /api/v1/org_units/<id>— Einzelne EntityPOST /api/v1/org_units— AnlegenPATCH /api/v1/org_units/<id>— Teil-UpdateDELETE /api/v1/org_units/<id>— Soft-DeleteGET /api/v1/org_units/<id>/timeline— Audit + Aktivitäten