Files
breakpilot-compliance/developer-portal/app/api/iace/_components/RiskAssessmentSection.tsx
Sharang Parnerkar 9ec72ed681 refactor(developer-portal): split iace, docs, byoeh pages
Extract each page into colocated _components/ sections to bring
page.tsx files from 1008/891/769 LOC down to 57/23/21 LOC,
well within the 500-line hard cap.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18 08:45:13 +02:00

96 lines
3.1 KiB
TypeScript

'use client'
import { ApiEndpoint, CodeBlock, ParameterTable } from '@/components/DevPortalLayout'
export function RiskAssessmentSection() {
return (
<>
<h2>Risk Assessment</h2>
<p>
4-Faktor-Risikobewertung nach ISO 12100 mit den Parametern Schwere (S),
Exposition (E), Eintrittswahrscheinlichkeit (P) und Vermeidbarkeit (A).
</p>
<ApiEndpoint method="POST" path="/sdk/v1/iace/projects/:id/hazards/:hid/assess" description="Risiko bewerten (S/E/P/A, Inherent Risk, C_eff, Residual Risk)" />
<h3>Request Body</h3>
<ParameterTable
parameters={[
{ name: 'severity', type: 'number (1-4)', required: true, description: 'Schwere: 1=gering, 2=mittel, 3=schwer, 4=toedlich' },
{ name: 'exposure', type: 'number (1-4)', required: true, description: 'Exposition: 1=selten, 2=gelegentlich, 3=haeufig, 4=dauernd' },
{ name: 'probability', type: 'number (1-4)', required: true, description: 'Eintrittswahrscheinlichkeit: 1=unwahrscheinlich, 2=moeglich, 3=wahrscheinlich, 4=sehr wahrscheinlich' },
{ name: 'avoidance', type: 'number (1-4)', required: true, description: 'Vermeidbarkeit: 1=leicht, 2=moeglich, 3=schwer, 4=unmoeglich' },
]}
/>
<CodeBlock language="bash" filename="cURL">
{`curl -X POST "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/hazards/haz_5678/assess" \\
-H "Authorization: Bearer YOUR_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{
"severity": 4,
"exposure": 3,
"probability": 2,
"avoidance": 3
}'`}
</CodeBlock>
<h3>Response (200 OK)</h3>
<CodeBlock language="json" filename="Response">
{`{
"success": true,
"data": {
"hazard_id": "haz_5678",
"severity": 4,
"exposure": 3,
"probability": 2,
"avoidance": 3,
"inherent_risk": 12,
"risk_level": "high",
"c_eff": 0.65,
"residual_risk": 4.2,
"residual_risk_level": "medium",
"risk_acceptable": false,
"recommendation": "Zusaetzliche Schutzmassnahmen erforderlich. 3-Stufen-Hierarchie anwenden."
}
}`}
</CodeBlock>
<ApiEndpoint method="GET" path="/sdk/v1/iace/projects/:id/risk-summary" description="Aggregierte Risikouebersicht des Projekts" />
<CodeBlock language="bash" filename="cURL">
{`curl -X GET "https://api.breakpilot.io/sdk/v1/iace/projects/proj_a1b2c3d4/risk-summary" \\
-H "Authorization: Bearer YOUR_API_KEY"`}
</CodeBlock>
<h3>Response (200 OK)</h3>
<CodeBlock language="json" filename="Response">
{`{
"success": true,
"data": {
"total_hazards": 14,
"assessed": 12,
"unassessed": 2,
"risk_distribution": {
"critical": 1,
"high": 4,
"medium": 5,
"low": 2
},
"residual_risk_distribution": {
"critical": 0,
"high": 1,
"medium": 3,
"low": 8
},
"average_c_eff": 0.71,
"overall_risk_acceptable": false
}
}`}
</CodeBlock>
<ApiEndpoint method="POST" path="/sdk/v1/iace/projects/:id/hazards/:hid/reassess" description="Risiko nach Massnahmen-Umsetzung neu bewerten" />
</>
)
}