Playbook: Atrax exposes NO event-level tachograph-infringements API (vendor limitation)
Established 2026-09-29, resolves the research question in #7306. Records — with a live signed API probe and a full grep of Atrax’s own frontend bundle — that Atrax (
tronik.atrax4.com) offers no per-violation infringements endpoint returning a timestamp + vehicle/GPS location per breach. Read this before re-opening the “show when and where each tachograph infringement happened” request — the answer is a vendor limitation, not a missing integration.
The request (#7306)
Fleet managers want, for each tachograph infringement, the exact time it occurred and the
location (vehicle/driver position at that moment) — not just the daily per-driver counters
(extended_driving_periods, shortened_rest_periods) shown today in p24_atrax_drivers_daily
(source: n8n atrax-drivers-daily-snapshot off GET /api/rtdrivers).
Conclusion — Atrax has no such endpoint
Two independent lines of evidence, both run live on 2026-09-29 with a real service-account OAuth
token (+ X-Request-Hash/X-Timestamp signing per
atrax-request-signing.md):
1. Live signed probe — every guessed event-level endpoint 404s
GET/POST against each of these returned 404 (endpoint does not exist), signed correctly:
/api/infringements /api/tachograph/events /api/driver/infringements
/api/violations /api/tachograph/infringements /api/drivers/infringements
/api/tachograph/violations /api/driveractivity /api/driver/activity
/api/events /api/naruszenia /api/infringements/{driverId}
/api/infringements?driverId=…&start=…&stop=…
/api/tachograph/events?driverId=…&start=…&stop=…
The only tachograph-adjacent endpoint that returned 200 is the already-known aggregate
POST /api/statistics/daily/drivers (body {driverIds, startTimeStamp, stopTimeStamp}) — a
daily/weekly summary per driver, carrying no per-violation timestamp, vehicle, or GPS field.
2. Frontend bundle grep — no infringement model exists in Atrax’s own UI
Atrax’s web app is an Ember.js SPA; its REST paths are built dynamically from Ember Data model
names via pathForType/adapter namespace, so the endpoint set is discoverable by grepping the
public JS bundle (assets/j-atrax-*.js, ~14 MB, served unauthenticated — same technique as
atrax-request-signing.md). The complete tachograph surface in that bundle is:
| Frontend construct | What it is | Event-level infringements? |
|---|---|---|
namespace:"api/ddd" → multi/queue, pathForType → "tachograph/files" | Raw .DDD digital-tachograph file download queue | No — binary regulatory files, not a queryable GPS-tagged event feed |
/remote/tachograph/manual/{vehicle,driver}/…, /download/tachograph/… | Remote-download control for raw tachograph card/vehicle files | No |
tachographId (report column), hasTachograph (vehicle boolean) | A card-ID column and a “vehicle has a tachograph” flag | No |
Crucially, there is no infringement / naruszenie model or endpoint at all. Every
violation/naruszenia string in the bundle is about something else:
- Route violations rendered on the map (
_addViolationsSegments,route-violation-icon,route-violates-vr, “naruszenia ograniczeń wymiarowych lub wagowych”) — dimensional/weight routing restrictions, not tachograph driving-time breaches. - Lock/seal tamper alarms (
TAMPERED_STATUS_CHANGED, “Czujnik pojazdu zarejestrował naruszenie”) — physical-security sensor events. - An ecodriving display toggle (
showViolations) — a UI setting, not a data feed.
Even the raw .DDD path does not satisfy the request: .DDD files are the regulatory
digital-tachograph download format (odometer + time records), not a structured feed, and they do
not carry GPS position at the moment of an infringement.
What Atrax DOES expose (already consumed)
/api/rtdrivers→p24_atrax_drivers_daily— one-row-per-driver realtime snapshot of daily/weekly counters (verified at code level, #7168). No per-violation timestamp/vehicle/GPS./api/statistics/daily/drivers— daily aggregate summary per driver (consumed byatrax-daily-stats-collector/atrax-ecodriving-daily)./api/rides/summary→p24_ride_events— per-segment ride events that do carry location (address/addressName/location+ GPS x/y). This is the only per-event location source in the stack, and it is about rides, not tachograph infringements.
Best-effort “when + where” already exists — and is low-confidence by design
The nightly atrax_tachograph_compliance_daily.py (#7045/#7153/#7168) already infers a
vehicle_id + occurred_at + location for each NEW violation by name-joining the driver
(first+last name ↔ p24_ride_events.driver_name) and taking a representative DRIVING segment. The
result feeds p24_fleet_anomaly_escalations (triaged in the et-operational-platform escalation
panel, every row requires_human_review=true). This correlation is explicitly low-confidence:
detail->>'vehicle_id_confidence' is inferred (name-join; no stable shared driver id;
Polish-character encoding differences unverified) or null (no matching segment). It is a hint,
not the true position at the moment of breach.
Decision — do NOT build an approximation without explicit user sign-off
Per #7306 step 5: because Atrax exposes no event-level infringement data, the correct action is
to stop at research and document the vendor limitation (this file) rather than ship a fabricated
or approximate feature (e.g. guessing infringement location from the vehicle’s current GPS, or
presenting the name-join occurred_at/location as authoritative).
Open decision for the fleet manager (requires human confirmation before any UI work): is the
existing low-confidence name-join inference in p24_fleet_anomaly_escalations acceptable to surface
in manager/reports/driver-compliance — clearly labelled as approximate / best-effort? If yes,
that becomes a separate et-operational-platform UI issue that reads the existing escalation rows (no
new table, no new n8n workflow, no new Atrax call). If no, there is no data path that satisfies
the original request and it should be closed as a vendor limitation.
Related
atrax-request-signing.md—X-Request-Hash/X-Timestampsigning + the “grep the vendor’s own JS bundle” discovery technique used here.../atrax-tachograph-compliance-operations.md— the daily compliance detector and its inferred-vehicle_id/occurred_atcorrelation.- #7304 — a separate issue (missing JAZDA DZIŚ / ZOSTAŁO aggregate fields); not related to this research and not resolved by it.