Skip to main content
Version: V2-Next

Add-ons

CIVITAS/CORE V2 can be extended with Add-onsAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces. — optional, independently deployable components that integrate with the platform's shared infrastructure (Kubernetes, KeycloakKeycloakAn open-source Identity and Access Management (IAM) solution providing SSO and OAuth2/OpenID Connect flows. In CIVITAS/CORE it is used to authenticate users and issue JWTs., APISIXApache APISIXAn open-source API gateway for traffic management, security and observability. In CIVITAS/CORE it is used as the centralized entrypoint to route and protect externally exposed APIs.) without modifying the core deployment.

Each Add-onAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces. is a standalone Git repository included in your deployment as a Git submodule. Like platform components, Add-onsAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces. are deployed and managed via Helmfile.

For how Add-onsAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces. differ from platform components, see Add-ons and Platform Components.

Available Add-ons​

Add-onAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces.Description
GrafanaAnalytics and visualization dashboards
Node-REDLow-code platform for data collection and transformation
GeoportalIntegrates Masterportal with a backend for authenticated layer support
Apache SupersetDashboards and data exploration (no separate repository, see below)

Apache Superset​

Apache Superset can be used like an Add-onAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces., but there is no separate Add-onAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces. repository for it. Superset is shipped with the core deployment as the component superset, because it will be integrated into the CIVITAS/CORE platform in v2.1 (see Platform Architecture).

Superset is part of the default components list, so no Git submodule is needed. To deploy CIVITAS/CORE without Superset, remove superset from the components list (see Configuration).

Adding an Add-on​

1. Add the Git Submodule​

Navigate to your deployment directory and add the Add-onAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces. repository as a submodule:

cd deployment/addons/
git submodule add https://gitlab.com/civitas-connect/civitas-core/civitas-core-v2/add-ons/grafana.git

2. Register the Component​

Add the Add-onAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces. name to the components list in deployment/environments/<env>/global.yaml.gotmpl. Add-onsAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces. should be listed in topological order to account for dependencies:

components:
# ... platform components ...
- grafana # addon
- node-red # addon

3. Apply the Deployment​

helmfile -f deployment/helmfile-instance.yaml.gotmpl apply -e <env>

Configuration​

Add-onsAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces. are configured the same way as platform components. See Change component values for details.

Access Control​

Add-onsAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces. can integrate with the platform's KeycloakKeycloakAn open-source Identity and Access Management (IAM) solution providing SSO and OAuth2/OpenID Connect flows. In CIVITAS/CORE it is used to authenticate users and issue JWTs. IDM, but unlike platform components they are not managed through the portal. Roles must be assigned manually via the KeycloakKeycloakAn open-source Identity and Access Management (IAM) solution providing SSO and OAuth2/OpenID Connect flows. In CIVITAS/CORE it is used to authenticate users and issue JWTs. admin console.

For a list of available roles per Add-onAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces., see Add-on Access Control.

Upgrading an Add-on​

Update the submodule to the target version and re-apply. Check the Add-onAdd-onAn optional component that extends the Platform for specific use cases, for example for visualization or low-code data processing. An Add-on is not part of the platform core: it is maintained in a separate repository, included in the deployment as a Git submodule, and accesses the Platform only via its public interfaces.'s changelog for breaking configuration changes before upgrading.

cd deployment/addons/grafana
git fetch
git checkout v2.x.y
cd ../..
helmfile -f deployment/helmfile-instance.yaml.gotmpl apply -e <env> --selector component=grafana

Removing an Add-on​

  1. Destroy the Helm release:
    helmfile -f deployment/helmfile-instance.yaml.gotmpl destroy -e <env> --selector component=grafana
  2. Remove the component from the components list in global.yaml.
  3. Remove the submodule:
    git submodule deinit -f deployment/addons/grafana
    git rm deployment/addons/grafana