← ERP rendszer építők adatlapja
Nézd meg, miben segít
Folyamatellenőrzés és verziózás
A gráf helyességét és beállítását ellenőrzi, elválasztva a szerkeszthető piszkozatot a változatlan publikált verziótól.
workflow-validation-versioning
Ezt a skillt használó csapattagok
Mikor hasznos?
Akkor használd, ha hibás ág vagy szerkesztés aktív futást érinthet.
Miben segít neked?
- Ellenőrzi a belépést, kilépést, elérhető lépést és korlátos ciklust.
- Validálja a kötelező beállítást és elérhető korábbi adatra hivatkozást.
- Biztonságos kifejezésértékelést használ, publikált verzióhoz köti a futást.
Például ezt kérheted
Utasíts el elérhetetlen jóváhagyási ágat, és publikálj javítást a régi futások módosítása nélkül. Tedd közzé a javított gráfot, majd folytass várakozó futást. Az új futás új verziót használjon, a régi őrizze eredeti lépéseit és adatszerződését.
Részletes dokumentáció
Itt a skill eredeti útmutatóját, példáit és ellenőrzési szempontjait olvashatod az eredeti nyelven.
Összecsukás
Workflow Validation & Versioning
Use this skill when implementing structural graph validation, expression safety checks, save-vs-publish lifecycles, and immutable workflow versioning.
Shared Client & Server Graph Soundness Validation (Van der Aalst)
A visually connected graph is not automatically executable. Enforce the exact same structural and semantic validation rules in the editor UI and on the server before publishing or starting a run:
- Entry, Exit & Reachability (Workflow Net Soundness):
- Verify at least one valid trigger/start node exists and has no required incoming control edges.
- Traverse forward from start nodes to detect unreachable/isolated islands and verify that every active path can reach a valid terminal node without dead-ending on an unconfigured port.
- Cycle Detection & Bounded Loops:
- Run topological sort / DFS cycle detection (Kahn's or Tarjan's algorithm).
- Reject arbitrary directed cycles in DAG workflows; if structured looping (
ForEach/RepeatUntil) is supported, require an explicitmaxIterationscap and timeout ceiling.
- Complete Step Configuration & Upstream Scope:
- Validate every node's configuration against its
StepTypeschema. - Verify that every variable reference (
{{steps.stepA.output.id}}) points to a node that is guaranteed to execute upstream on all paths leading to the referencing node (not a sibling parallel branch or an unmerged conditional branch).
- Validate every node's configuration against its
- Safe, Sandboxed Condition & Expression Evaluation:
- Never evaluate user-authored conditions or mappings with
eval(),new Function(), or unrestricted server code execution. - Parse and validate expressions using a restricted, deterministic AST evaluator (e.g., JSONLogic, CEL, JMESPath, or a typed AST whitelist) with strict time and memory bounds.
- Never evaluate user-authored conditions or mappings with
Drafts vs. Immutable Published Versions
- Separate Editable Drafts from Published Versions:
- Users may save an incomplete
draftwhile editing, but publishing/activating a workflow requires passing full structural and schema validation and creates an immutableWorkflowVersion(versionNumber, content hash,publishedAt,publishedBy).
- Users may save an incomplete
- Pin Triggers and Runs to Explicit Versions:
- Subsequent edits create a new draft without mutating the published
WorkflowVersion. Active runs always finish against the version they started on (unless an explicit, audited version-migration operation is invoked).
- Subsequent edits create a new draft without mutating the published
Checklist
- Does server-side validation enforce reachability, cycle detection, port wiring, and step config schemas before publish/run?
- Are variable references checked to ensure the referenced node is strictly upstream on all incoming paths?
- Are user conditions and data mappings evaluated in a safe, deterministic sandbox rather than
eval? - Does publishing create an immutable
WorkflowVersionwhile preserving in-flight runs on their original version?
Csomagban lévő fájlok 1
SKILL.md
