In-process bridge between DuckDB connections with permission-based access control
Project description
n6k-duckdb
In-process bridge between DuckDB connections with permission-based access control.
Install
pip install n6k-duckdb
Usage
import duckdb
from n6k_duckdb.bridge import bridge
cfg = {"allow_unsigned_extensions": "true"}
source = duckdb.connect(config=cfg)
source.sql("CREATE TABLE users(id INTEGER, name VARCHAR)")
source.sql("INSERT INTO users VALUES (1, 'alice'), (2, 'bob')")
target = duckdb.connect(config=cfg)
bridge(source, target, "app", permissions={"users": "readwrite"})
# Query through the bridge
target.sql("SELECT * FROM app.users").show()
# Insert through the bridge (requires 'readwrite')
target.sql("INSERT INTO app.users VALUES (3, 'charlie')")
# Update and delete also work with 'readwrite'
target.sql("UPDATE app.users SET name = 'Alice' WHERE id = 1")
target.sql("DELETE FROM app.users WHERE id = 2")
Permissions
| Permission | Allows |
|---|---|
'read' |
SELECT only |
'readwrite' |
SELECT, INSERT, UPDATE, DELETE |
Tables not listed in permissions are inaccessible.
How it works
bridge() automatically installs and loads the n6k_bridge DuckDB extension from the n6k extension repository. The extension creates an in-process bridge between two DuckDB database instances using a token-based handshake.
No network server is required — data flows directly between connections in the same process.
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 n6k_duckdb-0.1.0.tar.gz.
File metadata
- Download URL: n6k_duckdb-0.1.0.tar.gz
- Upload date:
- Size: 2.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34047dd9df3cd4b85ba38d2cae5f487062a342f14b7180f20c574860838c7897
|
|
| MD5 |
37d56e16a0af6eeb9a4fad1c07284b51
|
|
| BLAKE2b-256 |
d0548fda200849e4f4d6687dec3a8c3aeb48d2a6392e7e59c2c7f9d2b8674534
|
File details
Details for the file n6k_duckdb-0.1.0-py3-none-any.whl.
File metadata
- Download URL: n6k_duckdb-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa4e5ff2c6b2138c471aaf4f63929388924c4100b6dc56b1f7f5f4d367f9d2aa
|
|
| MD5 |
386ad6f0a1155e0395a6635e2ec18ec6
|
|
| BLAKE2b-256 |
5ae6cad0422f3de9d7422a20c8468082fdfe2cc6d8c8f964d966e2490839afd1
|