import { createElement, lazy } from "react"; import type { AdminSectionsUiCapability, PlatformWebModule } from "@govoplan/core-webui"; import "./styles/encryption.css"; const EncryptionAdminPanel = lazy(() => import("./features/EncryptionAdminPanel")); const adminSections: AdminSectionsUiCapability = { sections: [ { id: "tenant-encryption", moduleId: "encryption", kind: "management", surfaceId: "encryption.admin.operations", label: "Encryption", group: "TENANT", order: 78, anyOf: ["encryption:vault:admin", "encryption:recovery:approve"], render: ({ settings, auth }) => createElement(EncryptionAdminPanel, { settings, auth }) } ] }; export const encryptionModule: PlatformWebModule = { id: "encryption", label: "Encryption", version: "0.1.14", dependencies: [], optionalDependencies: ["access", "audit", "policy", "identity_trust", "notifications"], viewSurfaces: [ { id: "encryption.admin.operations", moduleId: "encryption", kind: "section", label: "Encryption administration", order: 10 }, { id: "encryption.admin.vaults", moduleId: "encryption", kind: "section", label: "Key vaults", parentId: "encryption.admin.operations", order: 20 }, { id: "encryption.admin.migrations", moduleId: "encryption", kind: "section", label: "Protection migrations", parentId: "encryption.admin.operations", order: 30 }, { id: "encryption.admin.recovery", moduleId: "encryption", kind: "section", label: "Recovery ceremonies", parentId: "encryption.admin.operations", order: 40 } ], uiCapabilities: { "admin.sections": adminSections } }; export default encryptionModule;