39 lines
1.6 KiB
TypeScript
39 lines
1.6 KiB
TypeScript
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;
|