|
|
|
@@ -883,7 +883,7 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
title="Authentication and password fields",
|
|
|
|
|
summary="Understand which credentials are used for interactive sign-in, initial account enrollment, administrative re-authorization, and automation.",
|
|
|
|
|
body=(
|
|
|
|
|
"The sign-in email identifies the account and the password authenticates only that account. Initial passwords entered by administrators are transmitted only for account creation; leaving the field empty asks the server to generate a one-time temporary password. Requiring a password change prevents that temporary credential from becoming the long-term credential. Current-password prompts re-authorize a sensitive action and never target the selected user's password. The automation API key in local settings is used only when no interactive browser session token is available; it should be a narrowly scoped, revocable key and must not be shared with other users. Generated passwords are not applied until Use password is selected."
|
|
|
|
|
"The sign-in email identifies the account and the password authenticates only that account. Initial passwords entered by administrators are transmitted only for account creation; leaving the field empty asks the server to generate an initial password disclosed once. The password-change-required flag is currently advisory metadata: the self-service password-change workflow and server-side enforcement are not implemented. Do not treat a generated initial password as expiring, single-use for sign-in, or automatically replaced because this flag is set. Current-password prompts re-authorize a sensitive action and never target the selected user's password. Applying an automation API key in local settings explicitly selects that key's identity. Interactive sign-in and sign-out remove the stored key; automation keys should be narrowly scoped, revocable, and never shared with other users. Generated passwords are not applied until Use password is selected."
|
|
|
|
|
),
|
|
|
|
|
layer="always",
|
|
|
|
|
documentation_types=("admin", "user"),
|
|
|
|
@@ -900,7 +900,7 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"title": "Authentifizierungs- und Passwortfelder",
|
|
|
|
|
"summary": "Einordnen, welche Zugangsdaten für die interaktive Anmeldung, die erste Kontoeinrichtung, die erneute administrative Autorisierung und Automatisierung verwendet werden.",
|
|
|
|
|
"body": (
|
|
|
|
|
"Die Anmelde-E-Mail identifiziert das Konto; das Passwort authentifiziert ausschließlich dieses Konto. Von Administrierenden eingegebene Anfangspasswörter werden nur zur Kontoerstellung übertragen. Bleibt das Feld leer, erzeugt der Server ein einmaliges temporäres Passwort. Die Pflicht zum Passwortwechsel verhindert, dass diese temporäre Zugangsdaten dauerhaft verwendet werden. Die Abfrage des aktuellen Passworts autorisiert eine sensible Aktion erneut und meint niemals das Passwort der ausgewählten Person. Der Automatisierungs-API-Schlüssel in den lokalen Einstellungen wird nur verwendet, wenn kein interaktives Browser-Sitzungstoken verfügbar ist; er sollte eng begrenzt, widerrufbar und nicht mit anderen Personen geteilt sein. Generierte Passwörter werden erst mit „Passwort verwenden“ übernommen."
|
|
|
|
|
"Die Anmelde-E-Mail identifiziert das Konto; das Passwort authentifiziert ausschließlich dieses Konto. Von Administrierenden eingegebene Anfangspasswörter werden nur zur Kontoerstellung übertragen. Bleibt das Feld leer, erzeugt der Server ein einmal angezeigtes Anfangspasswort. Das Kennzeichen für einen erforderlichen Passwortwechsel ist derzeit nur ein Hinweis in den Metadaten: Der selbstständige Passwortwechsel und die serverseitige Durchsetzung sind noch nicht umgesetzt. Ein generiertes Anfangspasswort läuft durch dieses Kennzeichen weder ab noch ist es nur einmal zur Anmeldung verwendbar oder wird automatisch ersetzt. Die Abfrage des aktuellen Passworts autorisiert eine sensible Aktion erneut und meint niemals das Passwort der ausgewählten Person. Das Anwenden eines Automatisierungs-API-Schlüssels in den lokalen Einstellungen wählt ausdrücklich dessen Identität. Interaktives An- und Abmelden entfernt den gespeicherten Schlüssel. Automatisierungsschlüssel sollen eng begrenzt, widerrufbar und niemals mit anderen Personen geteilt sein. Generierte Passwörter werden erst mit „Passwort verwenden“ übernommen."
|
|
|
|
|
),
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
@@ -920,7 +920,7 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
id="access.workflow.grant-user-access",
|
|
|
|
|
title="Grant a person access",
|
|
|
|
|
summary="Use the access administration screens to create or update a tenant membership, place the person in groups, and assign only the roles they need.",
|
|
|
|
|
body="The common path is to find or create the person, review their existing membership, then use groups and roles to grant access. If a role or group is not available, the active governance rules or your own delegation limit may block the change.",
|
|
|
|
|
body="The common path is to find or create the person, review their existing membership, then use groups and roles to grant access. If a role or group is not available, the active governance rules or your own delegation limit may block the change. Opening lists and creation or edit dialogs does not save changes. If an authorized section reports a load failure, reload after deployment and report the frontend diagnostic; do not broaden permissions or recreate records to work around a render failure.",
|
|
|
|
|
layer="configured",
|
|
|
|
|
documentation_types=("admin", "user"),
|
|
|
|
|
audience=("tenant_admin", "access_admin"),
|
|
|
|
@@ -961,6 +961,7 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"nur die benötigten Rollen vergeben."
|
|
|
|
|
),
|
|
|
|
|
"body": (
|
|
|
|
|
"Das Öffnen von Listen sowie Anlage- oder Bearbeitungsdialogen speichert keine Änderungen. Meldet ein berechtigter Bereich einen Ladefehler, laden Sie nach der Bereitstellung neu und melden Sie die Oberflächendiagnose; erweitern Sie keine Berechtigungen und legen Sie keine Datensätze erneut an, um einen Darstellungsfehler zu umgehen. "
|
|
|
|
|
"Suchen Sie die Person oder legen Sie sie an, prüfen Sie ihre vorhandene Mitgliedschaft und gewähren Sie den Zugriff "
|
|
|
|
|
"anschließend über Gruppen und Rollen. Ist eine Rolle oder Gruppe nicht verfügbar, können die geltenden "
|
|
|
|
|
"Governance-Regeln oder die eigene Delegationsgrenze die Änderung blockieren."
|
|
|
|
@@ -1220,6 +1221,7 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"Tenant API keys are non-interactive automation credentials owned by an existing tenant user. Select an owner whose current effective permissions contain every requested scope; authorization continues to intersect the stored key scopes with that owner's current permissions, so removing the owner's access also narrows the key. Set the shortest practical expiry and grant only the scopes the client needs. "
|
|
|
|
|
"The secret is displayed once after creation. GovOPlaN then retains only its one-way hash and visible prefix, so administrators cannot display or recover it later. Record the value directly in an approved external secret manager and close the one-time dialog only after custody is confirmed. "
|
|
|
|
|
"Revocation is immediate and irreversible for that key: existing clients lose access and must be configured with a newly issued credential. Inspect and audit views expose metadata, scopes, timestamps, and the non-authenticating prefix but never secret material."
|
|
|
|
|
" Clients must send API keys through Authorization: Bearer or X-API-Key, never the browser session cookie; cached authentication does not relax this rule. Effective key permissions remain tenant-only: module wildcards expand to currently registered concrete tenant permissions, never instance-wide permissions or unknown wildcard grants. Existing concrete tenant grants and their compatibility aliases remain valid."
|
|
|
|
|
),
|
|
|
|
|
layer="configured",
|
|
|
|
|
documentation_types=("admin", "user"),
|
|
|
|
@@ -1252,7 +1254,7 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"de": {
|
|
|
|
|
"title": "Mandanten-API-Schlüssel erstellen und widerrufen",
|
|
|
|
|
"summary": "Geben Sie ein einmal sichtbares Automatisierungsgeheimnis für eine verantwortliche Person aus, begrenzen Sie Umfang und Laufzeit und widerrufen Sie den Schlüssel, sobald der Zugriff enden muss.",
|
|
|
|
|
"body": "Mandanten-API-Schlüssel sind nicht interaktive Automatisierungszugänge einer vorhandenen Person im Mandanten. Wählen Sie eine verantwortliche Person, deren aktuelle wirksame Berechtigungen alle gewünschten Scopes enthalten. Bei jeder Nutzung werden die gespeicherten Schlüssel-Scopes weiterhin mit den aktuellen Berechtigungen dieser Person geschnitten; ein Entzug ihrer Berechtigungen schränkt daher auch den Schlüssel ein. Legen Sie die kürzeste praktikable Laufzeit fest und vergeben Sie nur die Scopes, die der Client tatsächlich benötigt. Das Geheimnis wird nach der Erstellung genau einmal angezeigt. Danach speichert GovOPlaN nur einen Einweg-Hash und das sichtbare, nicht zur Anmeldung geeignete Präfix; eine spätere Anzeige oder Wiederherstellung ist nicht möglich. Übertragen Sie den Wert unmittelbar in einen freigegebenen externen Geheimnismanager und schließen Sie den Einmal-Dialog erst nach bestätigter Verwahrung. Ein Widerruf wirkt sofort und kann für diesen Schlüssel nicht rückgängig gemacht werden: Bestehende Clients verlieren den Zugriff und benötigen einen neu ausgegebenen Zugang. Detail- und Auditansichten zeigen Metadaten, Scopes, Zeitpunkte und das Präfix, aber niemals das Geheimnis.",
|
|
|
|
|
"body": "Mandanten-API-Schlüssel sind nicht interaktive Automatisierungszugänge einer vorhandenen Person im Mandanten. Wählen Sie eine verantwortliche Person, deren aktuelle wirksame Berechtigungen alle gewünschten Scopes enthalten. Bei jeder Nutzung werden die gespeicherten Schlüssel-Scopes weiterhin mit den aktuellen Berechtigungen dieser Person geschnitten; ein Entzug ihrer Berechtigungen schränkt daher auch den Schlüssel ein. Legen Sie die kürzeste praktikable Laufzeit fest und vergeben Sie nur die Scopes, die der Client tatsächlich benötigt. Das Geheimnis wird nach der Erstellung genau einmal angezeigt. Danach speichert GovOPlaN nur einen Einweg-Hash und das sichtbare, nicht zur Anmeldung geeignete Präfix; eine spätere Anzeige oder Wiederherstellung ist nicht möglich. Übertragen Sie den Wert unmittelbar in einen freigegebenen externen Geheimnismanager und schließen Sie den Einmal-Dialog erst nach bestätigter Verwahrung. Ein Widerruf wirkt sofort und kann für diesen Schlüssel nicht rückgängig gemacht werden: Bestehende Clients verlieren den Zugriff und benötigen einen neu ausgegebenen Zugang. Detail- und Auditansichten zeigen Metadaten, Scopes, Zeitpunkte und das Präfix, aber niemals das Geheimnis. Clients müssen API-Schlüssel über Authorization: Bearer oder X-API-Key senden, niemals über das Browsersitzungs-Cookie; zwischengespeicherte Authentifizierung lockert diese Regel nicht. Wirksame Schlüsselrechte bleiben mandantenbezogen: Modulplatzhalter werden nur in aktuell registrierte konkrete Mandantenberechtigungen aufgelöst, niemals in instanzweite Berechtigungen oder unbekannte Platzhalterrechte. Vorhandene konkrete Mandantenrechte und ihre Kompatibilitätsnamen bleiben gültig.",
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
metadata={
|
|
|
|
@@ -1303,6 +1305,7 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
summary="Reusable credential envelopes keep secrets write-only while administrators constrain which scopes, modules, and servers may use them.",
|
|
|
|
|
body=(
|
|
|
|
|
"A reusable credential envelope stores a secret behind the Access boundary and never returns the configured secret through the API. Choose the credential type before entering the secret; changing the type requires a replacement secret. When editing, an empty secret field retains the current value, while Remove configured secret clears it on save and leaves dependent connections unable to authenticate until a replacement is supplied. "
|
|
|
|
|
"Server reference labels are resolved when the editor opens. Failed saves show the error inside the dialog and retain your entered draft for an explicit retry; a pending save prevents duplicate submission and dismissal. The clear-secret switch aligns with the adjacent input control, including wrapped labels and narrow layouts. "
|
|
|
|
|
"The module and server lists are restrictions: an empty list means every module or server already permitted by the selected scope. Visible to lower scopes makes the envelope selectable from child scopes but does not bypass its module, server, or authorization limits. Deactivating keeps the configuration for review but blocks authentication. Deleting is irreversible in GovOPlaN, cannot recover the secret, and causes every referencing connection to stop authenticating. Review dependent connections and record the external secret-manager owner before clearing or deleting a credential."
|
|
|
|
|
),
|
|
|
|
|
layer="configured",
|
|
|
|
@@ -1340,7 +1343,7 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"de": {
|
|
|
|
|
"title": "Wiederverwendbare Zugangsdaten sicher verwalten",
|
|
|
|
|
"summary": "Wiederverwendbare Zugangsdaten geben Geheimnisse nicht wieder aus und begrenzen ihre Nutzung auf freigegebene Ebenen, Module und Server.",
|
|
|
|
|
"body": "Ein Eintrag für wiederverwendbare Zugangsdaten speichert ein Geheimnis hinter der Access-Sicherheitsgrenze; das konfigurierte Geheimnis wird über die API niemals zurückgegeben. Wählen Sie den Zugangstyp vor der Eingabe. Eine Typänderung erfordert ein neues Geheimnis. Beim Bearbeiten behält ein leeres Geheimnisfeld den vorhandenen Wert. Mit „Konfiguriertes Geheimnis entfernen“ wird er beim Speichern gelöscht; abhängige Verbindungen können sich erst nach Hinterlegung eines Ersatzes wieder anmelden. Die Modul- und Serverlisten sind Einschränkungen: Eine leere Liste erlaubt alle Module beziehungsweise Server, die auf der gewählten Ebene bereits zulässig sind. „Für tiefere Ebenen sichtbar“ macht den Eintrag in Kindebenen auswählbar, umgeht aber weder Modul- und Servergrenzen noch Berechtigungen. Eine Deaktivierung erhält die Konfiguration zur Prüfung, verhindert jedoch die Anmeldung. Das Löschen kann in GovOPlaN nicht rückgängig gemacht werden, stellt das Geheimnis nicht wieder her und unterbricht die Anmeldung aller referenzierenden Verbindungen. Prüfen Sie deshalb vor dem Entfernen oder Löschen die abhängigen Verbindungen und die Zuständigkeit im externen Geheimnismanager.",
|
|
|
|
|
"body": "Beim Öffnen des Editors werden die Serverbezeichnungen aufgelöst. Ein fehlgeschlagenes Speichern zeigt den Fehler im Dialog und erhält Ihre Eingaben für einen ausdrücklichen erneuten Versuch. Während des Speicherns sind erneutes Absenden und Schließen gesperrt. Der Schalter zum Entfernen des Geheimnisses richtet sich auch bei mehrzeiligen Beschriftungen und schmalen Ansichten am benachbarten Eingabefeld aus. Ein Eintrag für wiederverwendbare Zugangsdaten speichert ein Geheimnis hinter der Access-Sicherheitsgrenze; das konfigurierte Geheimnis wird über die API niemals zurückgegeben. Wählen Sie den Zugangstyp vor der Eingabe. Eine Typänderung erfordert ein neues Geheimnis. Beim Bearbeiten behält ein leeres Geheimnisfeld den vorhandenen Wert. Mit „Konfiguriertes Geheimnis entfernen“ wird er beim Speichern gelöscht; abhängige Verbindungen können sich erst nach Hinterlegung eines Ersatzes wieder anmelden. Die Modul- und Serverlisten sind Einschränkungen: Eine leere Liste erlaubt alle Module beziehungsweise Server, die auf der gewählten Ebene bereits zulässig sind. „Für tiefere Ebenen sichtbar“ macht den Eintrag in Kindebenen auswählbar, umgeht aber weder Modul- und Servergrenzen noch Berechtigungen. Eine Deaktivierung erhält die Konfiguration zur Prüfung, verhindert jedoch die Anmeldung. Das Löschen kann in GovOPlaN nicht rückgängig gemacht werden, stellt das Geheimnis nicht wieder her und unterbricht die Anmeldung aller referenzierenden Verbindungen. Prüfen Sie deshalb vor dem Entfernen oder Löschen die abhängigen Verbindungen und die Zuständigkeit im externen Geheimnismanager.",
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
metadata={
|
|
|
|
@@ -1401,6 +1404,7 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"Service accounts are tenant-owned automation principals. The account itself has no password or interactive session. Administrators first define its scope ceiling, then create one or more independently revocable credentials. "
|
|
|
|
|
"A credential secret is disclosed once and only its hash and prefix remain in GovOPlaN. Runtime authorization is always the intersection of the credential scopes and the service account's current ceiling, so lowering the ceiling or deactivating the account takes effect immediately. "
|
|
|
|
|
"Rotation creates the replacement and revokes the previous credential in one transaction. Retirement disables the backing principal and revokes every active credential. Every credential mutation requires the current service-account revision; a stale browser must reload instead of overwriting a concurrent change."
|
|
|
|
|
" Authentication keeps service-account provenance and rechecks the current ceiling and lifecycle on every request, without using interactive principal summaries or membership roles. Older credentials cannot regain removed permissions through a cached role assignment. Service-account credentials use explicit authorization headers and remain tenant-only even if their stored grant contains a broader wildcard or system permission."
|
|
|
|
|
),
|
|
|
|
|
layer="configured",
|
|
|
|
|
documentation_types=("admin", "user"),
|
|
|
|
@@ -1436,7 +1440,7 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"de": {
|
|
|
|
|
"title": "Dienstkonten und ihre Zugangsdaten verwalten",
|
|
|
|
|
"summary": "Erstellen Sie nicht interaktive Automatisierungsidentitäten, begrenzen Sie deren aktuellen Berechtigungsrahmen und rotieren Sie einmal sichtbare Zugangsdaten ohne menschliche Anmeldung.",
|
|
|
|
|
"body": "Dienstkonten sind mandanteneigene Automatisierungsidentitäten ohne Passwort und ohne interaktive Sitzung. Administrierende legen zuerst den Berechtigungsrahmen des Kontos fest und erstellen danach eine oder mehrere unabhängig widerrufbare Zugangsdaten. Jede Zugangsdaten-Berechtigung muss innerhalb dieses Rahmens liegen. Bei jeder Anfrage wird sie erneut mit dem aktuellen Rahmen geschnitten; eine Verkleinerung des Rahmens oder eine Deaktivierung wirkt deshalb sofort. Das Geheimnis wird nur bei Erstellung oder Rotation einmal angezeigt. GovOPlaN speichert anschließend ausschließlich einen Einweg-Hash und das sichtbare Präfix; das Geheimnis kann weder angezeigt noch wiederhergestellt werden. Eine Rotation erzeugt in einer Transaktion den Ersatz und widerruft die vorherigen Zugangsdaten. Ein Widerruf unterbricht bestehende Clients sofort. Die Deaktivierung stoppt alle Anmeldungen des Dienstkontos, kann aber wieder aufgehoben werden. Das endgültige Stilllegen deaktiviert die zugrunde liegende Identität und widerruft sämtliche aktiven Zugangsdaten. Jede Änderung verwendet die aktuelle Revision des Dienstkontos; bei einem Konflikt muss die Ansicht neu geladen werden, damit keine parallele Änderung überschrieben wird.",
|
|
|
|
|
"body": "Dienstkonten sind mandanteneigene Automatisierungsidentitäten ohne Passwort und ohne interaktive Sitzung. Administrierende legen zuerst den Berechtigungsrahmen des Kontos fest und erstellen danach eine oder mehrere unabhängig widerrufbare Zugangsdaten. Jede Zugangsdaten-Berechtigung muss innerhalb dieses Rahmens liegen. Bei jeder Anfrage wird sie erneut mit dem aktuellen Rahmen geschnitten; eine Verkleinerung des Rahmens oder eine Deaktivierung wirkt deshalb sofort. Das Geheimnis wird nur bei Erstellung oder Rotation einmal angezeigt. GovOPlaN speichert anschließend ausschließlich einen Einweg-Hash und das sichtbare Präfix; das Geheimnis kann weder angezeigt noch wiederhergestellt werden. Eine Rotation erzeugt in einer Transaktion den Ersatz und widerruft die vorherigen Zugangsdaten. Ein Widerruf unterbricht bestehende Clients sofort. Die Deaktivierung stoppt alle Anmeldungen des Dienstkontos, kann aber wieder aufgehoben werden. Das endgültige Stilllegen deaktiviert die zugrunde liegende Identität und widerruft sämtliche aktiven Zugangsdaten. Jede Änderung verwendet die aktuelle Revision des Dienstkontos; bei einem Konflikt muss die Ansicht neu geladen werden, damit keine parallele Änderung überschrieben wird. Die Authentifizierung behält die Dienstkonto-Herkunft bei und prüft Berechtigungsrahmen sowie Lebenszyklus bei jeder Anfrage erneut, ohne interaktive Principal-Zwischenspeicher oder Mitgliedschaftsrollen zu verwenden. Ältere Zugangsdaten erhalten entzogene Rechte nicht durch eine zwischengespeicherte Rollenzuweisung zurück. Dienstkonto-Zugangsdaten verwenden ausdrückliche Autorisierungsheader und bleiben mandantenbezogen, selbst wenn ihre gespeicherte Freigabe einen weitergehenden Platzhalter oder ein Systemrecht enthält.",
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
metadata={
|
|
|
|
@@ -1497,6 +1501,9 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
summary="Users can reorder or hide available navigation entries without changing access or other users' workspaces.",
|
|
|
|
|
body=(
|
|
|
|
|
"Open Settings and use the workspace navigation editor to move or show available entries. Personal order and visibility take precedence over tenant and system preferences. Entries locked by a system or tenant administrator remain visible, and a user cannot create a lock. Choosing the inherited order removes the personal layer. Module entitlement, View policy, and permissions continue to decide which destinations are available, so changing navigation never grants access."
|
|
|
|
|
" The same editor is used for system, tenant, personal, and View layouts. Drag handles reorder modules and separators together; arrow buttons provide single-step moves. On a focused handle use Space to pick up, arrow keys to move, Enter to drop, or Escape to cancel. Add module restores a removed available entry; removing it only hides navigation and never uninstalls the module or deletes data. Add separator creates an optional group label, and separators remain horizontal rules when the rail is collapsed. Opening the editor leaves the draft clean; Save on the owning page persists changes, while inherited layout removes the override. View surface restrictions still apply, and an explicit personal layout takes precedence over the active View's presentation order."
|
|
|
|
|
" Expanded navigation shows group headings without divider lines; collapsing it replaces those headings with horizontal separators between groups."
|
|
|
|
|
" A temporarily failed module interface import is retried once after a short delay. If it still fails, the shell names the affected enabled modules and offers guarded Reload without changing entitlements, View restrictions, or configured data. Save or explicitly discard pending work before reloading; a missing interface is not evidence that the module was uninstalled."
|
|
|
|
|
),
|
|
|
|
|
layer="configured",
|
|
|
|
|
documentation_types=("user", "admin"),
|
|
|
|
@@ -1523,6 +1530,9 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"gesperrte Einträge bleiben sichtbar; Benutzende können selbst keine Sperre erzeugen. Die Auswahl der geerbten Reihenfolge "
|
|
|
|
|
"entfernt die persönliche Ebene. Modulberechtigung, View-Richtlinie und Zugriffsrechte bestimmen weiterhin, welche Ziele "
|
|
|
|
|
"verfügbar sind. Eine Navigationsänderung gewährt daher niemals zusätzlichen Zugriff."
|
|
|
|
|
" Derselbe Editor wird für System-, Mandanten-, persönliche und View-Anordnungen verwendet. Ziehgriffe ordnen Module und Trennlinien gemeinsam an; Pfeilschaltflächen verschieben schrittweise. Am fokussierten Griff nimmt die Leertaste auf, Pfeiltasten verschieben, Eingabe legt ab und Escape bricht ab. Modul hinzufügen stellt einen entfernten verfügbaren Eintrag wieder her; Entfernen blendet nur die Navigation aus und deinstalliert weder ein Modul noch löscht es Daten. Trennlinie hinzufügen erlaubt eine optionale Gruppenbezeichnung; auch die eingeklappte Leiste zeigt horizontale Trennlinien. Das Öffnen erzeugt keine ungespeicherten Änderungen. Speichern auf der jeweiligen Seite übernimmt die Anordnung, die geerbte Anordnung entfernt die Ausnahme. View-Oberflächenbeschränkungen bleiben wirksam; eine ausdrückliche persönliche Anordnung hat Vorrang vor der Darstellungsreihenfolge der aktiven View."
|
|
|
|
|
" Die ausgeklappte Navigation zeigt Gruppenüberschriften ohne Trennlinien; beim Einklappen werden die Überschriften durch horizontale Linien zwischen den Gruppen ersetzt."
|
|
|
|
|
" Ein vorübergehend fehlgeschlagener Import einer Moduloberfläche wird nach kurzer Wartezeit einmal wiederholt. Bei erneutem Fehler nennt die Oberfläche die betroffenen aktivierten Module und bietet geschütztes Neuladen an; Modulberechtigungen, View-Beschränkungen und konfigurierte Daten bleiben unverändert. Speichern oder verwerfen Sie ausstehende Änderungen ausdrücklich vor dem Neuladen. Eine fehlende Oberfläche bedeutet nicht, dass das Modul deinstalliert wurde."
|
|
|
|
|
),
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
@@ -1532,13 +1542,30 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"outcome": "The user's side rail reflects the personal preference while locked and inaccessible entries remain governed by higher-level policy.",
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
DocumentationTopic(
|
|
|
|
|
id="access.reference.shared-interface-controls",
|
|
|
|
|
title="Use shared tables and dialogs",
|
|
|
|
|
summary="Resize table columns and use compact dialogs without losing action controls.",
|
|
|
|
|
body="Shared DataGrid action columns reserve room for their actual controls and wrap action groups in narrow containers. Wide data retains a local horizontal scrollbar; an oversized pinned column becomes scrollable rather than covering the entire table. Drag a column boundary, or focus it and use Left/Right for 10-pixel changes and Shift for 40 pixels. Enter or double-click resets that column; Escape cancels an active drag without closing its dialog. Widths are browser-local and do not change other users or stored data. The sizing-contract update resets incompatible legacy width preferences once while preserving filters and sort choices. Dialog form fields shrink within the available panel; only intentionally wide content such as a table scrolls horizontally inside its own region. Reload sits in the top-right action group immediately before New on collection pages; editable pages keep Save last and protect unsaved changes on Reload. Table-only cards have full-width bodies; explanatory sections remain padded. List-filter dropdowns use checkboxes with Select all and Deselect all; selecting several values matches any of them, while selecting none shows no matches. Filter and layout choices do not grant access or modify records.",
|
|
|
|
|
documentation_types=("user", "admin"),
|
|
|
|
|
audience=("user", "tenant_admin", "system_admin"),
|
|
|
|
|
related_modules=("admin", "templates"),
|
|
|
|
|
metadata={"kind": "reference"},
|
|
|
|
|
translations={"de": {
|
|
|
|
|
"title": "Gemeinsame Tabellen und Dialoge bedienen",
|
|
|
|
|
"summary": "Tabellenspalten anpassen und kompakte Dialoge bedienen, ohne Aktionsschaltflächen zu verlieren.",
|
|
|
|
|
"body": "Aktionsspalten der zentralen DataGrid reservieren Platz für ihre tatsächlichen Bedienelemente; in schmalen Bereichen brechen Aktionsgruppen um. Breite Daten behalten eine lokale horizontale Bildlaufleiste. Eine übergroße angeheftete Spalte wird mitscrollbar, statt die gesamte Tabelle zu verdecken. Ziehen Sie eine Spaltengrenze oder fokussieren Sie sie und verwenden Links/Rechts für 10-Pixel-Schritte, mit Umschalt für 40 Pixel. Eingabe oder Doppelklick setzt diese Spalte zurück. Escape bricht einen laufenden Ziehvorgang ab, ohne den Dialog zu schließen. Breiten bleiben browserlokal und verändern weder andere Benutzer noch gespeicherte Daten. Die aktualisierte Größenberechnung setzt unvereinbare alte Breitenpräferenzen einmalig zurück; Filter und Sortierung bleiben erhalten. Formularfelder passen sich an den verfügbaren Dialog an. Nur bewusst breite Inhalte wie Tabellen scrollen horizontal in ihrem eigenen Bereich. Neu laden steht bei Sammlungsseiten oben rechts unmittelbar vor Neu. Bearbeitbare Seiten behalten Speichern als letzte Aktion und schützen ungespeicherte Änderungen beim Neuladen. Reine Tabellenkarten nutzen die volle Breite; erläuternde Abschnitte behalten Innenabstand. Listenfilter bieten Kontrollkästchen mit Alle auswählen und Alle abwählen: mehrere Werte schließen jeden davon ein, keine Auswahl zeigt keine Treffer. Filter und Layout erteilen weder Zugriff noch verändern sie Datensätze."
|
|
|
|
|
}},
|
|
|
|
|
),
|
|
|
|
|
DocumentationTopic(
|
|
|
|
|
id="access.workflow.manage-sessions",
|
|
|
|
|
title="Review and revoke account sessions",
|
|
|
|
|
summary="Inspect active browser sessions and revoke one or every other session without exposing credentials or network identifiers.",
|
|
|
|
|
body=(
|
|
|
|
|
"Settings > Sessions and devices marks the current browser session and shows only bounded client metadata plus creation, last-seen, and expiry times. "
|
|
|
|
|
"Interactive sign-in and sign-out clear the browser's saved automation API key so it cannot override the selected session identity. Applying an API key explicitly in connection settings selects that key's identity. "
|
|
|
|
|
"Users can revoke another session or all other active sessions; the command session is protected and normal logout remains the way to end it. Revocation is idempotent and takes effect on the next authenticated request. "
|
|
|
|
|
"The shared browser client discards reusable response data when the session, account, tenant, or permissions change and when authentication expires. It honors no-store and no-cache responses; conditional responses are revalidated by the server. Late reads cannot repopulate caches after a save or session change. Reload bypasses older cached reads without changing records; an already displayed page still requires refresh to reflect remote changes. "
|
|
|
|
|
"Tenant administrators can inspect only sessions belonging to a membership in their governed tenant. Administrative revocation requires central membership-update permission and current-password re-authorization from an interactive session. "
|
|
|
|
|
"Audit evidence records stable actors, targets, and counts without tokens, hashes, cookies, IP addresses, or client strings."
|
|
|
|
|
),
|
|
|
|
@@ -1572,7 +1599,9 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"summary": "Aktive Browsersitzungen prüfen und einzelne oder alle anderen Sitzungen widerrufen, ohne Zugangsdaten oder Netzwerkkennungen offenzulegen.",
|
|
|
|
|
"body": (
|
|
|
|
|
"Einstellungen > Sitzungen und Geräte kennzeichnet die aktuelle Browsersitzung und zeigt nur begrenzte Clientmetadaten sowie Erstellungs-, Aktivitäts- und Ablaufzeitpunkte. "
|
|
|
|
|
"Interaktives An- und Abmelden entfernt den gespeicherten Automatisierungs-API-Schlüssel, damit dieser nicht die gewählte Sitzungsidentität übersteuert. Das ausdrückliche Anwenden eines API-Schlüssels in den Verbindungseinstellungen wählt dessen Identität. "
|
|
|
|
|
"Benutzende können eine andere oder alle anderen aktiven Sitzungen widerrufen; die ausführende Sitzung bleibt geschützt und wird regulär abgemeldet. Der Widerruf ist idempotent und gilt beim nächsten authentifizierten Aufruf. "
|
|
|
|
|
"Der gemeinsame Browserclient verwirft wiederverwendbare Antwortdaten beim Wechsel von Sitzung, Konto, Mandant oder Berechtigungen sowie bei abgelaufener Anmeldung. Er beachtet no-store und no-cache; bedingte Antworten werden vom Server erneut geprüft. Verspätete Leseantworten füllen nach dem Speichern oder Sitzungswechsel keine Zwischenspeicher erneut. Neu laden umgeht ältere zwischengespeicherte Antworten, ohne Datensätze zu ändern. Eine bereits angezeigte Seite muss weiterhin aktualisiert werden, um entfernte Änderungen darzustellen. "
|
|
|
|
|
"Mandantenadministrierende sehen nur Sitzungen einer Mitgliedschaft im verwalteten Mandanten. Der administrative Widerruf erfordert die zentrale Berechtigung zur Mitgliedschaftsänderung und eine erneute Passwortbestätigung in einer interaktiven Sitzung. "
|
|
|
|
|
"Auditnachweise speichern stabile Akteure, Ziele und Anzahlen, aber keine Token, Hashes, Cookies, IP-Adressen oder Clienttexte."
|
|
|
|
|
),
|
|
|
|
@@ -1614,7 +1643,11 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"The assignment itself does not grant rights. Removing the IDM assignment, disabling the Organizations function, or removing the Access mapping stops the derived role source from contributing effective permissions. "
|
|
|
|
|
"A delegated assignment contributes under the delegate's own account. An acting-for assignment contributes only after an interactive session selects that exact current assignment; Access retains both the real and represented account, audits context changes, and rejects stale or mismatched selections. "
|
|
|
|
|
"Tenant administrators inspect this from the user access explanation dialog: role sources link back to the Organizations function or unit that defines the fact and to the IDM assignment that produced it. "
|
|
|
|
|
"The same explanation is exposed by the admin API, while mapping management remains under Admin > Function role mappings. This keeps the audit trail clear: Organizations records what can exist, IDM records who holds it, and Access records which accepted facts produce permissions."
|
|
|
|
|
"The same explanation is exposed by the admin API, while mapping management remains under Admin > Function role mappings. This keeps the audit trail clear: Organizations records what can exist, IDM records who holds it, and Access records which accepted facts produce permissions. "
|
|
|
|
|
"An empty mapping list means no external function-to-role policy is configured; loading or repairing the list never creates mappings or grants rights. "
|
|
|
|
|
"If an older database records the Access baseline but lacks the external mapping table, operators must back up the database and apply the normal forward Access migration d8f1b4e7a0c3. "
|
|
|
|
|
"This additive repair creates only the missing table with its constraints and indexes, leaves an existing table and all roles, memberships, and mappings unchanged, and retains mapping data on downgrade. Do not replay or stamp the baseline, reset the database, or broaden permissions to work around a missing-table error. "
|
|
|
|
|
"Development file-watch reloads can automatically run migrations: complete the backup and revision preflight before adding migration files to a running instance's watched source tree."
|
|
|
|
|
),
|
|
|
|
|
layer="configured",
|
|
|
|
|
documentation_types=("admin", "user"),
|
|
|
|
@@ -1679,7 +1712,11 @@ ACCESS_DOCUMENTATION: tuple[DocumentationTopic, ...] = (
|
|
|
|
|
"Rollenquellen verweisen auf die definierende Organizations-Funktion oder -Einheit und auf die erzeugende IDM-Zuweisung. "
|
|
|
|
|
"Dieselbe Erklärung steht über die Admin-API bereit, während Zuordnungen unter Admin > Funktions-Rollenzuordnungen verwaltet "
|
|
|
|
|
"werden. So bleibt die Verantwortung nachvollziehbar: Organizations definiert, was existieren kann, IDM hält fest, wer es "
|
|
|
|
|
"innehat, und Access bestimmt, welche bestätigten Merkmale Berechtigungen erzeugen."
|
|
|
|
|
"innehat, und Access bestimmt, welche bestätigten Merkmale Berechtigungen erzeugen. "
|
|
|
|
|
"Eine leere Zuordnungsliste bedeutet, dass keine externe Funktions-Rollenregel konfiguriert ist; das Laden oder Reparieren der Liste erzeugt weder Zuordnungen noch Rechte. "
|
|
|
|
|
"Ist in einer älteren Datenbank die Access-Basismigration vermerkt, fehlt aber die externe Zuordnungstabelle, müssen Betreibende die Datenbank sichern und die reguläre vorwärtsgerichtete Access-Migration d8f1b4e7a0c3 anwenden. "
|
|
|
|
|
"Diese additive Reparatur erstellt ausschließlich die fehlende Tabelle einschließlich Bedingungen und Indizes, lässt eine vorhandene Tabelle sowie Rollen, Mitgliedschaften und Zuordnungen unverändert und erhält Zuordnungsdaten auch beim Downgrade. Die Basismigration nicht erneut ausführen oder als angewendet markieren, die Datenbank nicht zurücksetzen und Berechtigungen nicht wegen eines Fehlers über eine fehlende Tabelle erweitern. "
|
|
|
|
|
"Das automatische Neuladen im Entwicklungsbetrieb kann Migrationen ausführen: Sicherung und Revisionsprüfung abschließen, bevor neue Migrationsdateien in den überwachten Quellbaum einer laufenden Instanz gelangen."
|
|
|
|
|
),
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
@@ -2032,7 +2069,7 @@ def _people_search(context: ModuleContext) -> object:
|
|
|
|
|
manifest = ModuleManifest(
|
|
|
|
|
id="access",
|
|
|
|
|
name="Access",
|
|
|
|
|
version="0.1.24",
|
|
|
|
|
version="0.1.25",
|
|
|
|
|
optional_dependencies=("identity", "organizations", "tenancy", "idm"),
|
|
|
|
|
provides_interfaces=(
|
|
|
|
|
ModuleInterfaceProvider(name=CAPABILITY_ACCESS_PEOPLE_SEARCH, version="0.1.0"),
|
|
|
|
|