Gaps fill up, fixes, ui restructuring
This commit is contained in:
287
src/Web/StellaOps.Web/src/app/routes/administration.routes.ts
Normal file
287
src/Web/StellaOps.Web/src/app/routes/administration.routes.ts
Normal file
@@ -0,0 +1,287 @@
|
||||
/**
|
||||
* Administration Domain Routes
|
||||
* Sprint: SPRINT_20260218_007_FE_ui_v2_rewire_administration_foundation (A2-01 through A2-05)
|
||||
*
|
||||
* Canonical Administration IA v2 route tree.
|
||||
* Sub-area ownership per docs/modules/ui/v2-rewire/source-of-truth.md:
|
||||
* A0 Overview / shell
|
||||
* A1 Identity & Access (IAM)
|
||||
* A2 Tenant & Branding
|
||||
* A3 Notifications
|
||||
* A4 Usage & Limits
|
||||
* A5 Policy Governance (Administration-owned; RC is a consumer)
|
||||
* A6 Trust & Signing
|
||||
* A7 System
|
||||
*
|
||||
* Legacy /settings/* paths continue to resolve via app.routes.ts V1 alias entries
|
||||
* until SPRINT_20260218_016 cutover; this file owns the /administration/* canonical paths.
|
||||
*/
|
||||
|
||||
import { Routes } from '@angular/router';
|
||||
|
||||
export const ADMINISTRATION_ROUTES: Routes = [
|
||||
// A0 — Administration overview
|
||||
{
|
||||
path: '',
|
||||
data: { breadcrumb: 'Administration' },
|
||||
loadComponent: () =>
|
||||
import('../features/administration/administration-overview.component').then(
|
||||
(m) => m.AdministrationOverviewComponent
|
||||
),
|
||||
},
|
||||
|
||||
// A1 — Identity & Access (IAM)
|
||||
{
|
||||
path: 'identity-access',
|
||||
title: 'Identity & Access',
|
||||
data: { breadcrumb: 'Identity & Access' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/admin/admin-settings-page.component').then(
|
||||
(m) => m.AdminSettingsPageComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'identity-access/:page',
|
||||
title: 'Identity & Access',
|
||||
data: { breadcrumb: 'Identity & Access' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/admin/admin-settings-page.component').then(
|
||||
(m) => m.AdminSettingsPageComponent
|
||||
),
|
||||
},
|
||||
// Profile sub-path (formerly /console/profile)
|
||||
{
|
||||
path: 'profile',
|
||||
title: 'Profile',
|
||||
data: { breadcrumb: 'Profile' },
|
||||
loadComponent: () =>
|
||||
import('../features/console/console-profile.component').then(
|
||||
(m) => m.ConsoleProfileComponent
|
||||
),
|
||||
},
|
||||
// Admin sub-paths (formerly /admin/:page, /console/admin/:page)
|
||||
{
|
||||
path: 'admin',
|
||||
title: 'Administration',
|
||||
data: { breadcrumb: 'Administration' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/admin/admin-settings-page.component').then(
|
||||
(m) => m.AdminSettingsPageComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'admin/:page',
|
||||
title: 'Administration',
|
||||
data: { breadcrumb: 'Administration' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/admin/admin-settings-page.component').then(
|
||||
(m) => m.AdminSettingsPageComponent
|
||||
),
|
||||
},
|
||||
|
||||
// A2 — Tenant & Branding
|
||||
{
|
||||
path: 'tenant-branding',
|
||||
title: 'Tenant & Branding',
|
||||
data: { breadcrumb: 'Tenant & Branding' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/branding/branding-settings-page.component').then(
|
||||
(m) => m.BrandingSettingsPageComponent
|
||||
),
|
||||
},
|
||||
|
||||
// A3 — Notifications
|
||||
{
|
||||
path: 'notifications',
|
||||
title: 'Notifications',
|
||||
data: { breadcrumb: 'Notifications' },
|
||||
loadChildren: () =>
|
||||
import('../features/admin-notifications/admin-notifications.routes').then(
|
||||
(m) => m.adminNotificationsRoutes
|
||||
),
|
||||
},
|
||||
|
||||
// A4 — Usage & Limits
|
||||
{
|
||||
path: 'usage',
|
||||
title: 'Usage & Limits',
|
||||
data: { breadcrumb: 'Usage & Limits' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/usage/usage-settings-page.component').then(
|
||||
(m) => m.UsageSettingsPageComponent
|
||||
),
|
||||
},
|
||||
|
||||
// A5 — Policy Governance (Administration-owned)
|
||||
{
|
||||
path: 'policy-governance',
|
||||
title: 'Policy Governance',
|
||||
data: { breadcrumb: 'Policy Governance' },
|
||||
loadChildren: () =>
|
||||
import('../features/policy-governance/policy-governance.routes').then(
|
||||
(m) => m.policyGovernanceRoutes
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'policy',
|
||||
title: 'Policy Governance',
|
||||
data: { breadcrumb: 'Policy Governance' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/policy/policy-governance-settings-page.component').then(
|
||||
(m) => m.PolicyGovernanceSettingsPageComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'policy/packs',
|
||||
title: 'Policy Packs',
|
||||
data: { breadcrumb: 'Policy Packs' },
|
||||
loadComponent: () =>
|
||||
import('../features/policy-studio/workspace/policy-workspace.component').then(
|
||||
(m) => m.PolicyWorkspaceComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'policy/exceptions',
|
||||
title: 'Exceptions',
|
||||
data: { breadcrumb: 'Exceptions' },
|
||||
loadComponent: () =>
|
||||
import('../features/triage/triage-artifacts.component').then(
|
||||
(m) => m.TriageArtifactsComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'policy/exceptions/:id',
|
||||
title: 'Exception Detail',
|
||||
data: { breadcrumb: 'Exception Detail' },
|
||||
loadComponent: () =>
|
||||
import('../features/triage/triage-workspace.component').then(
|
||||
(m) => m.TriageWorkspaceComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'policy/packs/:packId',
|
||||
title: 'Policy Pack',
|
||||
data: { breadcrumb: 'Policy Pack' },
|
||||
loadComponent: () =>
|
||||
import('../features/policy-studio/workspace/policy-workspace.component').then(
|
||||
(m) => m.PolicyWorkspaceComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'policy/packs/:packId/:page',
|
||||
title: 'Policy Pack',
|
||||
data: { breadcrumb: 'Policy Pack' },
|
||||
loadComponent: () =>
|
||||
import('../features/policy-studio/workspace/policy-workspace.component').then(
|
||||
(m) => m.PolicyWorkspaceComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'policy/governance',
|
||||
title: 'Policy Governance',
|
||||
data: { breadcrumb: 'Policy Governance' },
|
||||
loadChildren: () =>
|
||||
import('../features/policy-governance/policy-governance.routes').then(
|
||||
(m) => m.policyGovernanceRoutes
|
||||
),
|
||||
},
|
||||
|
||||
// A6 — Trust & Signing
|
||||
{
|
||||
path: 'trust-signing',
|
||||
title: 'Trust & Signing',
|
||||
data: { breadcrumb: 'Trust & Signing' },
|
||||
loadChildren: () =>
|
||||
import('../features/trust-admin/trust-admin.routes').then(
|
||||
(m) => m.trustAdminRoutes
|
||||
),
|
||||
},
|
||||
// Legacy trust sub-paths (formerly /admin/trust/*)
|
||||
{
|
||||
path: 'trust',
|
||||
title: 'Trust & Signing',
|
||||
data: { breadcrumb: 'Trust & Signing' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/trust/trust-settings-page.component').then(
|
||||
(m) => m.TrustSettingsPageComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'trust/:page',
|
||||
title: 'Trust & Signing',
|
||||
data: { breadcrumb: 'Trust & Signing' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/trust/trust-settings-page.component').then(
|
||||
(m) => m.TrustSettingsPageComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'trust/issuers',
|
||||
title: 'Issuers',
|
||||
data: { breadcrumb: 'Issuers' },
|
||||
loadChildren: () =>
|
||||
import('../features/issuer-trust/issuer-trust.routes').then(
|
||||
(m) => m.issuerTrustRoutes
|
||||
),
|
||||
},
|
||||
|
||||
// A7 — System
|
||||
{
|
||||
path: 'system',
|
||||
title: 'System',
|
||||
data: { breadcrumb: 'System' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/system/system-settings-page.component').then(
|
||||
(m) => m.SystemSettingsPageComponent
|
||||
),
|
||||
},
|
||||
// Configuration pane (formerly /console/configuration)
|
||||
{
|
||||
path: 'configuration-pane',
|
||||
title: 'Configuration',
|
||||
data: { breadcrumb: 'Configuration' },
|
||||
loadChildren: () =>
|
||||
import('../features/configuration-pane/configuration-pane.routes').then(
|
||||
(m) => m.CONFIGURATION_PANE_ROUTES
|
||||
),
|
||||
},
|
||||
// Security Data settings (A7 diagnostic sub-path)
|
||||
{
|
||||
path: 'security-data',
|
||||
title: 'Security Data',
|
||||
data: { breadcrumb: 'Security Data' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/security-data/security-data-settings-page.component').then(
|
||||
(m) => m.SecurityDataSettingsPageComponent
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'security-data/trivy',
|
||||
title: 'Trivy DB Settings',
|
||||
data: { breadcrumb: 'Trivy DB' },
|
||||
loadComponent: () =>
|
||||
import('../features/trivy-db-settings/trivy-db-settings-page.component').then(
|
||||
(m) => m.TrivyDbSettingsPageComponent
|
||||
),
|
||||
},
|
||||
// Workflows (formerly /release-orchestrator/workflows)
|
||||
{
|
||||
path: 'workflows',
|
||||
title: 'Workflows',
|
||||
data: { breadcrumb: 'Workflows' },
|
||||
loadChildren: () =>
|
||||
import('../features/release-orchestrator/workflows/workflows.routes').then(
|
||||
(m) => m.WORKFLOW_ROUTES
|
||||
),
|
||||
},
|
||||
// AI Preferences
|
||||
{
|
||||
path: 'ai-preferences',
|
||||
title: 'AI Preferences',
|
||||
data: { breadcrumb: 'AI Preferences' },
|
||||
loadComponent: () =>
|
||||
import('../features/settings/ai-preferences-workbench.component').then(
|
||||
(m) => m.AiPreferencesWorkbenchComponent
|
||||
),
|
||||
},
|
||||
];
|
||||
Reference in New Issue
Block a user