- Reporting Plugin: Extracts and processes data from the FlowX Engine
- Spark Application: Handles data transformation and loading operations
- Apache Superset: Provides the visualization interface and dashboard capabilities
Dependencies
The reporting plugin, available as a Docker image, requires the following dependencies:- PostgreSQL: Dedicated instance for reporting data storage.
- Reporting-plugin Helm Chart:
- Utilizes a Spark Application to extract data from the FLOWX.AI Engine database and populate the Reporting plugin database.
- Utilizes Spark Operator. For more information, see the Spark Operator documentation.
- Superset:
- Requires a dedicated PostgreSQL database for its operation.
- Utilizes Redis for efficient caching.
- Exposes its user interface via an ingress.
Prerequisites
Before starting the installation, ensure you have:- Kubernetes cluster with Helm installed
- Access to PostgreSQL databases for:
- FlowX Engine database (source)
- Reporting database (destination)
- Superset metadata database
- Docker registry access for the reporting images
- Redis instance for Superset caching
- Ingress controller for exposing Superset UI
Reporting plugin helm chart configuration
Configuring the reporting plugin involves several steps:Installation of Spark Operator
- Install the Spark Operator using Helm:
- Apply RBAC configurations:
- Build the reporting image:
-
Update the
reporting-imageURL in thespark-app.ymlfile. -
Configure the correct database ENV variables in the
spark-app.ymlfile (check them in the above examples with/without webhook). - Deploy the application:
Spark Operator deployment options
Without webhook
For deployments without a webhook, manage secrets and environmental variables for security:NOTE: Passwords are currently set as plain strings, which is not secure practice in a production environment.
With webhook
When using the webhook, employ environmental variables with secrets for a balanced security approach:In Kubernetes-based Spark deployments managed by the Spark Operator, you can define the sparkApplication configuration to customize the behavior, resources, and environment for both the driver and executor components of Spark jobs. The driver section allows fine-tuning of parameters specifically pertinent to the driver part of the Spark application.
Superset configuration
Detailed Superset Configuration Guide:Superset configuration
Superset docker image
Superset documentation
Post-installation steps
After installation, perform the following essential configurations:Datasource configuration
For document-related data storage, configure these environment variables:SPRING_DATASOURCE_URLSPRING_DATASOURCE_USERNAMESPRING_DATASOURCE_PASSWORD
Redis configuration
The following values should be set with the corresponding Redis-related values:SPRING_REDIS_HOSTSPRING_REDIS_PORT
Keycloak configuration
To implement alternative user authentication:- Override
AUTH_TYPEin yoursuperset.ymlconfiguration file:- Set
AUTH_TYPE: AUTH_OID
- Set
- Provide the reference to your
openid-connectrealm:OIDC_OPENID_REALM: 'flowx'
Extend the security manager
Firstly, you will want to make sure that flask stops usingflask-openid and starts using flask-oidc instead.
To do so, you will need to create your own security manager that configures flask-oidc as its authentication provider.
AUTH_OID.
The security manager still executes all the behavior of the super class, but overrides the OID attribute with the OpenIDConnect object.
Further, it replaces the default OpenID authentication view with a custom one:

