Capabilities
Capabilities are the glue that connect applications to the rest of the supporting infrastructure. They enhance your application by tacking on abilities to the base application. Because they handle all the tedious and sensitive configuration for you, it is easy to launch your application across all environments in a consistent way.
Types of Capabilities
In the two previous sections, we have already seen how capabilities are used to help us connect to a datastore and expose our application via a domain. Let's explore some additional ways we can quickly add functionality to our applications using capabilities.
The complete list of capabilities are categorized into 6 categories:
Events
For serverless applications, we can trigger a serverless function to run based on events or a schedule. Create a workflow of serverless functions where the result of one can trigger the next.
Telemetry
Stream logs or metrics information to providers such as Datadog, NewRelic, or Splunk.
Datastores
Connect your application to datastores such as Postgres, MySQL, Redis, and more.
Sidecars
Run a container sidecar to augment the abilities of your application. One example is an Nginx sidecar to serve static assets for your Rails application.
Public Entry
Expose your application via a public url. Examples include load balancer, CDN, or API Gateway. These are what allow your application to interact with the outside world via the domain.
Secrets
Inject secret keys into applications such as a JWT Key or an APP_KEY for Laravel.
Add a Capability
From the Capabilities
tab, you can view all the existing capabilities and click to add a new one.
Some capabilities connect to another piece of infrastructure but some are stand-alone. If the capability is stand-alone, then just select it to add.
If the capability must connect to another piece of infrastructure, Nullstone will let you know if a connection can be made.