Docuvate SDKs

Offizielle Node- und Flutter-Clients für die Headless-API /v1. Vertrag und Codegenerierung basieren auf der exportierten OpenAPI: openapi/docuvate.v1.json

Laufzeit: GET /v1/openapi.json (dieselbe Beschreibung).

Nach API-Änderungen: pnpm openapi:export, dann pnpm sdk:codegen (siehe docs/sdks.md). ( docs/sdks.md in the repository.)

Service-Zugang einrichten

Für Skripte und Integrationen legen Sie einen Service-API-Schlüssel an. Der Schlüssel ist an einen Benutzer gebunden und kann Berechtigungen für Dokumente tragen.

  1. In .env die Variable DOCUVATE_SERVICE_API_KEYS als JSON-Array setzen (keyId, secret, tenantUserId, claims).
  2. API unter https://ihr-host/v1 ansprechen.
  3. Schlüssel im Header Authorization: Bearer <secret> oder X-Docuvate-Api-Key senden.

Node / TypeScript (@docuvate/sdk)

pnpm add @docuvate/sdk

DocuvateClient mit baseUrl und apiKey (Service-API-Schlüssel). Details: docs/sdks.md und packages/sdk-node/README.md.

Dokumente auflisten
TypeScript
import { DocuvateClient } from '@docuvate/sdk';

const client = new DocuvateClient({
  baseUrl: 'https://ihr-host/v1',
  apiKey: process.env.DOCUVATE_API_KEY,
});

const list = await client.api.listDocuments({ query: { status: 'ready' } });
Label anlegen
TypeScript
await client.api.createTag({ body: { name: 'Eingang' } });
Chat-Frage stellen
TypeScript
const reply = await client.api.chat({
  path: { id: documentId },
  body: { message: 'Welche Fälligkeit ist genannt?' },
});
console.log(reply.data?.reply?.content);

Flutter (docuvate)

docuvate: ^1.0.0 in pubspec.yaml (Monorepo-Pfad packages/sdk-flutter)

DocuvateClientConfig mit baseUrl und apiKey für Headless-Zugriff.

Dokument hochladen
Dart
final client = DocuvateClient(
  DocuvateClientConfig(
    baseUrl: 'https://ihr-host/v1',
    apiKey: apiKey,
  ),
);
await client.documents.createDocument(/* MultipartFile */);
Labels lesen
Dart
final tags = await client.taxonomy.listTags();
print(tags.data?.items);
Chat-Frage stellen
Dart
final response = await client.documents.chat(
  id: documentId,
  documentChatRequestDto: DocumentChatRequestDto(
    message: 'Welche Fälligkeit ist genannt?',
  ),
);
print(response.data?.reply.content);