import { createElement, lazy } from "react"; import type { AdminSectionsUiCapability, PlatformWebModule } from "@govoplan/core-webui"; import "./styles/connectors.css"; const ConnectorGovernancePage = lazy( () => import("./features/ConnectorGovernancePage") ); const ExternalKnowledgePage = lazy( () => import("./features/ExternalKnowledgePage") ); const ExternalServiceDeskPage = lazy( () => import("./features/ExternalServiceDeskPage") ); const readScopes = [ "connectors:source:read", "connectors:source:admin" ]; const knowledgeReadScopes = [ "connectors:knowledge:read", "connectors:knowledge:admin" ]; const serviceDeskReadScopes = [ "connectors:service_desk:read", "connectors:service_desk:admin" ]; const adminSections: AdminSectionsUiCapability = { sections: [ { id: "connector-governance", moduleId: "connectors", kind: "management", surfaceId: "connectors.admin.governed-configurations", label: "Connector governance", group: "SYSTEM", order: 45, anyOf: readScopes, render: ({ settings, auth }) => createElement(ConnectorGovernancePage, { settings, auth }) }, { id: "connector-external-knowledge", moduleId: "connectors", kind: "management", surfaceId: "connectors.admin.external-knowledge", label: "External knowledge", group: "SYSTEM", order: 46, anyOf: knowledgeReadScopes, render: ({ settings, auth }) => createElement(ExternalKnowledgePage, { settings, auth }) }, { id: "connector-external-service-desk", moduleId: "connectors", kind: "management", surfaceId: "connectors.admin.external-service-desk", label: "External service desk", group: "SYSTEM", order: 47, anyOf: serviceDeskReadScopes, render: ({ settings, auth }) => createElement(ExternalServiceDeskPage, { settings, auth }) } ] }; export const connectorsModule: PlatformWebModule = { id: "connectors", label: "Connectors", version: "0.1.23", dependencies: [], optionalDependencies: ["access", "audit", "policy", "ops", "search", "wiki", "tickets", "helpdesk", "cases"], viewSurfaces: [ { id: "connectors.admin.governed-configurations", moduleId: "connectors", kind: "section", label: "Connector governance", order: 45 }, { id: "connectors.admin.simulation-review", moduleId: "connectors", kind: "section", label: "Connector simulation review", parentId: "connectors.admin.governed-configurations", order: 20 }, { id: "connectors.admin.external-knowledge", moduleId: "connectors", kind: "section", label: "External knowledge", parentId: "connectors.admin.governed-configurations", order: 30 }, { id: "connectors.admin.external-service-desk", moduleId: "connectors", kind: "section", label: "External service desk", parentId: "connectors.admin.governed-configurations", order: 40 } ], uiCapabilities: { "admin.sections": adminSections } }; export default connectorsModule;