tracksolid_timescale_grafan.../tools/README.md
david kiania cae64167eb
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
feat(tickets): INC/CRQ tickets schema, geocoding + read-API
- migrations 21->23: dedicated `tickets` schema (tickets.inc / tickets.crq,
  raw-jsonb-first), geo_clusters + geo_locations gazetteers, geom-resolution
  trigger (feed -> location -> cluster -> none), reporting.fn_tickets_for_map
- dashboard_api: GET /webhook/tickets (INC/CRQ GeoJSON for the FleetOps map)
- tools/import_tickets.py: raw-first bucket ingest + cluster/location geocoding
  (LocationIQ/OpenCage, viewbox-bounded with a cluster-distance sanity guard)
- docs/CONNECTIONS.md: geocoder env var names

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 17:30:22 +03:00

23 lines
1.6 KiB
Markdown

# tools/ — manual & one-shot operator scripts
These are **not** part of the running stack (no service executes them). They are manual
utilities, mostly one-shot tasks that have already been run. Kept here for reference and
the occasional re-run, out of the production root.
They import `ts_shared_rev` (DB pool, API client, clean helpers) from the repo root, so run
them **as modules from the image root** (`/app`), not as bare files:
```bash
WK=$(docker ps --filter name=ingest_worker --format "{{.Names}}" | head -1)
docker exec -it "$WK" python -m tools.<name> [args]
```
| Script | What it does | One-shot? |
|---|---|---|
| `sync_driver_audit.py` | API↔DB driver/IMEI gap report + full device upsert across all sub-accounts | re-runnable audit |
| `audit_device_reconciliation.py` | Read-only: reconcile the vehicle CSV (`data/`) against `tracksolid.devices`; reports gaps + NULL fields | re-runnable audit |
| `import_drivers_csv.py` | Populate device names/plates from CSV (`--apply` to commit). The registry is already populated — kept for future bulk re-imports | one-shot (done) |
| `backfill_trips_enrichment.py` | One-shot backfill of historical `tracksolid.trips` (route_geom/addresses/plate) for rows predating migration 09 (`--apply` to commit) | one-shot (done) |
| `import_tickets.py` | Ingest INC/CRQ ticket snapshots (rustfs `tickets` bucket → `tracksolid.tickets`); `--from-bucket --apply`. `--geocode-clusters` seeds the cluster gazetteer that puts tickets on the FleetOps map. Needs migration 21 | re-runnable (per snapshot) |
`data/` holds the source CSVs the import/audit scripts read (default: `data/20260427_FSG_Vehicles_mitieng.csv`).