Capability Engine¶
Status: Draft for review
Purpose¶
Own reusable business capability definitions, vertical presets, offering/resource schemas, custom-field definitions and workflow/pricing/availability model metadata used to configure business units.
Owns¶
- Capability and capability-pack catalog
- Vertical definitions/presets
- Offering-type and resource-type schemas with versions
- Supported attribute/custom-field definitions
- Search/filter/display metadata
- Allowed pricing, availability, inventory and transaction-mode combinations
- Workflow-definition metadata (not live booking instances)
Non-goals¶
It does not own tenant bookings, inventory balances, site pages, customer records or financial transactions.
API contract — functional surface¶
These are contract-level resources and operations, not final controller/file names.
| Method | Route | Primary actor | Contract intent |
|---|---|---|---|
| GET | /api/tenant/v1/verticals |
Tenant Admin | List vertical definitions available under tenant entitlements. |
| GET | /api/tenant/v1/verticals/{key} |
Tenant Admin | Read vertical composition/defaults. |
| POST | /api/tenant/v1/business-units/{id}/capabilities |
Tenant Admin | Enable/configure allowed capability pack. |
| GET | /api/tenant/v1/offering-types |
Tenant Admin/Manager | List enabled offering type schemas. |
| GET | /api/tenant/v1/offering-types/{key}/schema |
Tenant Admin/Manager | Retrieve versioned field/schema definition for forms/imports. |
| POST | /api/tenant/v1/custom-fields |
Tenant Admin | Create tenant-scoped custom field where entitled. |
| PATCH | /api/platform/v1/verticals/{key} |
Platform Admin | Publish/version platform vertical definition. |
All mutating operations apply the global tenant, authorization, audit and idempotency rules where relevant.
Events¶
vertical.definition_publishedcapability.enabledcapability.disabledschema.version_publishedcustom_field.created
Roles & responsibility matrix¶
Legend: A accountable, R responsible, C consulted, I informed, — none.
| Capability | Platform Admin | Tenant Owner | Tenant Admin | Specialist/Manager | Customer/Visitor |
|---|---|---|---|---|---|
| Platform vertical/capability catalog | A/R | I | I | C | — |
| Enable tenant capabilities | I | A | R | C | — |
| Tenant custom fields | I | A | R | C | — |
| Use schemas in operations | I | I | C | R | I |
Dependencies¶
- Platform Engine for entitlements and business-unit identity
- Commerce Engine as primary runtime consumer
- Site Engine for builder/data-binding metadata
- Channel Engine for channel field mappings
Internationalization Contract¶
- Vertical/capability machine keys are locale-neutral and stable.
- Display names, help text, attribute labels and enum/option labels are translatable.
- Tenant custom-field definitions may provide localized labels/help/options without changing canonical field keys.
- Schema validation operates on canonical values; translation never changes machine semantics.
Security / isolation requirements¶
- Schema changes are versioned and migration-compatible.
- Tenant custom fields cannot execute code or bypass validation.
- Platform-only vertical publishing is separated from tenant configuration.
Acceptance criteria¶
- New vertical can be introduced without adding a tenant type.
- Yacht and Excursion presets can express their required fields/resources/workflows.
- Schema metadata can drive admin form validation and search/filter definitions.
- Unsupported capability combinations are rejected explicitly.