Official Festapp workflows. How to run tests, manage secrets, sync translations, and commit changes safely.
Official project procedures. See CONTRIBUTING.md for full details.
Before starting complex tasks, read: docs/architecture/ai_context.md
It explains:
When writing PostgreSQL functions (database/functions/):
public schema. Always set search_path = public, extensions. Use explicit eshop.tablename for eshop schema tables — never rely on search_path to resolve them.check_is_admin...).SECURITY DEFINER functions.Runs Web Client, database, Flutter, Deno Edge Function, integration and automation tests, with environment-dependent skips reported explicitly.
./automation/test_all.sh
Use when modifying SQL functions or migrations.
# All DB tests
node web_client/scripts/run_db_tests.js
# Specific file
node web_client/scripts/run_db_tests.js database/tests/path/to/test.sql
System-level tests (requires Supabase connection).
node tests/integration/bank_import.js --existing-token "..."
Keep SQL and Edge Function sources versioned and use the approved release
workflow. Resolve live targets from automation/project.conf, not from a
project ref in .env.local. Database changes must retain pre-cutover parity
across self-hosted, default, and a targets.
Run this after modifying Models, Routes, or Services (Refit):
fvm dart run build_runner build --delete-conflicting-outputs
Before committing, run this checklist:
./automation/apply_config.sh (Ensures
version/theme sync).analysis.txt, test_results.txt, temp_*.sql../automation/test_all.sh (Web + DB + Integration).fvm flutter analyze.node web_client/scripts/unify_translations.js (Flutter <-> Web)node web_client/scripts/reorder_cs_like_en.js (CS Structure).env files are ignored and not being committed.Run this checklist when performing a codebase-wide cleanup (e.g. comments, logs).
Ensure you sweep these areas:
.gitignore, README.md, project.conf.// returns true above return true;).console.log, print(), commented-out code
blocks.For complex cross-cutting concerns (leaks, API changes):
grep) to find all candidate files.task.md artifact..env.local (NOT committed).web_client/src/app_config.js.DATABASE_URL required for test runner.Repository and user instructions are authoritative when choosing whether to commit or publish a completed change.