Workflow monitoring and management for FastAPI apps
Project description
ankor
Workflow monitoring and management for FastAPI apps.
ankor adds a self-hosted dashboard and run-tracking API to any FastAPI application. Decorate Python functions with @gtm.workflow and choose how they are triggered: manually, on a schedule, or via a webhook.
Install
pip install ankor
# Required for scheduled workflows:
pip install apscheduler
Quick start
import os
from fastapi import FastAPI
from ankor import ankor
app = FastAPI()
gtm = ankor(
app,
db_url=os.environ["GTM_DB_URL"],
secret=os.environ["GTM_SECRET"],
)
@gtm.workflow
async def enrich_leads(inputs: dict):
results = call_some_api(inputs["leads"])
return {"enriched": results}
@gtm.workflow(schedule="0 9 * * 1-5")
async def daily_sync(inputs: dict):
return {"synced": sync_database()}
@gtm.workflow(webhook=True)
async def process_event(inputs: dict):
return handle(inputs)
This mounts the dashboard at /admin/ and the REST API at /api/* on your FastAPI app. See docs/DOCS.md for the full reference — constructor options, workflow decorator options, nodes, config store, data tables (including row filtering with RowFilter, column selection, and ordering with OrderBy), and deployment.
API Routes
See docs/API-ROUTES.md for the full route reference.
Package structure
See docs/PACKAGE-STRUCTURE.md for the full source layout.
Additional docs live in
api/docs/.
Local development
For first-time setup (dependencies, .env, migrations) see the repo root README.
uv run python seed.py # Optional: seed demo data
For dev server commands see the repo root README.md.
Requirements
- Python 3.11+
- PostgreSQL database (Supabase, Neon, or self-hosted)
- FastAPI app
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 ankor-0.5.122.tar.gz.
File metadata
- Download URL: ankor-0.5.122.tar.gz
- Upload date:
- Size: 4.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83fe2870c781d8cb4ffe13e1fcc240152b32a7497e4bb6e2aab2c69ef4b3a063
|
|
| MD5 |
0e5a2c567663691f8e611e9231279cbc
|
|
| BLAKE2b-256 |
553413a425c0b56037186b0110808f4bdaa499d39bed17a3890242ac0d8ca94f
|
File details
Details for the file ankor-0.5.122-py3-none-any.whl.
File metadata
- Download URL: ankor-0.5.122-py3-none-any.whl
- Upload date:
- Size: 4.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40c95765e496d9118891b82daef924afe75cb997b250a06e2740f93606c9adce
|
|
| MD5 |
370fb5d22fc5a6c02beaeb8216be1225
|
|
| BLAKE2b-256 |
3e0968060b273b214223066090ad9c47b545010d61cf1154bdf39ee33699b35c
|