77 lines
2.7 KiB
Markdown
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.
|