SDK Konfiguration
Alle Konfigurationsoptionen des AI Compliance SDK
SDKProvider Props
Der SDKProvider akzeptiert folgende Konfigurationsoptionen:
| Parameter | Type | Required | Description |
|---|---|---|---|
tenantId | string | Yes | Ihre eindeutige Tenant-ID (erhalten nach Abo-Abschluss) |
apiKey | string | No | API Key fuer authentifizierte Anfragen (nur serverseitig verwenden) |
userId | string | No | Benutzer-ID fuer Audit-Trail und Checkpoints |
enableBackendSync | boolean | No | Aktiviert automatische Synchronisation mit dem Backend (default: false) |
apiBaseUrl | string | No | Custom API URL fuer Self-Hosted Installationen |
syncInterval | number | No | Intervall fuer Auto-Sync in Millisekunden (default: 30000) |
enableOfflineSupport | boolean | No | Aktiviert localStorage Fallback bei Offline (default: true) |
initialStep | string | No | Initialer Schritt beim ersten Laden (default: "advisory-board") |
onError | (error: Error) => void | No | Callback fuer Fehlerbehandlung |
onStateChange | (state: SDKState) => void | No | Callback 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.