Konfiguration
Die Konfiguration des Artifact Shippers erfolgt über eine config.json-Datei, die alle notwendigen Parameter für den Deployment-Prozess enthält.
Aufbau der config.json
Die Konfigurationsdatei ist in mehrere Hauptbereiche unterteilt:
{
"general": { ... },
"credentials": { ... },
"artifacts": [ ... ],
"targets": [ ... ],
"preprocessors": [ ... ]
}General Settings
Der general-Bereich enthält grundlegende Einstellungen:
{
"general": {
"logLevel": "info",
"skipValidation": false
}
}Parameter
- logLevel: Logging-Level (
error,warn,info,debug,trace) - skipValidation: Validierung von Artefakten überspringen (Standard:
false)
Credentials
Der credentials-Bereich definiert Zugangsdaten für verschiedene Systeme:
{
"credentials": {
"processcube": {
"type": "openid",
"authority": "https://authority.example.com",
"clientId": "artifact-shipper",
"clientSecret": "your-secret"
},
"git": {
"username": "git-user",
"token": "github-personal-access-token"
}
}
}ProcessCube® Credentials
Für die Authentifizierung bei der ProcessCube® Engine:
- type: Authentifizierungstyp (
openid) - authority: URL der Authority
- clientId: Client-ID für OAuth2
- clientSecret: Client-Secret für OAuth2
Git Credentials
Für den Zugriff auf private Git-Repositories:
- username: Git-Benutzername
- token: Personal Access Token
Artifacts
Der artifacts-Array definiert, welche Artefakte aus welchen Quellen geladen werden sollen:
Lokale Dateien
{
"artifacts": [
{
"type": "local",
"path": "./bpmn-diagrams",
"pattern": "**/*.bpmn"
}
]
}Git Repository
{
"artifacts": [
{
"type": "git",
"repository": "https://github.com/example/processes.git",
"branch": "main",
"path": "diagrams",
"pattern": "**/*.bpmn"
}
]
}Parameter
- type: Quelltyp (
local,git) - path: Pfad zum Verzeichnis
- pattern: Glob-Pattern für Dateien (z.B.
**/*.bpmn,**/*.json) - repository: Git-Repository-URL (nur bei
type: git) - branch: Git-Branch (nur bei
type: git, Standard:main)
Targets
Der targets-Array definiert, wohin die Artefakte deployed werden:
ProcessCube® Engine
{
"targets": [
{
"type": "processcube-engine",
"url": "https://engine.example.com",
"overwriteExisting": true
}
]
}ProcessCube® LowCode
{
"targets": [
{
"type": "processcube-lowcode",
"url": "https://lowcode.example.com",
"flowName": "main-flow"
}
]
}Parameter
- type: Zieltyp (
processcube-engine,processcube-lowcode) - url: URL des Zielsystems
- overwriteExisting: Bestehende Artefakte überschreiben (nur Engine, Standard:
true) - flowName: Name des Flows (nur LowCode)
Preprocessors
Preprocessors ermöglichen die Transformation von Artefakten vor dem Deployment:
{
"preprocessors": [
{
"type": "replace",
"pattern": "\\$\\{ENV\\}",
"replacement": "production"
}
]
}Verfügbare Preprocessors
Replace
Ersetzt Text-Patterns in den Artefakten:
- type:
replace - pattern: Regex-Pattern (als String)
- replacement: Ersetzungstext
Vollständiges Beispiel
{
"general": {
"logLevel": "info",
"skipValidation": false
},
"credentials": {
"processcube": {
"type": "openid",
"authority": "https://authority.processcube.io",
"clientId": "artifact-shipper",
"clientSecret": "secret123"
},
"git": {
"username": "deployment-user",
"token": "ghp_xxxxxxxxxxxxx"
}
},
"artifacts": [
{
"type": "git",
"repository": "https://github.com/company/processes.git",
"branch": "main",
"path": "bpmn",
"pattern": "**/*.bpmn"
},
{
"type": "local",
"path": "./flows",
"pattern": "**/*.json"
}
],
"targets": [
{
"type": "processcube-engine",
"url": "https://engine.processcube.io",
"overwriteExisting": true
},
{
"type": "processcube-lowcode",
"url": "https://lowcode.processcube.io",
"flowName": "production-flow"
}
],
"preprocessors": [
{
"type": "replace",
"pattern": "\\$\\{ENV\\}",
"replacement": "production"
}
]
}Umgebungsvariablen
Sensible Daten wie clientSecret können auch über Umgebungsvariablen referenziert werden:
{
"credentials": {
"processcube": {
"clientSecret": "${PROCESSCUBE_CLIENT_SECRET}"
}
}
}Der Artifact Shipper ersetzt ${VARIABLE_NAME} automatisch durch den Wert der entsprechenden Umgebungsvariable.