Skip to main content

Woodglue

CI Docs PyPI Python License: MIT

JSON-RPC 2.0 server with auto-generated docs, sign-in, and hosted UIs, built on lythonic.

Architecture

┌──────────────────────────────────────────────────────────┐
│  woodglue                                                │
│  HTTP server · JSON-RPC · Docs                           │
│  Users · Roles · Grants · Sign-in (OIDC, GitHub, proxy)  │
│  Console · project UIs (static, Streamlit)               │
├──────────────────────────────────────────────────────────┤
│  lythonic                                                │
│  Namespaces · DAGs · Caching · Triggers                  │
└──────────────────────────────────────────────────────────┘
        ▲ optional: Caddy in front for TLS and static files

lythonic provides the core runtime: namespaces for organizing methods, DAG-based orchestration, result caching, and scheduled triggers.

woodglue adds the serving layer: a Tornado HTTP server, JSON-RPC 2.0 dispatch, generated docs (llms.txt, OpenAPI, per-method markdown), Users with Roles and per-namespace Grants, browser sign-in, the Console, and hosting for your own UIs.

Features

  • JSON-RPC 2.0 with multi-namespace routing (billing.create_invoice, analytics.query)
  • Auto-generated docs: llms.txt index, per-method markdown, OpenAPI 3.0.3, each showing only what the caller may use
  • Users, Roles, and per-namespace Grants (call, read, trigger, view, admin); Personal Access Tokens, optionally narrowed and expiring
  • Sign-in with Google, Entra ID, Okta, Auth0 (any OpenID Connect provider) or GitHub, or behind Cloudflare Access, Google IAP, or oauth2-proxy
  • The Console: browse the API, runs, and triggers, and manage your tokens
  • Project UIs next to the Console: a single-page app, or a Streamlit app (or any web server) that woodglue runs and proxies, calling the API as the viewer
  • Runs and trigger changes record which User caused them
  • wgl login for remote servers, like gh auth login
  • Optional Caddy edge: wgl caddy config prints a Caddyfile
  • Typed async client with auto-resolved return types via x-global-ref
  • YAML-driven namespace configuration; DAG orchestration with scheduled triggers (via lythonic)

Quick Start

pip install woodglue

Define a namespace with methods:

# myapp/api.py
from lythonic.compose.namespace import Namespace
from pydantic import BaseModel

class GreetIn(BaseModel):
    name: str

class GreetOut(BaseModel):
    message: str

def greet(input: GreetIn) -> GreetOut:
    return GreetOut(message=f"Hello, {input.name}!")

ns = Namespace()
ns.register(greet, nsref="greet", tags=["api"])

Point data/woodglue.yaml at it and start the server:

namespaces:
  myapp:
    gref: "myapp.api:ns"
wgl start

Auth is on by default. The server keeps Users, Roles, and tokens in data/auth.db, and on first start creates a token for the built-in admin User. wgl start never prints it:

wgl token                      # print the admin token
wgl token --new                # rotate it

Open http://127.0.0.1:5321/ and sign in with that token, or configure an Identity Provider so people sign in with their own accounts. wgl user manages Users, their Roles, and their Personal Access Tokens.

Endpoints:

  • POST /rpc -- JSON-RPC 2.0
  • GET /docs/llms.txt -- LLM-friendly method index
  • GET /docs/openapi.json -- OpenAPI 3.0.3 spec
  • GET /console/ -- the Console
  • GET /ui/<name>/ -- your project UIs
  • GET /auth/login -- browser sign-in

Documentation

walnutgeek.github.io/woodglue, including how-to guides for access control, Identity Providers, project UIs, Streamlit, and Caddy.

Metadata

Release files for woodglue 0.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for woodglue 0.0.9
File Size Uploaded Provenance
woodglue-0.0.9.tar.gz 823.6 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for woodglue 0.0.9
File Interpreter ABI Platform
woodglue-0.0.9-py3-none-any.whl Python 3 none any Details

Total release size: 948.7 kB

Release files / woodglue-0.0.9.tar.gz

Download URL woodglue-0.0.9.tar.gz
Size 823.6 kB
Tags Source
SHA-256 checksum
How to use checksums
2e43bef75ef70dc305c072a2c9f6388696d185af840f9b1b0c1f94fd2230daa4
BLAKE2b-256 checksum
How to use checksums
b68b2461676205142eb676c0604d58a8d5afec819234144fa078f68f89edb7f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / woodglue-0.0.9-py3-none-any.whl

Download URL woodglue-0.0.9-py3-none-any.whl
Size 125.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
86d302bbccb41f2fc760afc7fef983062187d5cc5ef84145b29da2541041e86d
BLAKE2b-256 checksum
How to use checksums
3ed4e86525d4e2aa0c68537c4a62c7b8a7086ff48d4886c5e8bf720f5bfd4452
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Security for woodglue 0.0.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for woodglue-0.0.9.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page