feat: Katalogverwaltung ins Compliance SDK integriert (17 Kataloge)
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 36s
CI / test-python-backend-compliance (push) Successful in 41s
CI / test-python-document-crawler (push) Successful in 23s
CI / test-python-dsms-gateway (push) Successful in 18s

Bestehende Catalog-Manager-Komponenten in SDK-Routes eingebunden:
- SDKState + Reducer um customCatalogs CRUD erweitert
- Neue Route /sdk/catalog-manager mit CatalogManagerContent
- Sidebar-Link "Kataloge" mit Database-Icon

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-04 14:27:20 +01:00
parent b9ac4fbb75
commit c1a1ce8b71
4 changed files with 65 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
'use client'
import CatalogManagerContent from '@/components/catalog-manager/CatalogManagerContent'
export default function CatalogManagerPage() {
return <CatalogManagerContent />
}

View File

@@ -590,6 +590,18 @@ export function SDKSidebar({ collapsed = false, onCollapsedChange }: SDKSidebarP
isActive={pathname === '/sdk/architecture'}
collapsed={collapsed}
/>
<AdditionalModuleItem
href="/sdk/catalog-manager"
icon={
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2}
d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4" />
</svg>
}
label="Kataloge"
isActive={pathname === '/sdk/catalog-manager'}
collapsed={collapsed}
/>
<AdditionalModuleItem
href="https://macmini:3006"
icon={

View File

@@ -113,6 +113,9 @@ const initialState: SDKState = {
securityIssues: [],
securityBacklog: [],
// Catalog Manager
customCatalogs: {},
// UI State
commandBarHistory: [],
recentSearches: [],
@@ -433,6 +436,41 @@ function sdkReducer(state: SDKState, action: ExtendedSDKAction): SDKState {
preferences: { ...state.preferences, ...action.payload },
})
case 'ADD_CUSTOM_CATALOG_ENTRY': {
const entry = action.payload
const existing = state.customCatalogs[entry.catalogId] || []
return updateState({
customCatalogs: {
...state.customCatalogs,
[entry.catalogId]: [...existing, entry],
},
})
}
case 'UPDATE_CUSTOM_CATALOG_ENTRY': {
const { catalogId, entryId, data } = action.payload
const entries = state.customCatalogs[catalogId] || []
return updateState({
customCatalogs: {
...state.customCatalogs,
[catalogId]: entries.map(e =>
e.id === entryId ? { ...e, data: { ...e.data, ...data }, updatedAt: new Date().toISOString() } : e
),
},
})
}
case 'DELETE_CUSTOM_CATALOG_ENTRY': {
const { catalogId, entryId } = action.payload
const items = state.customCatalogs[catalogId] || []
return updateState({
customCatalogs: {
...state.customCatalogs,
[catalogId]: items.filter(e => e.id !== entryId),
},
})
}
case 'RESET_STATE':
return { ...initialState, lastModified: new Date() }

View File

@@ -5,6 +5,8 @@
* checkpoint system, and all compliance-related data structures.
*/
import type { CustomCatalogs, CatalogId, CustomCatalogEntry } from './catalog-manager/types'
// =============================================================================
// ENUMS
// =============================================================================
@@ -1536,6 +1538,9 @@ export interface SDKState {
securityIssues: SecurityIssue[]
securityBacklog: BacklogItem[]
// Catalog Manager
customCatalogs: CustomCatalogs
// UI State
commandBarHistory: CommandHistory[]
recentSearches: string[]
@@ -1621,6 +1626,9 @@ export type SDKAction =
| { type: 'UPDATE_BACKLOG_ITEM'; payload: { id: string; data: Partial<BacklogItem> } }
| { type: 'ADD_COMMAND_HISTORY'; payload: CommandHistory }
| { type: 'SET_PREFERENCES'; payload: Partial<UserPreferences> }
| { type: 'ADD_CUSTOM_CATALOG_ENTRY'; payload: CustomCatalogEntry }
| { type: 'UPDATE_CUSTOM_CATALOG_ENTRY'; payload: { catalogId: CatalogId; entryId: string; data: Record<string, unknown> } }
| { type: 'DELETE_CUSTOM_CATALOG_ENTRY'; payload: { catalogId: CatalogId; entryId: string } }
| { type: 'RESET_STATE' }
// =============================================================================