Prepare GovOPlaN self-hosted release workflow
Some checks failed
Dependency Audit / dependency-audit (push) Failing after 50s
Module Matrix / module-matrix (push) Failing after 49s

This commit is contained in:
2026-07-10 21:57:22 +02:00
parent 8dd5123aab
commit 94236a7d7e
51 changed files with 3576 additions and 803 deletions

View File

@@ -15,6 +15,7 @@
"@govoplan/dashboard-webui": "file:../../govoplan-dashboard/webui",
"@govoplan/docs-webui": "file:../../govoplan-docs/webui",
"@govoplan/files-webui": "file:../../govoplan-files/webui",
"@govoplan/idm-webui": "file:../../govoplan-idm/webui",
"@govoplan/mail-webui": "file:../../govoplan-mail/webui",
"@govoplan/ops-webui": "file:../../govoplan-ops/webui",
"@govoplan/organizations-webui": "file:../../govoplan-organizations/webui"
@@ -171,6 +172,25 @@
}
}
},
"../../govoplan-idm/webui": {
"name": "@govoplan/idm-webui",
"version": "0.1.6",
"peerDependencies": {
"@govoplan/core-webui": "^0.1.6",
"@vitejs/plugin-react": "^4.3.4",
"lucide-react": "^1.23.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-router-dom": "^7.1.1",
"typescript": "^5.7.2",
"vite": "^6.0.6"
},
"peerDependenciesMeta": {
"@govoplan/core-webui": {
"optional": true
}
}
},
"../../govoplan-mail/webui": {
"name": "@govoplan/mail-webui",
"version": "0.1.6",
@@ -980,6 +1000,10 @@
"resolved": "../../govoplan-files/webui",
"link": true
},
"node_modules/@govoplan/idm-webui": {
"resolved": "../../govoplan-idm/webui",
"link": true
},
"node_modules/@govoplan/mail-webui": {
"resolved": "../../govoplan-mail/webui",
"link": true

View File

@@ -33,6 +33,7 @@
"@govoplan/dashboard-webui": "file:../../govoplan-dashboard/webui",
"@govoplan/docs-webui": "file:../../govoplan-docs/webui",
"@govoplan/files-webui": "file:../../govoplan-files/webui",
"@govoplan/idm-webui": "file:../../govoplan-idm/webui",
"@govoplan/mail-webui": "file:../../govoplan-mail/webui",
"@govoplan/organizations-webui": "file:../../govoplan-organizations/webui",
"@govoplan/ops-webui": "file:../../govoplan-ops/webui"

View File

@@ -28,6 +28,7 @@
"@govoplan/dashboard-webui": "git+ssh://git@git.add-ideas.de/add-ideas/govoplan-dashboard.git#v0.1.6",
"@govoplan/docs-webui": "git+ssh://git@git.add-ideas.de/add-ideas/govoplan-docs.git#v0.1.6",
"@govoplan/files-webui": "git+ssh://git@git.add-ideas.de/add-ideas/govoplan-files.git#v0.1.6",
"@govoplan/idm-webui": "git+ssh://git@git.add-ideas.de/add-ideas/govoplan-idm.git#v0.1.6",
"@govoplan/mail-webui": "git+ssh://git@git.add-ideas.de/add-ideas/govoplan-mail.git#v0.1.6",
"@govoplan/campaign-webui": "git+ssh://git@git.add-ideas.de/add-ideas/govoplan-campaign.git#v0.1.6",
"@govoplan/organizations-webui": "git+ssh://git@git.add-ideas.de/add-ideas/govoplan-organizations.git#v0.1.6",

View File

@@ -7,6 +7,7 @@ const packageByModule = {
dashboard: "@govoplan/dashboard-webui",
docs: "@govoplan/docs-webui",
files: "@govoplan/files-webui",
idm: "@govoplan/idm-webui",
mail: "@govoplan/mail-webui",
organizations: "@govoplan/organizations-webui",
ops: "@govoplan/ops-webui"
@@ -21,11 +22,12 @@ const cases = [
{ name: "files-only", modules: ["files"] },
{ name: "mail-only", modules: ["mail"] },
{ name: "organizations-only", modules: ["organizations"] },
{ name: "idm-with-organizations", modules: ["organizations", "idm"] },
{ name: "campaign-only", modules: ["campaigns"] },
{ name: "campaign-with-files-no-mail", modules: ["campaigns", "files"] },
{ name: "campaign-with-mail-no-files", modules: ["campaigns", "mail"] },
{ name: "docs-and-ops", modules: ["access", "docs", "ops"] },
{ name: "full-product", modules: ["access", "admin", "dashboard", "organizations", "campaigns", "files", "mail", "docs", "ops"] }
{ name: "full-product", modules: ["access", "admin", "dashboard", "organizations", "idm", "campaigns", "files", "mail", "docs", "ops"] }
];
const npmExec = process.env.npm_execpath;

View File

@@ -756,6 +756,14 @@
min-width: 0;
}
.module-install-plan-row-meta {
grid-column: 1 / -1;
display: flex;
flex-wrap: wrap;
gap: 6px;
align-items: center;
}
.module-install-plan-row label span {
color: var(--muted);
font-size: 12px;

View File

@@ -277,6 +277,55 @@ export type DashboardWidgetsUiCapability = {
widgets: DashboardWidgetContribution[];
};
export type OrganizationFunctionActionContext = PlatformRouteContext & {
function: {
id: string;
tenant_id: string;
organization_unit_id: string;
slug: string;
name: string;
};
};
export type OrganizationFunctionActionContribution = {
id: string;
label?: string;
order?: number;
anyOf?: string[];
allOf?: string[];
render: (context: OrganizationFunctionActionContext) => ReactNode;
};
export type OrganizationFunctionActionsUiCapability = {
actions: OrganizationFunctionActionContribution[];
};
export type OrganizationFunctionSelection = {
sourceModule: "organizations";
functionId: string;
label?: string | null;
organizationUnitId?: string | null;
organizationUnitLabel?: string | null;
};
export type OrganizationFunctionPickerContext = PlatformRouteContext & {
value: OrganizationFunctionSelection | null;
disabled?: boolean;
onChange: (value: OrganizationFunctionSelection | null) => void;
};
export type OrganizationFunctionLabelContext = PlatformRouteContext & {
sourceModule: string;
functionId: string;
fallback?: ReactNode;
};
export type OrganizationFunctionPickerUiCapability = {
sourceModule: "organizations";
renderPicker: (context: OrganizationFunctionPickerContext) => ReactNode;
renderLabel?: (context: OrganizationFunctionLabelContext) => ReactNode;
};
export type MailSecurity = "plain" | "tls" | "starttls";
export type MailProfileScope = "system" | "tenant" | "user" | "group" | "campaign";

View File

@@ -18,6 +18,7 @@ const defaultWebModulePackages = [
"@govoplan/dashboard-webui",
"@govoplan/docs-webui",
"@govoplan/files-webui",
"@govoplan/idm-webui",
"@govoplan/mail-webui",
"@govoplan/organizations-webui",
"@govoplan/ops-webui"
@@ -95,6 +96,7 @@ export default defineConfig({
fileURLToPath(new URL('../../govoplan-dashboard/webui', import.meta.url)),
fileURLToPath(new URL('../../govoplan-docs/webui', import.meta.url)),
fileURLToPath(new URL('../../govoplan-files/webui', import.meta.url)),
fileURLToPath(new URL('../../govoplan-idm/webui', import.meta.url)),
fileURLToPath(new URL('../../govoplan-mail/webui', import.meta.url)),
fileURLToPath(new URL('../../govoplan-organizations/webui', import.meta.url)),
fileURLToPath(new URL('../../govoplan-campaign/webui', import.meta.url)),