For the complete documentation index, see llms.txt. This page is also available as Markdown.

Python Upload for Zip Artifacts

Use this guide to programmatically upload a .zip file to any Euno source integration that accepts zip artifacts via the prepare-upload endpoint.

This flow is shared by:

For Custom integration bulk uploads (.json, .jsonl, .ndjson), see Handling High Volume of Observations.

Prerequisites

  • Python 3.6+

  • requests library (pip install requests)

  • A saved source with a trigger secret and prepare-upload endpoint URL from the post-save modal

Prepare your zip file

Create a single .zip file before running the script. What to include depends on your integration:

Integration
What to zip

dbt Core

manifest.json, catalog.json, run_results.json, and optional semantic_manifest.json from your dbt target/ directory

Cube Core

Your Cube model/ directory (model/**/*.yml or model/**/*.yaml)

Hex Semantic Project

dbt_project.yml plus dbt MetricFlow YAML files with Hex configuration

Matillion DPC

Matillion export artifacts required by your source configuration

Example for Cube Core:

Script

Usage

  1. Configure the script: Set endpoint_url, trigger_secret, and zip_file_path

  2. Create the zip: Package the files required by your integration (see Prepare your zip file)

  3. Install dependencies: pip install requests

  4. Run the script: Execute after your pipeline produces the artifacts

  5. Verify the run: Open your source on the Sources page and review the latest operation and run report

cURL alternative

Step 1: Request a signed upload URL

Step 2: Upload the zip to the signed URL

Use the url from the upload object in the response:

When the upload succeeds, Euno automatically starts processing the file. No further API call is required.

Last updated