SDK Documentation

TypeScript SDK für React und Next.js Integration

Übersicht

Das AI Compliance SDK ist ein TypeScript-Paket für die Integration des Compliance-Workflows in React und Next.js Anwendungen. Es bietet:

  • React Context Provider für State Management
  • Hooks für einfachen Zugriff auf Compliance-Daten
  • Automatische Synchronisation mit dem Backend
  • Offline-Support mit localStorage Fallback
  • Export-Funktionen (PDF, JSON, ZIP)

Kernkomponenten

SDKProvider

Der Provider wrappet Ihre App und stellt den SDK-Kontext bereit:

app/layout.tsx
import { SDKProvider } from '@breakpilot/compliance-sdk'

export default function Layout({ children }) {
  return (
    <SDKProvider
      tenantId="your-tenant"
      enableBackendSync={true}
    >
      {children}
    </SDKProvider>
  )
}

useSDK Hook

Der Haupt-Hook für den Zugriff auf alle SDK-Funktionen:

component.tsx
import { useSDK } from '@breakpilot/compliance-sdk'

function MyComponent() {
  const {
    // State
    state,
    dispatch,

    // Navigation
    currentStep,
    goToStep,
    goToNextStep,
    goToPreviousStep,
    canGoNext,
    canGoPrevious,

    // Progress
    completionPercentage,
    phase1Completion,
    phase2Completion,

    // Checkpoints
    validateCheckpoint,
    overrideCheckpoint,
    getCheckpointStatus,

    // Data Updates
    updateUseCase,
    addRisk,
    updateControl,

    // Persistence
    saveState,
    loadState,

    // Demo Data
    seedDemoData,
    clearDemoData,
    isDemoDataLoaded,

    // Sync
    syncState,
    forceSyncToServer,
    isOnline,

    // Export
    exportState,

    // Command Bar
    isCommandBarOpen,
    setCommandBarOpen,
  } = useSDK()

  return (
    <div>
      <h1>Progress: {completionPercentage}%</h1>
      <button onClick={() => goToStep('risks')}>
        Zur Risikoanalyse
      </button>
    </div>
  )
}

Types

Das SDK exportiert alle TypeScript-Types für volle Typsicherheit:

types.ts
import type {
  // Core Types
  SDKState,
  SDKAction,
  SDKStep,
  SDKPhase,

  // Use Cases
  UseCaseAssessment,
  AssessmentResult,

  // Risk Management
  Risk,
  RiskSeverity,
  RiskMitigation,

  // Controls & Evidence
  Control,
  Evidence,
  Requirement,

  // Checkpoints
  Checkpoint,
  CheckpointStatus,
  ValidationError,

  // DSFA
  DSFA,
  DSFASection,
  DSFAApproval,

  // TOMs & VVT
  TOM,
  ProcessingActivity,
  RetentionPolicy,

  // AI Act
  AIActResult,
  AIActRiskCategory,
} from '@breakpilot/compliance-sdk'

Utility Functions

Hilfreiche Funktionen für die Arbeit mit dem SDK:

utils.ts
import {
  // Step Navigation
  getStepById,
  getStepByUrl,
  getNextStep,
  getPreviousStep,
  getStepsForPhase,

  // Risk Calculation
  calculateRiskScore,
  getRiskSeverityFromScore,
  calculateResidualRisk,

  // Progress
  getCompletionPercentage,
  getPhaseCompletionPercentage,
} from '@breakpilot/compliance-sdk'

// Beispiel: Risk Score berechnen
const inherentRisk = calculateRiskScore(4, 5) // likelihood * impact = 20
const severity = getRiskSeverityFromScore(20) // 'CRITICAL'

API Client

Für direkten API-Zugriff ohne React Context:

api.ts
import {
  getSDKApiClient,
  SDKApiClient,
} from '@breakpilot/compliance-sdk'

const client = getSDKApiClient('your-tenant-id')

// State laden
const state = await client.getState()

// State speichern
await client.saveState(updatedState)

// Checkpoint validieren
const result = await client.validateCheckpoint('CP-UC', state)

// Export
const blob = await client.exportState('pdf')

RAG & LLM Client

Zugriff auf die RAG-Suche und Dokumentengenerierung:

rag.ts
import {
  getSDKBackendClient,
  isLegalQuery,
} from '@breakpilot/compliance-sdk'

const client = getSDKBackendClient()

// RAG-Suche
const results = await client.search('DSGVO Art. 5', 5)
console.log(results) // SearchResult[]

// Dokumentengenerierung
const dsfa = await client.generateDSFA(context)
const toms = await client.generateTOM(context)
const vvt = await client.generateVVT(context)

// Prüfen ob eine Query rechtliche Inhalte betrifft
if (isLegalQuery('Einwilligung DSGVO')) {
  // RAG-Suche durchführen
}

Export

Exportieren Sie Compliance-Daten in verschiedenen Formaten:

export.ts
import { exportToPDF, exportToZIP, downloadExport } from '@breakpilot/compliance-sdk'

// PDF Export
const pdfBlob = await exportToPDF(state)
downloadExport(pdfBlob, 'compliance-report.pdf')

// ZIP Export (alle Dokumente)
const zipBlob = await exportToZIP(state)
downloadExport(zipBlob, 'compliance-export.zip')

// Über den Hook
const { exportState } = useSDK()
const blob = await exportState('pdf') // 'json' | 'pdf' | 'zip'