Dapr Compatibility
Diagrid Catalyst is deeply rooted in open source, created by the founders of the CNCF-backed Distributed Runtime API (Dapr) project. With Catalyst, developers can leverage the power of existing industry-standard Dapr APIs from any application hosting platform without the operational overhead of running Dapr and likely, Kubernetes.
This document provides insight into where Dapr fits into Catalyst and outlines unsupported features and/or limitations.
Dapr APIs
The current set of Catalyst APIs can be viewed as a set of hosted Dapr APIs, accessible from anywhere. The Dapr APIs available through Catalyst can be called using the existing Dapr SDKs by changing the Dapr host configuration. The following table provides a high-level overview on which APIs are supported in Catalyst today.
Dapr API | Support Level |
---|---|
Service Invocation | Supported |
State Management | Supported |
Pub/Sub | Supported |
Bindings | Supported |
Workflow | Supported |
Actors | Unsupported |
Secrets | Unsupported |
Configuration | Unsupported |
Distributed Lock | Unsupported |
Securing Dapr APIs
Dapr provides two optional capabilities for securing communication between an application and its associated Dapr sidecar/process:
- Dapr API token authentication: Require API requests from your application to the Dapr sidecar to include an authentication token.
- App API token authentication: Require API requests from Dapr to your application to include an authentication token.
In Catalyst, Dapr API and App token authentication are enabled out-of-the-box and required. Each Application ID has an API token which must be used when initiating requests to the Catalyst APIs, and each request from the hosted App ID to an externally running application will have an App token. Although recommended, it is up to you if you want to validate the Catalyst App token in your code or not.
Support Limitations for APIs
- The Catalyst Workflow API does not currently support the Dapr SDK for JavaScript.
- HTTPEndpoint, Configuration (including Middleware) and custom Resiliency resources are not supported.
- Programmatic subscriptions are not supported.
Dapr Components
Diagrid Catalyst Components map specifically to the set of stable
components in the Dapr open source project. All credentials and secure values included in a component file are automatically stored by Catalyst as encrypted secret values.
Importing/Exporting Dapr manifests
Catalyst Components are modeled after Dapr Component specifications and can be translated to and from the Dapr Component format to maintain compatibility with the open source project. To translate a Dapr Component into a Catalyst Component, use the diagrid dapr import
command, passing in the related Dapr Component YAML manifest. To export a Catalyst Component as a Dapr-compliant Component manifest, use the diagrid dapr export
command along with the name of the Component you want to export.
You can also import Dapr manifests using the Catalyst console by selecting Skip to import OSS Dapr Yaml
during the Component creation process.
Support Limitations for Components
- Components in
Alpha
orBeta
stage. - The following stable Components: K/V Stores (In-memory, SQLite), Pub/Sub Broker (In-memory), Bindings (Cron, Local Storage).
- Component authentication to Azure via Microsoft Entra ID (formerly Azure Active Directory) Managed Identities.
Dapr Resiliency
Catalyst applies resiliency policies on Application Identities and Components automatically. These default resiliency policies can be enabled or disabled at any time.
Support Limitations for Resiliency
- Editing the default resiliency policy values.
- Importing existing Dapr Resiliency policies.
- Creating custom resiliency policies.