Skip to main content

dbt Artifact Storage: Local/Shared Filesystem

This guide walks you through configuring a local or shared filesystem as the artifact storage layer for dbt Core + OpenMetadata integration. Ideal for development, single-server deployments, or Kubernetes with shared volumes.
Not recommended for production distributed systems. dbt and OpenMetadata must access the same filesystem. Use cloud storage (S3/GCS/Azure) for production multi-server deployments.

Prerequisites Checklist

Configuration Options

Option A: Same Machine (Development)

If dbt and OpenMetadata run on the same machine: 1. Run dbt and generate artifacts:
2. Note the target directory path:
3. Configure OpenMetadata with absolute path:
  • Manifest: /path/to/dbt/project/target/manifest.json
  • Catalog: /path/to/dbt/project/target/catalog.json
  • Run Results: /path/to/dbt/project/target/run_results.json

Option B: Docker Compose with Shared Volume

Perfect for local development stacks. docker-compose.yml:
Configure OpenMetadata:
  • Manifest: /dbt-artifacts/manifest.json
  • Catalog: /dbt-artifacts/catalog.json
  • Run Results: /dbt-artifacts/run_results.json

Option C: Kubernetes with PersistentVolumeClaim

For Kubernetes deployments where dbt and OpenMetadata run in the same cluster. 1. Create PersistentVolumeClaim:
2. dbt CronJob (uploads artifacts):
3. Mount volume in OpenMetadata deployment:
Configure OpenMetadata:
  • Manifest: /dbt-artifacts/manifest.json
  • Catalog: /dbt-artifacts/catalog.json
  • Run Results: /dbt-artifacts/run_results.json

Option D: NFS Mounted Shared Storage

For VMs or bare-metal servers with shared NFS storage. 1. Set up NFS share: On NFS server:
2. Mount on client machines: On dbt server:
On OpenMetadata server:
3. Configure dbt to write to NFS:
Configure OpenMetadata:
  • Manifest: /mnt/dbt-artifacts/manifest.json
  • Catalog: /mnt/dbt-artifacts/catalog.json
  • Run Results: /mnt/dbt-artifacts/run_results.json

Step 2: Configure OpenMetadata

Configuration

  1. Go to Settings → Services → Database Services
  2. Click on your database service
  3. Go to the Ingestion tab
  4. Click Add Ingestion
  5. Select dbt from the dropdown
Configure dbt Source (Local): Configure dbt Options:

Verification

Best Practices

1. Use Absolute Paths

Always use absolute paths, not relative:
  • /dbt-artifacts/manifest.json
  • ../dbt/target/manifest.json

2. Ensure Read Permissions

3. Automate Artifact Copying

4. Use ReadWriteMany for Kubernetes

For Kubernetes PVC, ensure accessMode: ReadWriteMany:
  • Works: NFS, EFS, Azure Files, GlusterFS
  • Doesn’t work: EBS (ReadWriteOnce only)

Troubleshooting

  • No built-in versioning or backup
  • File locking issues possible with concurrent access
  • Requires shared filesystem infrastructure
For production, consider:

Next Steps

See other storage options: S3 | GCS | Azure | HTTP | dbt Cloud