tower-integration

Builds, deploys, and schedules dlt-based ingestion pipelines landing external data into Tower Iceberg tables.

2|Updated Jul 11, 2026
One-click install
npx skills add https://github.com/tower/agent-skills --skill tower-integration-tower
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: tower-integration
Source: https://github.com/tower/agent-skills/tree/main/skills/tower-integration
Command: npx skills add https://github.com/tower/agent-skills --skill tower-integration-tower

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires dlt, psycopg2-binary, pyarrow, polars, tower.

What problem does it solve? Getting data from APIs, databases, SaaS tools, and files into a governed lakehouse usually means hand-writing ETL code, managing credentials insecurely, and babysitting deployments. This Skill guides an agent through authoring, testing, deploying, and scheduling ingestion pipelines on Tower so raw data lands reliably in Apache Iceberg tables without secrets ever touching code or chat. ## Core Features & Use Cases - Pipeline authoring with dlt: Scaffolds Tower apps that extract with dlt verified sources (Postgres, Stripe, GitHub, REST APIs) and upsert into a bronze namespace of the Tower-managed Iceberg catalog. - Secrets protocol: Enforces a workflow where credentials live in Tower secrets named per dlt's environment-variable convention, injected at runtime and never written into code, Towerfiles, or conversation. - Deploy, schedule, verify: Covers local testing with tower run --local, cloud deployment, cron schedules, retry policies, windowed backfills for large tables, and post-run verification via tower catalogs query. - Use Case: A user asks to "get our Stripe invoices into Tower daily." The agent scaffolds an ingest-stripe app, prompts the user to create the API key secret themselves, writes an idempotent upsert pipeline, deploys it, schedules a 6 AM cron, and confirms rows landed in bronze.stripe_invoices. ## Quick Start Ask the agent to build an ingestion pipeline that loads your chosen source, such as Postgres or Stripe, into the Tower lakehouse on a daily schedule.

Frequently Asked Questions about tower-integration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I ingest data from Postgres or Stripe into a lakehouse?▼

Scaffold a Tower app that extracts with a dlt verified source like sql_database or stripe, then upsert each resource as Arrow batches into Iceberg tables via tower.tables. Test locally with tower run --local, deploy, and add a cron schedule.

How do I manage API keys and database credentials for dlt pipelines?▼

Store credentials as Tower secrets named with dlt's environment-variable convention, such as SOURCES__SQL_DATABASE__CREDENTIALS. Tower injects them as environment variables at runtime, so they never appear in code, Towerfiles, or chat.

Does this support incremental loads and large table backfills?▼

Yes. Persist a cursor such as max(updated_at) read back from the target table, and window large backfills over a timestamp column using a configurable window_days parameter. Each window is one query and one commit, so crashed runs resume from the cursor.

Why does my pipeline work locally but crash in the cloud?▼

Cloud crashes usually mean a missing dependency in requirements.txt or a secret that only exists locally or in another environment. Pin the full dependency set up front and check tower secrets list for the target environment.

What is this skill not suitable for?▼

It does not query or analyze the lakehouse, which is the read-only tower-data skill's role, and it does not build bronze-to-silver/gold transformations, which belong in a separate dbt or Polars app. It only authors ingestion pipelines.