Skip to content

Capabilities

Capabilities are the glue that stitches Applications to the rest of your infrastructure. Module creators build capabilities to fully automate the connection between applications and other infrastructure.

A common example is relational databases like postgresql. An application needs a database created in the database cluster along with network access and credentials. A postgresql capability would do the following:

  • open network access to the database
  • create a user in the cluster for the service along with secure credentials
  • create a database owned by this role
  • inject the credentials into the app
  • inject database host/port into the app

Users can use capabilities for more than just database access:

  • Datastores
  • Secrets Injection (e.g Rails secrets, JWT keys)
  • Public-entry (e.g. Load Balancers, CDNs, API Gateways)
  • Events (e.g. Cron jobs, Data streams, Alarm Triggers)
  • Container Sidecars (e.g. envoy)