Workflows
New in Quilt 3.3
Workflows basics
A workflow is a quality gate that your data must pass in order to be pushed to S3. To get started, create a configuration file in your Quilt S3 bucket at s3://BUCKET/.quilt/workflows/config.yml.
Here's an example:
version: "1"
workflows:
alpha:
name: Search for aliens
is_message_required: true
beta:
name: Studying superpowers
metadata_schema: superheroes
gamma:
name: Nothing special
description: TOP SECRET
is_message_required: true
metadata_schema: top-secret
schemas:
superheroes:
url: s3://quilt-sergey-dev-metadata/schemas/superheroes.schema.json
top-secret:
url: s3://quilt-sergey-dev-metadata/schemas/top-secret.schema.jsonWith the above configuration, you must specify a workflow before you can push:
Let's try with the workflow= parameter:
The above QuiltException is caused by is_message_required: true. Here's how we can pass the workflow:
Now let's push with workflow='beta':
We encountered another exception because the beta workflow specifies metadata_schema: superheroes. Therefore, the test/package metadata must validate against the JSON Schema at s3://quilt-sergey-dev-metadata/schemas/superheroes.schema.json:
Note that superhero is a required property:
For the gamma workflow, both is_message_required: true and metadata_schema are set, so both message and package metadata are validated:
If you wish for your users to be able to skip workflows altogether, you can make workflow validation optional with is_workflow_required: false in your config.yml, and specify workflow=None in the API:
Also default_workflow can be set in the config to specify which workflow will be used if workflow parameter is not provided.
Pushing across buckets with the Quilt catalog
The catalog's Push to bucket feature can be enabled by adding a successors property to the config. A successor is a destination bucket.
If copy_data is true (the default), all package entries will be copied to the destination bucket. If copy_data is false, all entries will remain in their current locations.
Full config.yml schema
config.yml schemaKnown limitations
Only Draft 7 Json Schemas are supported
Schemas with
$refare not supportedSchemas must be in an S3 bucket for which the Quilt user has read permissions
Last updated
Was this helpful?

