# Changelog All notable changes to this project are documented in this file. ## [1.0.2] - 2026-08-31 ### Changed - Public GitHub source: `repository` / `bugs` → [extralabs/octowatch-api](https://github.com/extralabs/octowatch-api); CI badge restored - Homepage UTM campaign `software_submit_2026` → `npm_api` ## [1.0.1] - 2026-08-31 ### Changed - README first screen: who it’s for, why not raw `fetch`, clearer quick start (npm page clarity) - Removed non-existent GitHub `repository` / `bugs` links and CI badge (package is published on npm only) ## [1.0.0] - 2026-08-31 ### Added - `compactPayload` — opt-in helper to strip blobs / shorten long text / cap lists (off by default) - `cacheUsersGroups` client option (`true` = 5 min, or TTL in ms) + `invalidateUsersGroupsCache` - `listDirectory({ source: "users_groups" })` shares the same cache as `listUsersGroups` - Semver policy and npm/CI badges in README - `PaginatedPeriodQueryOptions` — `fetchAll` / `maxRecords` only on list endpoints ### Changed - `fetchAll` rejected on non-list period methods (activity/productivity/idle/online/analytics/dashboard/…); allowed on `listRisks`, `listAnomalies`, `getTimesheet`, `getChrono`, `listMonitoring` ### Notes - Public method surface for read-oriented Cloud access is considered stable for 1.x. - Homepage UTM `octowatchdlp.com/api/` verified reachable (marketing overview; REST host remains `cloud.octowatchdlp.com`). ## [0.4.0] - 2026-08-31 ### Added - `listReports` — GetReports + GetProcessingTasks - `getAnalytics` — Analytics overall / disciplina / activity / productivity - `summarizeRisksByUser` — per-user totals from Analytics/Overall - `getDashboard` — Dashboard/Get* widgets (+ metric1) - `listDirectory` — users/groups/computers/additional directory Gets - `getUserInfo` — user_data / tooltip / group / computer / users_from_computer - `listStreamMeta` — WhichContentExists / GetVideos / GetDownloads (meta only) - `getAccountReadonly` — account/profile/license Get* whitelist - `packageCoverage()` — static map of this package’s methods - Catalog constants: `DIRECTORY_SOURCES`, `ANALYTICS_VIEWS`, `DASHBOARD_WIDGETS`, … ## [0.3.0] - 2026-08-31 ### Added - `listOnline` — Live/Overall2 presence - `getChrono` — Chrono/Overall2 timeline - `getDayStructure` — DayStructureList / GetDayStructure (list | detail) - `getActivityDetail` — ActivityWindow / CategoryWindow drill-down - `listMonitoring` — single Monitoring/{kind} table - `searchMonitoring` — Tools → Search fan-out across Monitoring kinds - Monitoring helpers: `MONITORING_KINDS`, `SEARCH_KIND_SPECS`, `resolveSearchKinds` - Repo examples: `examples/etl-risks.mjs`, `idle-vs-anomalies.mjs`, `keyword-search.mjs` ## [0.2.0] - 2026-08-31 ### Added - Typed responses for directory, risks, anomalies, activity, productivity, idle, and timesheet reads - Error subclasses: `OctoWatchAuthError`, `OctoWatchHttpError`, `OctoWatchTimeoutError` - Auth via `accessToken` (optional `refreshToken` / `publicId`) in addition to email/password - `onTokens` callback after login/refresh (and when seeding a constructor token) - `fetchAll` / `maxRecords` on period list methods (hard cap 2000) - Per-call `AbortSignal`, configurable `maxRetries` (429 / 5xx / network), default `User-Agent` - `whoami()`, `VERSION`, pagination helpers (`iterateOverallPages`, `fetchAllOverall`) - Vitest unit tests and GitHub Actions CI (Node 18 / 20 / 22) ### Changed - Constructor accepts either email+password or `accessToken` - Network failures wrap into `OctoWatchAPIError` with `cause` ## [0.1.1] - previous Initial thin client: JWT login/refresh, eight period read wrappers, filter/period helpers, smoke script.