A parameterized SQL web server for DuckDB routes compiled from Markdown
Project description
webbed_duck
webbed_duck turns Markdown + SQL route files into HTTP endpoints powered by DuckDB.
This MVP (v0.3) extends the core compiler and server with annotation-ready viewers and workflow helpers:
- A Markdown compiler that translates
*.sql.mdfiles into Python route manifests and preserves per-route metadata for cards, feeds, charts, overrides, and append targets. - A FastAPI-based server that executes DuckDB queries per-request, applies per-cell overrides from the overlay store, and
returns JSON payloads derived from Arrow tables, HTML tables (
html_t), card grids (html_c), feed views, and Arrow stream slices for virtualized viewers. - New endpoints for
/routes/{id}/schema,/routes/{id}/overrides, and/routes/{id}/appendto expose form metadata, manage overrides, and persist CSV append operations. - Popularity analytics, folder indexes, and a pluggable auth adapter resolved via configuration.
- Command-line tooling for compiling routes, running the development server, and iterating cursor-driven workloads via
run-incremental.
See routes_src/hello.sql.md for an example route.
Usage
Compile routes:
python -m webbed_duck.cli compile --source routes_src --build routes_build
Run the development server (requires the compiled routes):
python -m webbed_duck.cli serve --build routes_build --config config.toml
Visit http://127.0.0.1:8000/hello?name=DuckDB to exercise the sample route. Append &format=html_c or &format=feed to
see the HTML viewers, or &format=arrow&limit=25 for Arrow RPC slices. Use POST /routes/hello/overrides to annotate rows,
POST /routes/hello/append to persist CSV records, and GET /routes/hello/schema to generate auto-form metadata.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file webbed_duck-0.3.0.tar.gz.
File metadata
- Download URL: webbed_duck-0.3.0.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e17d8e326e81613c1a604dea18e25cf5dedcb77f72087537703f43e09810b1d7
|
|
| MD5 |
5cb0304a1ab9be5fe690319298e06b2e
|
|
| BLAKE2b-256 |
4d24fa57d8f08446bed0b5130f1045452be720aa33d3aae650da91a0da531664
|
Provenance
The following attestation bundles were made for webbed_duck-0.3.0.tar.gz:
Publisher:
python-publish.yml on isaacnfairplay/webbed_duck
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
webbed_duck-0.3.0.tar.gz -
Subject digest:
e17d8e326e81613c1a604dea18e25cf5dedcb77f72087537703f43e09810b1d7 - Sigstore transparency entry: 634903207
- Sigstore integration time:
-
Permalink:
isaacnfairplay/webbed_duck@dc9e1549d9f4514216615f754c4509317a2f97aa -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/isaacnfairplay
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@dc9e1549d9f4514216615f754c4509317a2f97aa -
Trigger Event:
push
-
Statement type:
File details
Details for the file webbed_duck-0.3.0-py3-none-any.whl.
File metadata
- Download URL: webbed_duck-0.3.0-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5de87c42ac6c786fe62b7296749067208b6fa849f6dd0e0443298690b45c4ee
|
|
| MD5 |
6add0f33403c32d1f831f2771f758843
|
|
| BLAKE2b-256 |
4ca7568a931503cf3f112a0148ed06d09344ac06438a0b92a0779424dd81e387
|
Provenance
The following attestation bundles were made for webbed_duck-0.3.0-py3-none-any.whl:
Publisher:
python-publish.yml on isaacnfairplay/webbed_duck
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
webbed_duck-0.3.0-py3-none-any.whl -
Subject digest:
d5de87c42ac6c786fe62b7296749067208b6fa849f6dd0e0443298690b45c4ee - Sigstore transparency entry: 634903250
- Sigstore integration time:
-
Permalink:
isaacnfairplay/webbed_duck@dc9e1549d9f4514216615f754c4509317a2f97aa -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/isaacnfairplay
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@dc9e1549d9f4514216615f754c4509317a2f97aa -
Trigger Event:
push
-
Statement type: