fix: correct canonical control proxy paths to include /compliance prefix
All checks were successful
CI/CD / go-lint (push) Has been skipped
CI/CD / python-lint (push) Has been skipped
CI/CD / nodejs-lint (push) Has been skipped
CI/CD / test-go-ai-compliance (push) Successful in 44s
CI/CD / test-python-backend-compliance (push) Successful in 1m4s
CI/CD / test-python-document-crawler (push) Successful in 27s
CI/CD / test-python-dsms-gateway (push) Successful in 24s
CI/CD / validate-canonical-controls (push) Successful in 14s
CI/CD / deploy-hetzner (push) Successful in 1m49s
All checks were successful
CI/CD / go-lint (push) Has been skipped
CI/CD / python-lint (push) Has been skipped
CI/CD / nodejs-lint (push) Has been skipped
CI/CD / test-go-ai-compliance (push) Successful in 44s
CI/CD / test-python-backend-compliance (push) Successful in 1m4s
CI/CD / test-python-document-crawler (push) Successful in 27s
CI/CD / test-python-dsms-gateway (push) Successful in 24s
CI/CD / validate-canonical-controls (push) Successful in 14s
CI/CD / deploy-hetzner (push) Successful in 1m49s
The backend mounts the compliance router at /api/compliance, so canonical control endpoints are at /api/compliance/v1/canonical/*, not /api/v1/canonical/*. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,11 +6,11 @@ const BACKEND_URL = process.env.BACKEND_URL || 'http://backend-compliance:8002'
|
|||||||
* Proxy: GET /api/sdk/v1/canonical?endpoint=...
|
* Proxy: GET /api/sdk/v1/canonical?endpoint=...
|
||||||
*
|
*
|
||||||
* Routes to backend canonical control endpoints:
|
* Routes to backend canonical control endpoints:
|
||||||
* endpoint=frameworks → GET /api/v1/canonical/frameworks
|
* endpoint=frameworks → GET /api/compliance/v1/canonical/frameworks
|
||||||
* endpoint=controls → GET /api/v1/canonical/controls(?severity=...&domain=...)
|
* endpoint=controls → GET /api/compliance/v1/canonical/controls(?severity=...&domain=...)
|
||||||
* endpoint=control&id= → GET /api/v1/canonical/controls/{id}
|
* endpoint=control&id= → GET /api/compliance/v1/canonical/controls/{id}
|
||||||
* endpoint=sources → GET /api/v1/canonical/sources
|
* endpoint=sources → GET /api/compliance/v1/canonical/sources
|
||||||
* endpoint=licenses → GET /api/v1/canonical/licenses
|
* endpoint=licenses → GET /api/compliance/v1/canonical/licenses
|
||||||
*/
|
*/
|
||||||
export async function GET(request: NextRequest) {
|
export async function GET(request: NextRequest) {
|
||||||
try {
|
try {
|
||||||
@@ -21,7 +21,7 @@ export async function GET(request: NextRequest) {
|
|||||||
|
|
||||||
switch (endpoint) {
|
switch (endpoint) {
|
||||||
case 'frameworks':
|
case 'frameworks':
|
||||||
backendPath = '/api/v1/canonical/frameworks'
|
backendPath = '/api/compliance/v1/canonical/frameworks'
|
||||||
break
|
break
|
||||||
|
|
||||||
case 'controls': {
|
case 'controls': {
|
||||||
@@ -31,7 +31,7 @@ export async function GET(request: NextRequest) {
|
|||||||
if (severity) params.set('severity', severity)
|
if (severity) params.set('severity', severity)
|
||||||
if (domain) params.set('domain', domain)
|
if (domain) params.set('domain', domain)
|
||||||
const qs = params.toString()
|
const qs = params.toString()
|
||||||
backendPath = `/api/v1/canonical/controls${qs ? `?${qs}` : ''}`
|
backendPath = `/api/compliance/v1/canonical/controls${qs ? `?${qs}` : ''}`
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,16 +40,16 @@ export async function GET(request: NextRequest) {
|
|||||||
if (!controlId) {
|
if (!controlId) {
|
||||||
return NextResponse.json({ error: 'Missing control id' }, { status: 400 })
|
return NextResponse.json({ error: 'Missing control id' }, { status: 400 })
|
||||||
}
|
}
|
||||||
backendPath = `/api/v1/canonical/controls/${encodeURIComponent(controlId)}`
|
backendPath = `/api/compliance/v1/canonical/controls/${encodeURIComponent(controlId)}`
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'sources':
|
case 'sources':
|
||||||
backendPath = '/api/v1/canonical/sources'
|
backendPath = '/api/compliance/v1/canonical/sources'
|
||||||
break
|
break
|
||||||
|
|
||||||
case 'licenses':
|
case 'licenses':
|
||||||
backendPath = '/api/v1/canonical/licenses'
|
backendPath = '/api/compliance/v1/canonical/licenses'
|
||||||
break
|
break
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -82,7 +82,7 @@ export async function GET(request: NextRequest) {
|
|||||||
/**
|
/**
|
||||||
* Proxy: POST /api/sdk/v1/canonical?endpoint=similarity-check&id=...
|
* Proxy: POST /api/sdk/v1/canonical?endpoint=similarity-check&id=...
|
||||||
*
|
*
|
||||||
* Routes to: POST /api/v1/canonical/controls/{id}/similarity-check
|
* Routes to: POST /api/compliance/v1/canonical/controls/{id}/similarity-check
|
||||||
*/
|
*/
|
||||||
export async function POST(request: NextRequest) {
|
export async function POST(request: NextRequest) {
|
||||||
try {
|
try {
|
||||||
@@ -96,7 +96,7 @@ export async function POST(request: NextRequest) {
|
|||||||
|
|
||||||
const body = await request.json()
|
const body = await request.json()
|
||||||
const response = await fetch(
|
const response = await fetch(
|
||||||
`${BACKEND_URL}/api/v1/canonical/controls/${encodeURIComponent(controlId)}/similarity-check`,
|
`${BACKEND_URL}/api/compliance/v1/canonical/controls/${encodeURIComponent(controlId)}/similarity-check`,
|
||||||
{
|
{
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Unabhaengige Taxonomie — kein Bezug zu proprietaeren Frameworks.
|
|||||||
|
|
||||||
**Prefix:** `CP-CLIB` · **Frontend:** `https://macmini:3007/sdk/control-library`
|
**Prefix:** `CP-CLIB` · **Frontend:** `https://macmini:3007/sdk/control-library`
|
||||||
**Provenance Wiki:** `https://macmini:3007/sdk/control-provenance`
|
**Provenance Wiki:** `https://macmini:3007/sdk/control-provenance`
|
||||||
**Proxy:** `/api/sdk/v1/canonical` → `backend-compliance:8002/api/v1/canonical/...`
|
**Proxy:** `/api/sdk/v1/canonical` → `backend-compliance:8002/api/compliance/v1/canonical/...`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user