diff --git a/admin-compliance/app/api/sdk/v1/canonical/route.ts b/admin-compliance/app/api/sdk/v1/canonical/route.ts
index 06c87c7..d7ee46c 100644
--- a/admin-compliance/app/api/sdk/v1/canonical/route.ts
+++ b/admin-compliance/app/api/sdk/v1/canonical/route.ts
@@ -135,6 +135,19 @@ export async function GET(request: NextRequest) {
backendPath = '/api/compliance/v1/canonical/blocked-sources'
break
+ case 'v1-matches': {
+ const matchId = searchParams.get('id')
+ if (!matchId) {
+ return NextResponse.json({ error: 'Missing control id' }, { status: 400 })
+ }
+ backendPath = `/api/compliance/v1/canonical/controls/${encodeURIComponent(matchId)}/v1-matches`
+ break
+ }
+
+ case 'v1-enrichment-stats':
+ backendPath = '/api/compliance/v1/canonical/controls/v1-enrichment-stats'
+ break
+
case 'controls-customer': {
const custSeverity = searchParams.get('severity')
const custDomain = searchParams.get('domain')
@@ -201,6 +214,11 @@ export async function POST(request: NextRequest) {
backendPath = '/api/compliance/v1/canonical/generate/bulk-review'
} else if (endpoint === 'blocked-sources-cleanup') {
backendPath = '/api/compliance/v1/canonical/blocked-sources/cleanup'
+ } else if (endpoint === 'enrich-v1-matches') {
+ const dryRun = searchParams.get('dry_run') ?? 'true'
+ const batchSize = searchParams.get('batch_size') ?? '100'
+ const enrichOffset = searchParams.get('offset') ?? '0'
+ backendPath = `/api/compliance/v1/canonical/controls/enrich-v1-matches?dry_run=${dryRun}&batch_size=${batchSize}&offset=${enrichOffset}`
} else if (endpoint === 'similarity-check') {
const controlId = searchParams.get('id')
if (!controlId) {
diff --git a/admin-compliance/app/sdk/atomic-controls/page.tsx b/admin-compliance/app/sdk/atomic-controls/page.tsx
index 1fdb7c8..7e21afc 100644
--- a/admin-compliance/app/sdk/atomic-controls/page.tsx
+++ b/admin-compliance/app/sdk/atomic-controls/page.tsx
@@ -308,7 +308,7 @@ export default function AtomicControlsPage() {
+ {onNavigateToControl ? ( + + ) : ( + + {match.matched_control_id} + + )} + {match.matched_title} +
+Keine regulatorische Abdeckung gefunden. Dieses Control ist eine reine Eigenentwicklung.
+ ) : null} +