Commit graph

53 commits

Author SHA1 Message Date
Jonas Miederer
0b03399c1a chore: LLM provider env for Langflow, persistent sessions, Fernet key doc
Some checks failed
/ test (push) Has been cancelled
/ build (push) Has been cancelled
/ validate (push) Has been cancelled
2026-09-27 09:14:57 +02:00
Jonas Miederer
3ee997cb72 fix: keep Langflow flow names in sync files, write them world-readable 2026-09-25 10:44:13 +02:00
Jonas Miederer
95a1c1afb7 fix: make Langflow-synced flows visible (lfx volume perms, pull dedup) 2026-09-25 08:19:42 +02:00
Jonas Miederer
1326cece42 feat: manual full-pass sync Langflow -> files -> DB+LFX with admin guide 2026-09-24 22:33:33 +02:00
Jonas Miederer
acea6ae624 chore: add prod compose override for the Pi deployment
Some checks failed
/ test (push) Has been cancelled
/ build (push) Has been cancelled
/ validate (push) Has been cancelled
2026-09-24 09:48:35 +02:00
Jonas Miederer
a1f1b870bd fix(frontend): pin preview allowedHosts to the public domain 2026-09-24 09:48:34 +02:00
Jonas Miederer
5e9b0169de Merge branch 'fix/entrypoint-lf'
Some checks failed
/ test (push) Has been cancelled
/ build (push) Has been cancelled
/ validate (push) Has been cancelled
2026-09-15 14:50:56 +02:00
Jonas Miederer
fd5feeaeb5 fix: keep shell scripts LF so dash entrypoint starts 2026-09-15 14:50:56 +02:00
Jonas Miederer
ac0401cee2 Merge branch 'fix/lfx-user-home' 2026-09-14 21:57:17 +02:00
Jonas Miederer
23a3fd6459 fix: give lfx runtime user a home directory 2026-09-14 21:57:16 +02:00
Jonas Miederer
b1c8d6c66e Merge branch 'chore/langflow-ops'
Some checks failed
/ test (push) Has been cancelled
/ build (push) Has been cancelled
/ validate (push) Has been cancelled
2026-09-14 21:39:17 +02:00
Jonas Miederer
25cf645295 chore: prod env checker, secret guidance, internet-exposure runbook 2026-09-14 21:39:06 +02:00
Jonas Miederer
c3c4986979 Merge branch 'fix/edge-hardening' 2026-09-14 21:35:18 +02:00
Jonas Miederer
e82ce391f6 fix: edge hardening, rootless containers, fail-closed frontend mode 2026-09-14 21:35:06 +02:00
Jonas Miederer
d903d0951f Merge branch 'fix/api-authz' 2026-09-14 20:12:58 +02:00
Jonas Miederer
94e5e53092 fix: authorize flow management, gate runs, token-gate callbacks, strict tenants 2026-09-14 20:12:32 +02:00
Jonas Miederer
cfcf0e8bd6 Merge branch 'chore/ruff-hygiene' 2026-09-14 08:10:23 +02:00
Jonas Miederer
a6cc585dd0 chore: enforce ruff lint and format standards across backend 2026-09-14 08:10:14 +02:00
Jonas Miederer
a8e312a4f8 feat: landing page overhaul with pilot framing and compliance-safe copy 2026-09-13 23:29:20 +02:00
Jonas Miederer
2d7773dbca chore: add ROADMAP.md as authoritative future-ideas file 2026-09-13 21:40:18 +02:00
Jonas Miederer
fa9d99d5c0 chore: document GCM credential setup in AGENTS.md 2026-09-13 21:14:43 +02:00
Jonas Miederer
c1d505238f chore: add GCM with libicu76 dependency to devcontainer setup 2026-09-13 21:09:23 +02:00
Jonas Miederer
9420ce10cf chore: install GCM in devcontainer for HTTPS git auth 2026-09-13 21:06:28 +02:00
Jonas Miederer
c948657b25 chore: version 0.1 — changelog, VERSION file, agent workflow rules 2026-09-13 19:32:41 +02:00
Jonas Miederer
df5c1e296c feat: bell-tower favicon, lfx-clean flows, branded HTML mail 2026-09-13 17:57:42 +02:00
Jonas Miederer
672faf3af8 feat: photo landing page with favicon set 2026-09-13 12:52:46 +02:00
Jonas Miederer
b533549e45 feat: email-first login with allow-check and access forward 2026-09-12 11:20:55 +02:00
Jonas Miederer
82f7ff8b02 feat: conversion landing page with automated screenshots 2026-09-12 09:18:59 +02:00
Jonas Miederer
85c5a8381c docs: plan note for Mantine design pass 2026-09-12 08:39:23 +02:00
Jonas Miederer
38d4899b07 feat: Mantine design system with dark mode 2026-09-12 08:39:00 +02:00
Jonas Miederer
6e12720ad6 fix: mail delivery never fails requests after commit 2026-09-12 07:44:36 +02:00
Jonas Miederer
62d01b5097 feat: router with RJSF workflows and access management UI 2026-09-12 07:36:05 +02:00
Jonas Miederer
46ecab00db feat: form-input library with schema parsing and endpoint 2026-09-12 07:36:05 +02:00
Jonas Miederer
80d81b8022 fix: postCreate failures (absolute paths, sudo HOME, socket-wait bug) 2026-09-11 19:21:13 +02:00
Jonas Miederer
d4aeab8dbf fix: lfx boot, deploy key, and entrypoint perms for compose/devcontainer 2026-09-11 17:44:23 +02:00
Jonas Miederer
c8280f7078 feat: magic-link auth with access requests and RBAC 2026-09-11 17:27:58 +02:00
Jonas Miederer
c2125f063b fix: devcontainer build and setup on fresh clones 2026-09-11 17:18:59 +02:00
Jonas Miederer
1e8050611c chore: phase 0 reproducible docker/dev setup with version pinning 2026-09-09 09:44:59 +00:00
Jonas Miederer
af993bd43f feat: unify on single repo-root compose file for dev and prod
Some checks failed
/ test (push) Has been cancelled
/ build (push) Has been cancelled
/ validate (push) Has been cancelled
2026-09-07 19:46:17 +00:00
Jonas Miederer
9acdbaa453 docs: rewrite README and AGENTS.md, add admin sync button 2026-09-07 09:08:28 +00:00
Jonas Miederer
94f353d773 feat: minimal prod compose with watchtower auto-updates 2026-09-07 09:05:51 +00:00
Jonas Miederer
338cdcf108 feat: embedded flow-watcher in API lifespan with startup sync 2026-09-07 09:03:35 +00:00
Jonas Miederer
c65e3ed332 feat: canonical flow directory with sync engine (files are source of truth) 2026-09-07 08:59:56 +00:00
Jonas Miederer
7d5ade6b6a chore: switch to all-SQLite stack (drop Postgres service) 2026-09-07 08:39:06 +00:00
Jonas Miederer
74831483eb chore: devcontainer pre-creates as vscode, resilient postStart script 2026-09-07 05:04:41 +00:00
Jonas Miederer
0a2b73f3b4 feat: minimal frontend (run view, approvals, admin) with E2E smoke
- Tabs: Vorgaenge (run flows + history), Freigaben (decide tasks),
  Administration (Langflow link, import, deploy)
- Typed API client over vite /api proxy; tsc + vite build clean
- scripts/smoke_e2e.py: real LFX + API end-to-end, all green
- 34 backend tests green
2026-09-06 23:13:05 +00:00
Jonas Miederer
6c195bc2e7 feat: approval decisions, tenant scoping, error paths with tests
- POST /api/approvals/{id}/decision (approve starts continuation flow
  with task facts; reject closes; 404/409/422 guards)
- Tenant scoping: list filters + cross-tenant reads 404
- Error mapping covered: LFX down 503, LFX drift 502, corrupt flow 422
- 34 tests green
2026-09-06 23:06:34 +00:00
Jonas Miederer
1034206870 feat: Langflow authoring pipeline with tests
- LangflowClient (list/export, x-api-key auth, error mapping)
- import_from_langflow: export -> versioned definition -> LFX deploy
- POST /api/flows/import, GET /api/flows/langflow/available
- scripts/deploy_flow.py CLI
- 25 tests green (Langflow faked via dependency override + respx
  client tests; respx passthrough proven unreliable for LFX traffic)
2026-09-06 23:01:47 +00:00
Jonas Miederer
96c0da33c7 feat: flow runtime on LFX with tests
- LfxClient (upload/run/info/delete, typed errors, serve-key auth)
- Flows API: CRUD, versions, deploy, sync run, SSE stream proxy, runs
- Approvals callback endpoint (flow terminal-state contract)
- Runner: envelope in, status from approval side-effect (no interrupts)
- Fixture generator (lfx serializers) + simple_rule/approval_handoff
  fixtures verified against real lfx serve
- 14 tests green (real LFX subprocess + live uvicorn callback server)
2026-09-06 22:47:45 +00:00
Jonas Miederer
e178ae406d feat: flow engine data layer with tests
- SQLModel tables: flow_definitions/versions/runs, approval_tasks
- Alembic setup with autogenerate (sqlmodel types fixed via script.py.mako)
- Settings extended (shared root .env), db engine/session helpers
- pytest suite: conftest with isolated test DB, 5 model tests green
2026-09-06 22:28:53 +00:00