1.7 KiB
Tracking JSON export
Reports offers an Export JSON dialog for the displayed month or its full calendar year. Downloads use Vaadin session resources, not a public API endpoint. Data is generated at request time with current-owner authorization and the same owner transaction lock used by domain mutations.
Schema version 1 contains exportedAt (UTC), period (type/from/toExclusive), workEntries, habitDays, daysOff, referenced customers/projects, habits, and weeklyLimitChanges. Dates and stable IDs are strings, counts and hours are integers. Names reflect current catalog names, including archived records. Removed day-off markers are excluded. Habit definitions include inactive habits. For each habit, limit history includes its last change at or before the period start and subsequent changes before the exclusive end. Absent earlier limits mean all four bounds are unset. No padded weekly tracking dates or misleading partial-week totals are included.
The export is a tracking document, not an account backup or import format. It contains no authentication material, push endpoints, or server configuration. Filename is werkjournal-YYYY-MM.json or werkjournal-YYYY.json; response content type is application/json with UTF-8.
Validation covers leap-month/year periods, invalid selections, owner isolation, adjacent dates, removed markers, historical effective limits, stable references, archived renamed catalog records, and Unicode/quoted descriptions. Production build passed. Browser-triggered month and year downloads completed through the actual transfer handler (1672 and 1671 bytes for the local fixture); this proves server transfer completion, not a particular client filesystem save location. Transfer errors display a retry message.