Tracksolid deployment with timescale & grafana with backup
Find a file
David Kiania 257643cae2
Some checks failed
Static Analysis / static (push) Waiting to run
Tests / test (push) Waiting to run
Static Analysis / static (pull_request) Has been cancelled
Tests / test (pull_request) Has been cancelled
fix: auto-register devices on push + allow CSV import to insert new rows
Three changes that together close the FK-violation loop on /pushalarm:

1. import_drivers_csv.py: when an IMEI is in the CSV but not in
   tracksolid.devices, INSERT a new row instead of skipping. Unblocks
   the 140 X3/JC400P devices listed as a HIGH open item in CLAUDE.md §10.

2. webhook_receiver_rev.py: new _ensure_device() helper upserts a stub
   devices row (status='unknown') before inserting an alarm. Handles the
   third class of devices — not in API sync, not in CSV (e.g. the
   X3-63282 Kampala device flagged in CLAUDE.md §10).

3. CSV refreshed from Downloads (Apr 21 version, 140 active rows).

Also fixes alarm error log previously showing "None" (read deviceImei
instead of the integration push's imei field).

CSV import already applied live on the instance (63 → 201 devices).
Webhook patch requires a Coolify redeploy to pick up _ensure_device().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 12:29:32 +03:00
.forgejo/workflows feat: add db_audit health checks, runner, and scheduled Forgejo workflow 2026-04-12 21:40:29 +03:00
administration Add DB connection string to ops manual, add administration notes, remove stale deploy guide 2026-04-10 22:34:56 +03:00
db_audit feat: add db_audit health checks, runner, and scheduled Forgejo workflow 2026-04-12 21:40:29 +03:00
docs feat: Daily Operations dashboard + tracksolid analytics views 2026-04-19 13:44:18 +03:00
grafana feat: Daily Operations dashboard + tracksolid analytics views 2026-04-19 13:44:18 +03:00
n8n-workflows Add n8n workflow templates and change webhook port to 8888 2026-04-08 18:54:42 +03:00
tests perf+fix: SAVEPOINT-per-item pollers, batched GPS inserts, parallel detail fetch 2026-04-18 00:33:55 +03:00
.env fix: point DATABASE_URL at timescale_db container (not legacy 31.97.44.246:5888) 2026-04-18 15:43:49 +03:00
.gitignore Add webhook receiver, consolidate shared utilities, expand telemetry coverage 2026-04-08 16:31:17 +03:00
.python-version chore: align .python-version to 3.12.0 (matches Docker image and pyproject.toml) 2026-04-12 21:41:43 +03:00
01_BusinessAnalytics.md docs: update analytics report with live DB state (18 Apr 2026) 2026-04-18 08:39:58 +03:00
02_tracksolid_docker_commands.md Add 02_tracksolid_docker_commands.md — remote DB command reference 2026-04-11 08:23:01 +03:00
02_tracksolid_full_schema_rev.sql Add webhook receiver, consolidate shared utilities, expand telemetry coverage 2026-04-08 16:31:17 +03:00
03_webhook_schema_migration.sql Add webhook receiver, consolidate shared utilities, expand telemetry coverage 2026-04-08 16:31:17 +03:00
04_bug_fix_migration.sql Fix alarm field mapping, distance unit bug, parking params; add schema migrations 2026-04-10 22:18:30 +03:00
05_enhancement_migration.sql Fix alarm field mapping, distance unit bug, parking params; add schema migrations 2026-04-10 22:18:30 +03:00
06_business_analytics_migration.sql feat: business analytics expansion + driver CSV import 2026-04-18 08:30:34 +03:00
07_analytics_views.sql feat: Daily Operations dashboard + tracksolid analytics views 2026-04-19 13:44:18 +03:00
260410_baseline_report.md Regenerate 260410_baseline_report.md from live database (post-migration) 2026-04-11 07:42:33 +03:00
260412_baseline_report.md Add 260412 baseline report — first trip data, FIX-M16 confirmed 2026-04-12 00:14:27 +03:00
20260414_FS__Logistics - final_fixed.csv fix: auto-register devices on push + allow CSV import to insert new rows 2026-04-21 12:29:32 +03:00
CLAUDE.md feat: Daily Operations dashboard + tracksolid analytics views 2026-04-19 13:44:18 +03:00
docker-compose.yaml fix: change DB host port 5888→5433 (5888 already allocated by legacy DB) 2026-04-18 14:19:20 +03:00
Dockerfile Fix migration failures: switch to full TimescaleDB + use psql runner 2026-04-08 17:17:58 +03:00
grafanaDeployment.md Add Grafana NOC fleet dashboard with provisioning 2026-04-09 00:01:52 +03:00
grafanaOperationalManual.md Add Grafana NOC operational manual 2026-04-09 00:12:48 +03:00
import_drivers_csv.py fix: auto-register devices on push + allow CSV import to insert new rows 2026-04-21 12:29:32 +03:00
ingest_events_rev.py perf+fix: SAVEPOINT-per-item pollers, batched GPS inserts, parallel detail fetch 2026-04-18 00:33:55 +03:00
ingest_movement_rev.py perf+fix: SAVEPOINT-per-item pollers, batched GPS inserts, parallel detail fetch 2026-04-18 00:33:55 +03:00
OPERATIONS_MANUAL.md Replace hardcoded container names with dynamic lookup 2026-04-10 23:09:01 +03:00
pyproject.toml ci: add ruff + mypy static analysis config and Forgejo workflow 2026-04-12 21:32:33 +03:00
README.md first commit 2026-04-07 20:41:16 +03:00
run_migrations.py feat: Daily Operations dashboard + tracksolid analytics views 2026-04-19 13:44:18 +03:00
run_migrations.sh Add idempotent migration runner script 2026-04-10 23:31:57 +03:00
sync_driver_audit.py perf+fix: SAVEPOINT-per-item pollers, batched GPS inserts, parallel detail fetch 2026-04-18 00:33:55 +03:00
tracksolid_DB_manual.md Replace hardcoded container names with dynamic lookup 2026-04-10 23:09:01 +03:00
tracksolidApiDocumentation.md Update tracksolidApiDocumentation.md with live implementation findings 2026-04-11 07:52:28 +03:00
ts_shared_rev.py Fix 5 webhook bugs: SAVEPOINTs, NULL guards, BCD timestamps, /pushevent, log NULL fix 2026-04-11 18:19:13 +03:00
webhook_receiver_rev.py fix: auto-register devices on push + allow CSV import to insert new rows 2026-04-21 12:29:32 +03:00