feat(security): isolate bounded work and support required auth actions

This commit is contained in:
2026-09-08 07:47:17 +02:00
parent a6d056a3df
commit dc1f244f17
23 changed files with 1628 additions and 21 deletions
+14
View File
@@ -1,5 +1,6 @@
import type {
AuthInfo,
AuthActionUiCapability,
DashboardWidgetsUiCapability,
OrganizationFunctionActionContext,
OrganizationFunctionActionContribution,
@@ -80,6 +81,19 @@ for (const testCase of cases) {
assert(uiCapability("files.fileExplorer", [access, files]) === filesCapability, "files capability should return the module-provided object");
assert(uiCapability("mail.profiles", [access, mail]) === mailCapability, "mail capability should return the module-provided object");
const authActionCapability: AuthActionUiCapability = {
actions: ["change_password"], RequiredAction: () => null, LoginHelp: () => null
};
const publicAuthModule: PlatformWebModule = {
id: "access", label: "Access", version: "test",
publicRoutes: [{ path: "/password-recovery", render: () => null }],
uiCapabilities: { "auth.actions": authActionCapability }
};
assert(uiCapability<AuthActionUiCapability>("auth.actions", [publicAuthModule]) === authActionCapability,
"required authentication actions can resolve from the public catalogue without normal scopes");
assert(uiCapability<AuthActionUiCapability>("auth.actions", []) === null,
"core-only compositions have no authentication action implementation");
const configurableDashboardWidgets: DashboardWidgetsUiCapability = {
widgets: [
{