mako-process-definitions
v0.1.1
Published
Machine-readable MaKo (GPKE, WiM, GeLi Gas, MaBiS) process definitions with tooling for energy market messaging.
Maintainers
Readme
mako-process-definitions
Maschinenlesbare Prozessdefinitionen für GPKE, WiM und GeLi Gas – gebaut für gestresste Entwickler:innen bei Energieversorgern.
⭐️ Highlights
- Konzentriertes Expertenwissen: Wir extrahieren die BDEW/AHB-Regeln in strukturierte YAML-Dateien.
- Sofort nutzbar: Loader, Validierung und Integrations-Plugins liefern Mehrwert ohne Regelwerks-Studium.
- Aktuell bleiben: Der Willi-Mako-Sync synchronisiert Definitionen mit der MCP-Wissensbasis.
Maintainer: STROMDAO GmbH – [email protected]
📦 Installation
npm install mako-process-definitionsVoraussetzung: Node.js 18.18 oder höher.
🚀 Schnellstart
const { ProcessDefinitionLoader } = require('mako-process-definitions');
async function main() {
const loader = new ProcessDefinitionLoader();
const registry = await loader.loadAll();
const process = registry.findByPruefidentifikator('44001');
console.log(process.name);
}
main();🧠 Kontext für Nicht-MaKo-Profis
- GPKE regelt die Marktkommunikation beim Lieferantenwechsel und Stammdatenänderungen (elektrische Energie).
- WiM kümmert sich um Messwesen-Prozesse rund um Stromzähler und Messstellenbetreiber.
- GeLi Gas deckt Lieferantenwechselprozesse im Gasmarkt ab.
- Prüfidentifikatoren (z. B.
44001) benennen konkrete Nachrichtenszenarien.
Unsere Definitionen beschreiben pro Prozess:
- Trigger-Nachricht (
UTILMD,MSCONS, ...) - Erwartete Antworten inkl. Fristen
- Prozesszustände (z. B.
pending,confirmed) - Validierungsregeln (z. B. Marktlokations-ID muss 11-stellig sein)
📂 Repository-Überblick
| Pfad | Inhalt |
| ---- | ------ |
| definitions/ | YAML-Dateien je Prozess (GPKE/WiM/GeLi Gas/MaBiS) |
| src/core/ | Loader, Validator, Registry |
| src/integrations/ | Plugins für edifact-json-transformer, mako-message-router, Willi-Mako-Sync |
| scripts/ | CLI-Tools (generate-from-willi, validate-all, sanitize-existing-definitions) |
| docs/ | Hintergrundinfos für Entwickler:innen |
| examples/ | Einstiegsskripte zur Integration |
🛠️ Tooling & Workflows
npm run lint– ESLint-Checksnpm test– Jest-Tests, inkl. Integrationspfadenpm run definitions:validate– Schema-Validierung der YAML-Dateiennpm run definitions:generate– Sync mit Willi Mako (erfordert Token)npm run definitions:sanitize– Normalisiert bestehende YAML-Dateien mit der aktuellen Sanitizer-Logiknpm run definitions:link-ebd– Übernimmt Entscheidungsbaum-Mappings ausdocs/decision-trees/*- GitHub Actions: Continuous Integration + wöchentliche Synchronisation
✋ Manuelle Kuratierung
Der Generator liefert hochwertige Defaults, aber einige Prüfi-Varianten benötigen weiterhin Fachwissen (z. B. definitions/gpke/44001-44001.yaml). Markiere solche Dateien in Reviews, dokumentiere Quellen im PR und prüfe sie im Release-Prozess erneut.
🧩 Integrationen
EDIFACT-Transformer
const { EdifactTransformer } = require('edifact-json-transformer');
const { TransformerProcessPlugin } = require('mako-process-definitions/integrations/transformer');
const plugin = new TransformerProcessPlugin();
await plugin.initialize();
const transformer = new EdifactTransformer({ plugins: [plugin] });
const message = transformer.transform(edifactInput);
console.log(message.process.expected_responses);Prozessbasiertes Routing
const { ProcessAwareRouter } = require('mako-process-definitions/integrations/router');
const router = new ProcessAwareRouter();
await router.initialize();
const routing = await router.route(message);
console.log(routing.queue); // z. B. gpke.outbound.44001🔐 Konfiguration
.env.examplekopieren →.env- Willi-Mako-Token erzeugen:
willi-mako auth login -e <email> -p <password> WILLI_MAKO_TOKENsetzen
Weitere Details: docs/configuration.md
📚 Weiterführende Dokumente
- Energy Market Basics
- Process Definition Guide
- Integration Guide
- Architecture
- API Reference
- Release Playbook
- Changelog
🤝 Contributing
Pull Requests und Issues sind willkommen. Bitte beachte:
- Schema-Checks (
npm run definitions:validate) vor jedem Commit - Naming:
<pruefidentifikator>-<slug>.yaml - Konventionelle Commits bevorzugt
Contributor Covenant Code of Conduct: CODE_OF_CONDUCT.md
🛠️ Support & Kontakt
- Maintainer: STROMDAO GmbH – [email protected]
- Issues: GitHub Tracker
📄 Lizenz
MIT © STROMDAO GmbH
