feat(context): add NestJS backend, PostgreSQL database, and migrate web app from Supabase to API

- Create NestJS backend on port 3020 with 4 modules (space, document, ai, token)
- Add Drizzle schema with 5 tables (spaces, documents, token_transactions, model_prices, user_tokens)
- Rewrite web services (spaces, documents, tokens, ai) to use shared API client instead of Supabase
- Move AI API keys server-side (Azure OpenAI, Google Gemini)
- Add seed script for model prices (gpt-4.1, gemini-pro, gemini-flash)
- Add 70 unit tests across 4 test suites (space, document, token, ai services)
- Add monorepo integration (setup-databases.sh, generate-env.mjs, docker init-db, root scripts)
- Remove @supabase/supabase-js dependency and delete supabase.ts from web app
- Update CLAUDE.md with full API documentation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-03-19 09:28:01 +01:00
parent 7f4edb3dfb
commit ea4b585f37
50 changed files with 4041 additions and 361 deletions

View file

@ -81,8 +81,9 @@ ALL_DATABASES=(
"nutriphi_bot"
"questions"
"skilltree"
"lightwrite"
"mukke"
"traces"
"context"
)
# Check if specific service requested
@ -192,17 +193,21 @@ setup_service() {
create_db_if_not_exists "skilltree"
push_schema "@skilltree/backend" "skilltree"
;;
lightwrite)
create_db_if_not_exists "lightwrite"
push_schema "@lightwrite/backend" "lightwrite"
mukke)
create_db_if_not_exists "mukke"
push_schema "@mukke/backend" "mukke"
;;
traces)
create_db_if_not_exists "traces"
push_schema "@traces/backend" "traces"
;;
context)
create_db_if_not_exists "context"
push_schema "@context/backend" "context"
;;
*)
echo -e "${RED}Unknown service: $service${NC}"
echo "Available services: auth, chat, zitare, contacts, calendar, clock, todo, manadeck, mail, moodlit, picture, photos, finance, voxel-lava, figgos, planta, nutriphi, presi, storage, projectdoc, zitare_bot, todo_bot, nutriphi_bot, questions, skilltree, lightwrite, traces"
echo "Available services: auth, chat, zitare, contacts, calendar, clock, todo, manadeck, mail, moodlit, picture, photos, finance, voxel-lava, figgos, planta, nutriphi, presi, storage, projectdoc, zitare_bot, todo_bot, nutriphi_bot, questions, skilltree, mukke, traces, context"
exit 1
;;
esac
@ -226,7 +231,7 @@ echo -e "\n${GREEN}Step 2: Pushing schemas${NC}"
echo "--------------------------------------"
# Push schemas for all known services
for service in auth chat zitare contacts calendar clock todo manadeck picture photos mail moodlit finance voxel-lava figgos planta nutriphi presi storage questions skilltree lightwrite traces; do
for service in auth chat zitare contacts calendar clock todo manadeck picture photos mail moodlit finance voxel-lava figgos planta nutriphi presi storage questions skilltree mukke traces context; do
setup_service "$service" 2>/dev/null || true
done