| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from __future__ import annotations
- from dataclasses import dataclass
- from enum import Enum
- from typing import Any, Mapping, Optional, Tuple
- class EngineType(str, Enum):
- N8N = "n8n"
- KESTRA = "kestra"
- class EngineRole(str, Enum):
- PRIMARY = "primary"
- SHADOW = "shadow"
- STANDBY = "standby"
- ARCHIVED = "archived"
- @dataclass(frozen=True)
- class WorkflowVersion:
- id: str
- dataflow_uid: str
- environment: str
- version_no: int
- engine_type: EngineType
- engine_definition_id: str
- definition_hash: str
- status: str
- engine_revision: Optional[str] = None
- deployment_metadata: Optional[Mapping[str, Any]] = None
- @dataclass(frozen=True)
- class EngineBinding:
- id: str
- workflow_version_id: str
- engine_type: EngineType
- engine_definition_id: str
- role: EngineRole
- environment: str
- engine_revision: Optional[str] = None
- @dataclass(frozen=True)
- class PolicyDecision:
- allowed: bool
- risk: str
- reasons: Tuple[str, ...]
|