Release v0.1.5

This commit is contained in:
2026-07-07 15:49:06 +02:00
commit 2defb89bc1
55 changed files with 3361 additions and 0 deletions

87
webui/src/module.ts Normal file
View File

@@ -0,0 +1,87 @@
import { createElement, lazy } from "react";
import type { AdminSectionsUiCapability, PlatformWebModule } from "@govoplan/core-webui";
import { adminReadScopes, hasScope } from "@govoplan/core-webui";
const AdminOverviewPanel = lazy(() => import("./features/admin/AdminOverviewPanel"));
const GovernanceTemplatesPanel = lazy(() => import("./features/admin/GovernanceTemplatesPanel"));
const ModuleManagementPanel = lazy(() => import("./features/admin/ModuleManagementPanel"));
const SystemSettingsPanel = lazy(() => import("./features/admin/SystemSettingsPanel"));
const adminSections: AdminSectionsUiCapability = {
sections: [
{
id: "overview",
label: "Overview",
group: "ROOT",
order: 0,
anyOf: adminReadScopes,
render: ({ settings, availableSections, selectSection }) => createElement(AdminOverviewPanel, {
settings,
availableSections,
onSelect: selectSection
})
},
{
id: "system-settings",
label: "General",
group: "SYSTEM",
order: 10,
allOf: ["system:settings:read"],
render: ({ settings, auth }) => createElement(SystemSettingsPanel, {
settings,
canWrite: hasScope(auth, "system:settings:write"),
canAccessMaintenance: hasScope(auth, "system:maintenance:access")
})
},
{
id: "system-role-templates",
label: "Tenant roles",
group: "SYSTEM",
order: 40,
allOf: ["system:governance:read"],
render: ({ settings, auth, refreshAuth }) => createElement(GovernanceTemplatesPanel, {
settings,
kind: "role",
canWrite: hasScope(auth, "system:governance:write"),
onAuthRefresh: refreshAuth
})
},
{
id: "system-modules",
label: "Modules",
group: "SYSTEM",
order: 85,
allOf: ["system:settings:read"],
render: ({ settings, auth }) => createElement(ModuleManagementPanel, {
settings,
canWrite: hasScope(auth, "system:settings:write"),
canAccessMaintenance: hasScope(auth, "system:maintenance:access")
})
},
{
id: "system-groups",
label: "Groups",
group: "SYSTEM",
order: 50,
allOf: ["system:governance:read"],
render: ({ settings, auth, refreshAuth }) => createElement(GovernanceTemplatesPanel, {
settings,
kind: "group",
canWrite: hasScope(auth, "system:governance:write"),
onAuthRefresh: refreshAuth
})
}
]
};
export const adminModule: PlatformWebModule = {
id: "admin",
label: "Admin",
version: "1.0.0",
dependencies: ["access"],
uiCapabilities: {
"admin.sections": adminSections
}
};
export default adminModule;