Repo-owned DuckDB refreshes from checked-in SQL

Skiff gives a repository one repeatable data-refresh contract: SQL Server sources, reviewed query files, fixed validation checks, and a DuckDB destination. Run one command to build and publish the next complete generation.

Build your first refresh →

What Skiff does

Skiff discovers the nearest skiff.toml, validates every referenced file, connects with the credentials named by the manifest, and loads the configured SQL Server queries into DuckDB.

Each refresh builds privately. Skiff applies row and time limits, runs checked-in DuckDB checks, checkpoints the result, and only then replaces the published file. If loading or validation fails, the existing DuckDB remains untouched.

The operating model

  1. A database administrator grants each source login SELECT access to only the required tables or views.
  2. A maintainer reviews skiff.toml, the query files, and optional checks in source control.
  3. A refresh process receives the passwords through environment variables.
  4. Consumers open the published DuckDB read-only.
skiff check
skiff refresh

Sources load in parallel. Queries within one source run in manifest order and can share a SQL Server snapshot when that source sets snapshot = true.

What Skiff does not do

Skiff is not a hosted service, scheduler, secrets manager, database-permission system, or DuckDB encryption layer. The output is plaintext. Use database grants, operating-system permissions, full-disk encryption, and a process supervisor appropriate to your environment.

Skiff also assumes it is the only writer of its destination. Other processes should treat the output as read-only.

Choose your next step