Dash Static Deployments
An AWS code pipeline is created for each Dash application. This pipeline is responsible for deploying the infrastructure and the application code. The pipeline is triggered when a new commit is pushed to the specified branch of the application's repository.
Architecture

Static Files
Zonké uses the open-dash library to extract static files from Dash's Flask server and prepare them for deployment. The static files are deployed to an S3 bucket. The deployed bucket is private and all static files are served using CloudFront.
Data Triggered Deployments
Architecture Overview

The dashboard exposes the capability to trigger Dash static site deployments when static application data changes. When an application takes advantage of this feature, a data source S3 bucket is created to store the data that triggers deployment of the main Dash application pipeline. Changes to the data source triggers a Lambda function that repackages the Dash application and deploys it to the main Dash application S3 bucket.
Preparing the Data Source

Create and store application seed data in your application's source code repository. Note that the folder does not have
to be named data
, but you must specify the folder name when creating the application in the dashboard. You can read
the application seed data from the folder in your application code.
Triggering Deployments

A data source bucket is created when the application is created on the dashboard. You can get the bucket's ARN from the
dashboard and upload a zip file named data.zip
to the bucket to trigger a deployment.
The zip file should contain the contents of the data folder, not the folder itself.
Data Precedence
During the initial deployment of the application, the data in your git repository is used to build the application. At this stage, the data source bucket is empty. When the data source bucket is populated, the data in the bucket always takes precedence over the data in the git repository. This means that once you upload a zip file to the data source bucket, the data in the zip file is used to build the application, even if the data in the git repository has changed.