Skip to content

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_published
  • capability.enabled
  • capability.disabled
  • schema.version_published
  • custom_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.