Production checklist

  • My cssXX.dashboards_store is using Git
  • The dashboards iI have deployed are versionned in cssXX.dashboards_store.
  • Pushing to cssXX.dashboards_store triggers a CI/CD pipeline that builds a Docker image based on the one from core.dashboards_store. My ETL is dockerized.
  • I run my dockerized ETL using a cronjob or the core.dashboards_store/tooling/depechecode/DAG.py DAG.

Using version control

Version control is a must have when working with a team. It allows you to track changes, revert to previous versions, and collaborate on projects with your team members. We advise you to install and use git in your cssXX.dashboards_store.

Every dashboard you deploy schould be versioned in your cssXX.dashboards_store. This will allow you to track changes and revert to previous versions if needed.

Using pinned dependencies

When shipping to production (and stagging), always pin the version of the core.dashboards_store your cssXX.dashboards_store depends on.

To pin a specific version, update your cssXX.dashboards_storepackages.yml file with the following snippet :

# cssXX.dashboards_store/packages.yml
packages:
  - git: git@github.com:Sciance-Inc/core.dashboards_core_dashboards_store.git
    revision: <release_number>

Where <release_number> is the version you want to pin to (for instance, v0.7.0+20230926).

Using a CI/CD pipeline

You can build a CI/CD pipeline to automate the deployment of your dashboards. The core.dashboards_store/tooling/depechecode/Dockerfile describes a Docker image packaging the core you can leverage to build the image for your cssXX.dasboard_store.

Deploying to Airflow

The core.dashboards_store/tooling/depechecode/DAG.py file describes a DAG you can leverage to deploy your dashboards to Airflow. You can copy the file in your cssXX.dashboards_store repo and update the DAG object to match your deployment needs.

Alternatively, you can use a cronjob. We advise you to dockerize your ETL anyway to abstract the underlying infrastructure.