TorbatYar/docs/reference/automation-catalog.md
2026-07-28 20:39:10 +03:30

77 lines
2.7 KiB
Markdown

# Automation Catalog
> **Architecture only.** Automation is **NOT** a PlatformProduct.
> Contract version: `automation-catalog.v1`
> ADR: [ADR-023](../architecture/adr/ADR-023.md) (v1.1)
---
## 1. Purpose
The **Automation Catalog** defines reusable automation **types** and **packs** that products and bundles may reference.
Automation remains a cross-cutting catalog — independent of any single commercial product identity.
---
## 2. AutomationType (open registry)
| Field | Type | Meaning |
| --- | --- | --- |
| `automation_type_code` | string | Open key |
| `display_name` | string | |
| `channel_family` | string? | e.g. `messaging`, `schedule`, `event`, `ai` |
| `status` | enum | `active` \| `reserved` \| `deprecated` |
| `owning_runtime_hint` | string? | Typical executor service |
| `ext` | object | |
### Illustrative automation type matrix
| automation_type_code | Display | Family | Status |
| --- | --- | --- | --- |
| `workflow` | Workflow | event | reserved |
| `webhook` | Webhook | event | reserved |
| `event_trigger` | Event Trigger | event | reserved |
| `cron` | Cron | schedule | reserved |
| `scheduler` | Scheduler | schedule | reserved |
| `sms` | SMS | messaging | active |
| `email` | Email | messaging | active |
| `push` | Push | messaging | reserved |
| `rubika` | Rubika | messaging | reserved |
| `whatsapp` | WhatsApp | messaging | reserved |
| `telegram` | Telegram | messaging | reserved |
| `ai_agent` | AI Agent | ai | reserved |
| `api_trigger` | API Trigger | event | reserved |
| `internal_event` | Internal Event | event | active |
| `external_event` | External Event | event | reserved |
Unlimited future types MAY be added as registry entries only.
---
## 3. AutomationPack
Logical packaging of one or more automation types for commercial reference:
| Field | Type | Meaning |
| --- | --- | --- |
| `automation_pack_code` | string | |
| `display_name` | string | |
| `automation_type_codes[]` | string[] | |
| `required_capability_codes[]` | string[] | e.g. `sms`, `email` |
| `required_product_codes[]` | string[] | Optional product deps |
| `status` | enum | `draft` \| `active` \| `retired` |
| `documentation_ref` | string? | |
| `ext` | object | |
Business Bundles and PlatformProducts reference packs by `automation_pack_code` only — never embed workflow graphs here.
---
## 4. Separation rules
1. Do **not** register Automation as `product.automation` in the Product Registry.
2. Communication / future Automation service engines own runtime execution.
3. Commercial foundation owns **catalog contracts** only.
4. Recommendation / activation may *reference* packs; they do not execute them.