3.2 KiB
3.2 KiB
Published Action Registry — Contract
Documentation contract only. No Action Registry database or APIs are implemented.
Architecture: published-resource-architecture.md · ADR-022
Contract version:published-action.v1(additive; open registry)
1. Purpose
Every Published Resource may expose zero or more Published Actions. Actions are service-independent contracts: the owning business service registers and executes the action; Experience owns presentation/publishing metadata that references actions by action_key + publish_id.
Future services register new actions without modifying Experience.
2. Action Registry entry
| Field | Meaning |
|---|---|
action_key |
Stable string key (open registry) |
display_name |
Human label (localizable later) |
owning_service |
Service that owns business execution |
permission |
Permission string required to invoke (or public sentinel) |
capability |
Capability / feature discovery key |
feature_toggle |
Optional toggle key coordinating enablement |
supported_resource_types |
Open list of resource_type keys (or * for any) |
Logical record (no schema):
PublishedActionDefinition {
action_key
display_name
owning_service
permission
capability
feature_toggle?
supported_resource_types[]
}
Binding to a resource (conceptual):
PublishedResourceAction {
publish_id
action_key
enabled
config_ref? # opaque; owned by owning_service
}
3. Open action keys (examples only — not closed)
Example action_key |
Typical owning_service |
|---|---|
view |
experience |
submit |
experience / crm |
book |
booking / sports_center / hospitality |
reserve |
hospitality / sports_center |
pay |
payment |
donate |
payment |
register |
experience / crm / sports_center |
download |
experience / storage |
open_chat |
live_chat / communication |
send_message |
communication |
share |
experience |
copy_link |
short_link / experience |
generate_qr |
qr / experience |
scan_qr |
qr |
call |
communication |
navigate |
experience |
add_to_calendar |
experience |
automation_trigger |
automation |
webhook_trigger |
automation |
| future.* | any registered service |
The registry MUST remain open. New keys do not require Experience code changes.
4. Rules
- Actions are described only by contracts until a registered implementation phase.
- Invocation from public surfaces passes
publish_id+action_key(+ tenant context). - Experience must not own Payment capture, OTP delivery, Loyalty membership evaluation, or Identity authentication for actions.
- Capability discovery MAY advertise available action keys per
publish_id(additive; not implemented here). - Backward compatible: existing Published Resource contracts remain valid with zero actions.