Getting Started
Der TypeScript Client ermöglicht die Verbindung zu einer ProcessCube® Engine aus Node.js oder Browser-Anwendungen. Diese Seite zeigt, wie Sie einen Client erstellen und konfigurieren.
Client erstellen
Der einfachste Weg, einen Client zu erstellen, ist die Angabe der Engine-URL:
import { Client } from '@processcube/client';
// Die URL der Engine, zu der verbunden werden soll
const engineUrl = 'http://localhost:8000';
console.log(`Erstelle einen neuen Client und verbinde zur Engine unter ${engineUrl}`);
const client = new Client(engineUrl);
console.log('Fertig!');Für lokale Entwicklung ohne Authentifizierung reicht die Engine-URL aus. Für produktive Umgebungen sollten Sie immer Authentifizierung verwenden.
Client mit Authentifizierung erstellen
Für produktive Umgebungen oder wenn die Engine mit ProcessCube® Authority geschützt ist, verwenden Sie den Client-Credentials-Flow:
import { Client } from '@processcube/client';
// Die URL der Engine, zu der verbunden werden soll
const engineUrl = 'http://localhost:8000';
// Der Client verwendet den Client-Credentials-Flow zur Authentifizierung
// Dazu muss eine Client-Konfiguration in der Authority hinzugefügt werden
const clientCredentialsConfig = {
clientId: 'engine_client',
clientSecret: 'mySecret',
authorityUrl: 'http://localhost:11235',
};
console.log(
`Erstelle einen neuen Client und verbinde zur Engine unter ${engineUrl} mit Credentials`
);
const client = new Client(engineUrl, clientCredentialsConfig);
console.log('Fertig!');Speichern Sie Client-Secrets niemals im Code! Verwenden Sie Umgebungsvariablen oder ein Secret-Management-System.
Konfigurationsoptionen
Client Credentials
Bei Verwendung der Client-Credentials-Authentifizierung können folgende Optionen konfiguriert werden:
| Option | Typ | Beschreibung |
|---|---|---|
clientId | string | Die Client-ID, registriert in der Authority |
clientSecret | string | Das Client-Secret für die Authentifizierung |
authorityUrl | string | Die URL der ProcessCube® Authority |
scope | string | (Optional) Die Scopes für den Access-Token |
Standard-Scopes
Wenn Sie keinen scope angeben, werden folgende Standard-Scopes verwendet:
engine_read- Lesezugriff auf Engine-Ressourcenengine_write- Schreibzugriff auf Engine-Ressourcenengine_etw- Zugriff auf External Task Workerengine_models_write- Berechtigung zum Deployen von Prozessmodellen
const clientCredentialsConfig = {
clientId: 'my-client',
clientSecret: 'mySecret',
authorityUrl: 'http://localhost:11235',
scope: 'engine_read engine_write engine_etw engine_models_write',
};
const client = new Client(engineUrl, clientCredentialsConfig);Best Practices
Umgebungsvariablen verwenden
Speichern Sie Credentials in Umgebungsvariablen:
import { Client } from '@processcube/client';
const client = new Client(
process.env.ENGINE_URL || 'http://localhost:8000',
{
clientId: process.env.CLIENT_ID || '',
clientSecret: process.env.CLIENT_SECRET || '',
authorityUrl: process.env.AUTHORITY_URL || 'http://localhost:11235',
}
);Client wiederverwenden
Erstellen Sie den Client einmal und verwenden Sie ihn in Ihrer gesamten Anwendung:
// client.ts
import { Client } from '@processcube/client';
export const engineClient = new Client(
process.env.ENGINE_URL || 'http://localhost:8000',
{
clientId: process.env.CLIENT_ID || '',
clientSecret: process.env.CLIENT_SECRET || '',
authorityUrl: process.env.AUTHORITY_URL || 'http://localhost:11235',
}
);
// In anderen Dateien importieren
import { engineClient } from './client';
const processes = await engineClient.getProcesses();Error Handling
Behandeln Sie Connection-Errors beim Client-Setup:
import { Client } from '@processcube/client';
try {
const client = new Client(engineUrl, clientCredentialsConfig);
// Teste die Verbindung
const info = await client.getApplicationInfo();
console.log(`Verbunden zur Engine Version ${info.version}`);
} catch (error) {
console.error('Fehler beim Verbinden zur Engine:', error);
process.exit(1);
}Nächste Schritte
Nachdem Sie einen Client erstellt haben, können Sie:
- Prozesse verwalten - Prozesse auflisten, deployen und starten
- User Tasks bearbeiten - User Tasks abrufen und abschließen
- External Tasks implementieren - External Task Worker erstellen
- Events senden - Signale und Messages an Prozesse senden
Weitere Ressourcen
- ProcessCube® Authority - Erfahren Sie mehr über die Authentifizierung
- TypeScript Client Übersicht - Zurück zur Hauptseite