Commit Graph

  • 4d62bc9499 feat(09-01): wire retention scheduler into application lifespan Jason Staack 2026-03-12 23:34:03 -05:00
  • a9f7a45a9b feat(09-01): implement retention cleanup service with configurable retention period Jason Staack 2026-03-12 23:33:27 -05:00
  • 00bdde9975 test(09-01): add failing tests for retention cleanup service Jason Staack 2026-03-12 23:32:20 -05:00
  • be41add4e9 feat(08-02): add snapshot download button to config history timeline Jason Staack 2026-03-12 23:23:55 -05:00
  • 8a64596d8b docs(08-01): complete diff viewer plan Jason Staack 2026-03-12 23:22:22 -05:00
  • 2cf426fa63 feat(08-01): wire diff viewer into config history timeline Jason Staack 2026-03-12 23:20:52 -05:00
  • dda00fbd23 feat(08-01): add diff viewer component and API client Jason Staack 2026-03-12 23:20:24 -05:00
  • bd09590c01 docs(07-01): complete config history UI timeline plan Jason Staack 2026-03-12 23:13:36 -05:00
  • 36861fffea feat(07-01): wire ConfigHistorySection into device detail page Jason Staack 2026-03-12 23:12:16 -05:00
  • 6bd24517ba feat(07-01): add config history API client and timeline component Jason Staack 2026-03-12 23:11:46 -05:00
  • e8bf994e7d docs(06-02): complete snapshot view and diff retrieval plan Jason Staack 2026-03-12 23:04:48 -05:00
  • af7007df13 feat(06-02): add snapshot view and diff retrieval endpoints Jason Staack 2026-03-12 23:03:32 -05:00
  • 83cd661efc feat(06-02): add get_snapshot and get_snapshot_diff service functions Jason Staack 2026-03-12 23:02:58 -05:00
  • 7c0aa1b359 docs(06-01): complete config history timeline plan Jason Staack 2026-03-12 23:01:12 -05:00
  • 5c56344d74 feat(06-01): add config-history endpoint with RBAC and main.py registration Jason Staack 2026-03-12 22:59:37 -05:00
  • f7d5aec4ec feat(06-01): add config history service with TDD tests Jason Staack 2026-03-12 22:58:51 -05:00
  • 3416cc90a5 docs(05-02): complete structured change parser plan Jason Staack 2026-03-12 22:38:16 -05:00
  • 122b5917f4 feat(05-02): wire change parser into diff service with RETURNING id Jason Staack 2026-03-12 22:37:09 -05:00
  • b167831105 feat(05-02): implement config change parser for RouterOS diffs Jason Staack 2026-03-12 22:35:48 -05:00
  • 7fddf35fc5 test(05-02): add failing tests for config change parser Jason Staack 2026-03-12 22:35:19 -05:00
  • 4e083a9606 docs(05-01): complete config diff service plan Jason Staack 2026-03-12 22:34:16 -05:00
  • eb76343d04 feat(05-01): wire diff generation into snapshot subscriber Jason Staack 2026-03-12 22:32:40 -05:00
  • 72d0ae2856 feat(05-01): implement config diff service with Transit decrypt and difflib Jason Staack 2026-03-12 22:31:28 -05:00
  • 79453fa115 test(05-01): add failing tests for config diff service Jason Staack 2026-03-12 22:30:52 -05:00
  • db5bb3fa96 docs(04-01): complete manual backup trigger plan Jason Staack 2026-03-12 22:12:33 -05:00
  • 00f0a8b507 feat(04-01): add config snapshot trigger endpoint with NATS request-reply Jason Staack 2026-03-12 22:10:25 -05:00
  • 0e664150e7 test(04-01): add failing tests for config snapshot trigger endpoint Jason Staack 2026-03-12 22:08:13 -05:00
  • 0851eced36 feat(04-01): implement BackupResponder with extracted CollectAndPublish Jason Staack 2026-03-12 22:07:35 -05:00
  • 9e102fda20 test(04-01): add failing tests for BackupResponder Jason Staack 2026-03-12 22:04:44 -05:00
  • bf3fb509ed docs(03-01): complete config snapshot subscriber plan Jason Staack 2026-03-12 21:49:43 -05:00
  • 0db06419e7 feat(03-01): wire config snapshot subscriber into main.py lifespan Jason Staack 2026-03-12 21:47:51 -05:00
  • 3ab9f27d49 feat(03-01): implement config snapshot subscriber with dedup and encryption Jason Staack 2026-03-12 21:47:07 -05:00
  • 9d8274158a test(03-01): add failing tests for config snapshot subscriber Jason Staack 2026-03-12 21:45:41 -05:00
  • d456fe58e9 docs(02-02): complete backup scheduler plan Jason Staack 2026-03-12 20:57:47 -05:00
  • d34817a36c feat(02-02): wire BackupScheduler into main.go lifecycle Jason Staack 2026-03-12 20:55:06 -05:00
  • 2653a32d6f feat(02-02): implement BackupScheduler with per-device goroutines and concurrency control Jason Staack 2026-03-12 20:54:23 -05:00
  • a884b0945d test(02-02): add failing tests for BackupScheduler Jason Staack 2026-03-12 20:52:29 -05:00
  • 7ff3178b84 docs(02-01): complete config backup primitives plan Jason Staack 2026-03-12 20:50:27 -05:00
  • 4ae39d2cb3 feat(02-01): add config backup env vars, NATS event, device SSH fields, migration, metrics Jason Staack 2026-03-12 20:48:12 -05:00
  • f1abb75cab feat(02-01): add SSH executor with TOFU host key verification and config normalizer Jason Staack 2026-03-12 20:46:04 -05:00
  • 33f888a6e2 docs(02): create phase plan for poller config collection Jason Staack 2026-03-12 20:39:47 -05:00
  • a7a17a5ecd feat(01-01): add Alembic migration 027 for config snapshot tables with RLS Jason Staack 2026-03-12 20:04:18 -05:00
  • 8fe275e6f3 feat(01-01): add RouterConfigSnapshot/Diff/Change ORM models and tests Jason Staack 2026-03-12 20:03:43 -05:00
  • 7e2d637e0d docs: initialize project Jason Staack 2026-03-12 19:37:09 -05:00
  • 70126980a4 docs: map existing codebase Jason Staack 2026-03-12 19:33:26 -05:00
  • 5beede9502 Merge branch 'feature/remote-access' Jason Staack 2026-03-12 19:04:14 -05:00
  • c2eea6847f fix: WinBox tunnel bind address, port range, and proxy support Jason Staack 2026-03-12 19:03:53 -05:00
  • 8cce0ef750 docs: add v9.5 remote access to website docs Jason Staack 2026-03-12 17:02:02 -05:00
  • acf1790bed feat: add audit.session.end NATS pipeline for SSH session tracking Jason Staack 2026-03-12 16:07:10 -05:00
  • 7aaaeaa1d1 fix: address spec compliance gaps - tenant check, XFF fallback, rate limiting Jason Staack 2026-03-12 15:51:14 -05:00
  • a4e1c78744 docs: update documentation for v9.5 remote access feature Jason Staack 2026-03-12 15:47:03 -05:00
  • d2471278ab feat(frontend): integrate WinBox and SSH buttons into device page Jason Staack 2026-03-12 15:45:14 -05:00
  • b76fdb3240 feat(frontend): add SSH terminal component with xterm.js Jason Staack 2026-03-12 15:43:31 -05:00
  • b3b2f87beb feat(frontend): add WinBox tunnel button component Jason Staack 2026-03-12 15:43:03 -05:00
  • 79afd2a1ad feat(frontend): add remote access API client methods Jason Staack 2026-03-12 15:42:42 -05:00
  • e5a9758f58 chore(frontend): add xterm.js dependencies for SSH terminal Jason Staack 2026-03-12 15:42:29 -05:00
  • 27f4403856 feat(infra): add nginx WebSocket proxy and SSH relay config to compose files Jason Staack 2026-03-12 15:40:53 -05:00
  • 4860fad643 feat(api): add remote access endpoints for WinBox tunnels and SSH sessions Jason Staack 2026-03-12 15:39:24 -05:00
  • 63fa45ffdd feat(api): add remote access pydantic schemas Jason Staack 2026-03-12 15:36:36 -05:00
  • cb427272ed feat(poller): wire tunnel manager and SSH relay into main Jason Staack 2026-03-12 15:35:55 -05:00
  • c73466c5e0 feat(poller): add SSH relay server with WebSocket-to-PTY bridge Jason Staack 2026-03-12 15:33:48 -05:00
  • d3d3e36192 feat(poller): add NATS tunnel responder for WinBox tunnel management Jason Staack 2026-03-12 15:30:34 -05:00
  • 7a6ebdca89 feat(poller): add tunnel manager with idle cleanup and status tracking Jason Staack 2026-03-12 15:28:56 -05:00
  • 8105b995ff feat(poller): add TCP tunnel with bidirectional proxy and activity tracking Jason Staack 2026-03-12 15:26:47 -05:00
  • d885f9b4b6 feat(poller): add port pool for WinBox tunnel allocation Jason Staack 2026-03-12 15:25:01 -05:00
  • 5f9410fa54 chore(poller): add websocket dependency for remote access Jason Staack 2026-03-12 15:23:48 -05:00
  • c0304da2dd docs: add remote access (v9.5) implementation plan Jason Staack 2026-03-12 15:20:04 -05:00
  • d16a5c991f docs: add remote access design spec (WinBox tunnels + SSH terminal) Jason Staack 2026-03-12 15:09:31 -05:00
  • bb9176fb9c docs: update docs to reflect recent fixes and actual codebase state Jason Staack 2026-03-12 14:13:57 -05:00
  • 6b22741f54 fix: audit logs never persisted + firmware-cache permission denied Cog 2026-03-11 23:02:36 -05:00
  • 21b8ce029f fix: nginx 502 after API container restart (dynamic DNS resolver) Cog 2026-03-11 22:28:39 -05:00
  • 58597ad4fd fix: CRLF/BOM line endings + restart policies + gitattributes Cog 2026-03-11 22:16:42 -05:00
  • 57e754bb27 fix: implement vault key decryption on login + fix token refresh via cookie Cog 2026-03-11 21:56:08 -05:00
  • d0548bec86 fix(crypto): use 27 base-30 chars for Secret Key to prevent data loss Jason Staack 2026-03-10 14:04:24 -05:00
  • b954e0aa2a fix(docs): restore full quick start steps, fix architecture visibility Jason Staack 2026-03-09 23:18:53 -05:00
  • b280faadf8 docs: update landing page copy from review notes Jason Staack 2026-03-09 23:16:38 -05:00
  • 44de8c42c4 fix(docs): extend gradient fill across full hero title Jason Staack 2026-03-09 23:11:43 -05:00
  • 786d494670 fix(docs): fix gradient fill direction so it ends on gradient, not white Jason Staack 2026-03-09 23:10:50 -05:00
  • dc6182bbd0 feat(docs): animate gradient fill across hero title on page load Jason Staack 2026-03-09 23:09:23 -05:00
  • e2813116da fix(docs): stagger bullet throb so only one pulses at a time per list Jason Staack 2026-03-09 23:08:11 -05:00
  • a3630c03e6 fix(docs): make bullet throb loop continuously via CSS only Jason Staack 2026-03-09 23:06:34 -05:00
  • 7126621e83 fix(docs): make bullet throb repeat on every scroll into view Jason Staack 2026-03-09 23:05:22 -05:00
  • 040f0335c1 feat(docs): add bullet throb animation on scroll Jason Staack 2026-03-09 23:04:11 -05:00
  • ff09382e3a fix(docs): center content sections to match hero layout Jason Staack 2026-03-09 23:00:34 -05:00
  • 0aa09260db docs: rewrite landing page with operator-focused copy Jason Staack 2026-03-09 22:58:21 -05:00
  • 5fbff03dea docs: simplify architecture diagram, remove tech stack badges Jason Staack 2026-03-09 22:54:49 -05:00
  • 28870a61a3 docs: add early access / testing disclaimer Jason Staack 2026-03-09 22:49:24 -05:00
  • a3d2172797 fix(backend): change APP_BASE_URL default from port 5173 to 3000 Jason Staack 2026-03-09 22:39:04 -05:00
  • 837ab6f8fa fix(backend): parse CLI command string into RouterOS API command + args Jason Staack 2026-03-09 22:05:05 -05:00
  • 394be01145 fix(frontend): default ping/traceroute target to 8.8.8.8 Jason Staack 2026-03-09 21:57:10 -05:00
  • a3cc35c4b7 fix(frontend): generate Emergency Kit PDF client-side with actual Secret Key Jason Staack 2026-03-09 21:47:50 -05:00
  • 6c7dfe02f5 fix(frontend): show Secret Key field when IndexedDB key is stale Jason Staack 2026-03-09 21:30:09 -05:00
  • 32965857e7 fix: wire up empty-state Add Device button to open dialog Jason Staack 2026-03-09 21:12:01 -05:00
  • 2605a97331 fix: use user.user_id instead of user.id in SMTP settings save Jason Staack 2026-03-09 21:08:21 -05:00
  • f7a53e60da fix: SMTP TLS logic was inverted — plain SMTP incorrectly used STARTTLS Jason Staack 2026-03-09 21:03:54 -05:00
  • 2461582cb3 fix: use relative paths for bind-mount volumes Jason Staack 2026-03-09 20:51:33 -05:00
  • 9510e56ced fix: use working dev defaults in .env.example Jason Staack 2026-03-09 20:46:33 -05:00
  • 8949a36454 fix: bump Node to 20 in frontend Dockerfile for Vite 7 compatibility Jason Staack 2026-03-09 20:39:51 -05:00
  • d30df957e2 fix: rename network from 'mikrotik' to 'tod' to match overlay compose files Jason Staack 2026-03-09 20:35:42 -05:00
  • 4cb887b8fa ci: add feature request issue template staack 2026-03-09 17:50:45 -05:00