SDK Konfiguration

Alle Konfigurationsoptionen des AI Compliance SDK

SDKProvider Props

Der SDKProvider akzeptiert folgende Konfigurationsoptionen:

ParameterTypeRequiredDescription
tenantIdstringYesIhre eindeutige Tenant-ID (erhalten nach Abo-Abschluss)
apiKeystringNoAPI Key fuer authentifizierte Anfragen (nur serverseitig verwenden)
userIdstringNoBenutzer-ID fuer Audit-Trail und Checkpoints
enableBackendSyncbooleanNoAktiviert automatische Synchronisation mit dem Backend (default: false)
apiBaseUrlstringNoCustom API URL fuer Self-Hosted Installationen
syncIntervalnumberNoIntervall fuer Auto-Sync in Millisekunden (default: 30000)
enableOfflineSupportbooleanNoAktiviert localStorage Fallback bei Offline (default: true)
initialStepstringNoInitialer Schritt beim ersten Laden (default: "advisory-board")
onError(error: Error) => voidNoCallback fuer Fehlerbehandlung
onStateChange(state: SDKState) => voidNoCallback bei State-Aenderungen

Vollstaendiges Beispiel

app/layout.tsx
'use client'

import { SDKProvider } from '@breakpilot/compliance-sdk'
import { useRouter } from 'next/navigation'

export default function SDKLayout({ children }: { children: React.ReactNode }) {
  const router = useRouter()

  return (
    <SDKProvider
      tenantId={process.env.NEXT_PUBLIC_TENANT_ID!}
      userId="user-123"
      enableBackendSync={true}
      syncInterval={60000} // Sync alle 60 Sekunden
      enableOfflineSupport={true}
      initialStep="use-case-workshop"
      onError={(error) => {
        console.error('SDK Error:', error)
        // Optional: Sentry oder anderes Error-Tracking
      }}
      onStateChange={(state) => {
        console.log('State changed:', state.currentStep)
        // Optional: Analytics-Events
      }}
    >
      {children}
    </SDKProvider>
  )
}

Synchronisations-Strategien

1. Nur localStorage (Offline-Only)

Offline-Only
<SDKProvider
  tenantId="my-tenant"
  enableBackendSync={false}
  enableOfflineSupport={true}
>
  {children}
</SDKProvider>

Ideal fuer: Lokale Entwicklung, Demos, Privacy-fokussierte Installationen. Daten werden nur im Browser gespeichert.

2. Backend-Sync mit Fallback

Backend + Fallback
<SDKProvider
  tenantId="my-tenant"
  enableBackendSync={true}
  enableOfflineSupport={true}
  syncInterval={30000}
>
  {children}
</SDKProvider>

Empfohlen fuer: Produktionsumgebungen. Daten werden mit dem Backend synchronisiert, localStorage dient als Fallback bei Netzwerkproblemen.

3. Nur Backend (kein lokaler Cache)

Backend-Only
<SDKProvider
  tenantId="my-tenant"
  enableBackendSync={true}
  enableOfflineSupport={false}
>
  {children}
</SDKProvider>

Ideal fuer: Strenge Compliance-Anforderungen, Multi-User-Szenarien. Daten werden nur im Backend gespeichert.

Backend-Only Modus

Im Backend-Only Modus ist eine aktive Internetverbindung erforderlich. Bei Netzwerkproblemen koennen Daten verloren gehen.

API URL Konfiguration

Cloud-Version (Standard)

Keine zusaetzliche Konfiguration erforderlich:

Cloud
<SDKProvider tenantId="my-tenant">
  {/* Nutzt automatisch https://api.breakpilot.io/sdk/v1 */}
</SDKProvider>

Self-Hosted

Self-Hosted
<SDKProvider
  tenantId="my-tenant"
  apiBaseUrl="https://your-server.com/sdk/v1"
>
  {children}
</SDKProvider>

Lokale Entwicklung

Local Dev
<SDKProvider
  tenantId="dev-tenant"
  apiBaseUrl="http://localhost:8085/sdk/v1"
  enableBackendSync={true}
>
  {children}
</SDKProvider>

Feature Flags

Das SDK unterstuetzt Feature Flags ueber Subscription-Levels:

Feature Checks
import { useSDK } from '@breakpilot/compliance-sdk'

function MyComponent() {
  const { state } = useSDK()

  // Subscription-basierte Features
  const isEnterprise = state.subscription === 'ENTERPRISE'
  const isProfessional = ['PROFESSIONAL', 'ENTERPRISE'].includes(state.subscription)

  // Feature-Gates
  const canExportPDF = isProfessional
  const canUseRAG = isProfessional
  const canCustomizeDSFA = isEnterprise
  const canUseAPI = isProfessional

  return (
    <div>
      {canExportPDF && <button>PDF Export</button>}
      {canUseRAG && <RAGSearchPanel />}
    </div>
  )
}

Logging & Debugging

Aktivieren Sie detailliertes Logging fuer die Entwicklung:

Debug Mode
// In Ihrer .env.local
NEXT_PUBLIC_SDK_DEBUG=true

// Oder programmatisch
<SDKProvider
  tenantId="my-tenant"
  onStateChange={(state) => {
    if (process.env.NODE_ENV === 'development') {
      console.log('[SDK] State Update:', {
        phase: state.currentPhase,
        step: state.currentStep,
        useCases: state.useCases.length,
        risks: state.risks.length,
      })
    }
  }}
>
  {children}
</SDKProvider>

React DevTools

Der SDK-State ist im React DevTools unter dem SDKProvider-Context sichtbar. Installieren Sie die React Developer Tools Browser-Extension fuer einfaches Debugging.