Commit Graph
131 Commits
Author SHA1 Message Date
Enot (ded) Skelly 4ebe4c869b feat: add route and neighbor reconfirmation task
prunes stale and ambiguous routes and neighbors

keep that data clean
2026-06-12 10:54:06 -07:00
Enot (ded) Skelly 044aecbd3c feat: background task scheduler
move refresh views and delete tasks to scheduler
add new config for refresh and cleanup intervals

new deployments can set these in minutes to see data faster
2026-06-12 10:28:32 -07:00
Enot (ded) Skelly c86bad3875 chore: typo in refresh view comment and add note about node type func
NodeTypeName is fine as is with possible concatenation
of the value as there is unlikely to be more than 256
node types
2026-06-12 08:49:41 -07:00
Enot (ded) Skelly b6e33ca460 docs(routes api): correct list handler cursor docs 2026-06-12 08:31:59 -07:00
Enot (ded) Skelly 5315af205c feat(traces): embed max-hop observation path and SNR in list response 2026-06-11 15:45:08 -07:00
Enot (ded) Skelly b58e5a1edc feat(api): differentiate traces and pings 2026-06-11 14:52:31 -07:00
Enot (ded) Skelly 73fa0be858 fix(routes): don't store single hop routes
migration to remove old single hop routes included
2026-06-11 14:09:10 -07:00
Enot (ded) Skelly ad8e410856 feat(api): add knownNeighborCount to nodesummary and publicKey to node neighbor 2026-06-11 13:47:58 -07:00
Enot (ded) Skelly 205eaafbe9 feat(stats): add node type breakdown
/stats/node-types w/ filters for iata/region

closes #55
2026-06-10 13:18:26 -07:00
Enot (ded) Skelly a0a687b6f8 tests(handlers): add validation tests for stats endpoints 2026-06-10 09:57:54 -07:00
Enot (ded) Skelly a9b0025b1d fix(stats): support multiple IATAs and region filtering on all stats endpoints
closes: #53 and #54
2026-06-10 09:52:02 -07:00
Enot (ded) Skelly a5bd8ccaf0 feat: add cors support
optionally control cross origin requests by origin and
method
2026-06-09 14:54:00 -07:00
Enot (ded) Skelly b574ec5c30 feat: add redis 2026-06-09 14:12:58 -07:00
Enot (ded) Skelly 983ebe126b fix: make hex query params case-insensitive 2026-06-09 10:49:55 -07:00
Enot (ded) Skelly 9716326d3d fix(security): incorrect int conversion
changes from strconv.Atoi without bounds checks to
strconv.ParseInt
2026-06-09 09:20:54 -07:00
Enot (ded) Skelly 2333468f92 feat(traces): include raw path hashes as well as resolved
closes #43
2026-06-09 08:31:04 -07:00
Enot (ded) Skelly e2b22aa477 fix: typo in subscribeScope struct 2026-06-09 08:29:55 -07:00
Enot (ded) Skelly cda4905815 docs: update SPDX license lines 2026-06-08 16:08:39 -07:00
Enot (ded) Skelly 14cb9e6e2d docs: add APGL3 license 2026-06-08 15:46:01 -07:00
Enot (ded) Skelly 27449e7725 tests(api): add handler validation for nodes, packets, routes & channels 2026-06-08 14:56:23 -07:00
Enot (ded) Skelly 205c82f9a2 test(api): add stub reader and observery tele validation tests 2026-06-08 14:52:13 -07:00
Enot (ded) Skelly 62c05e7ab8 test(api): handler response helpers 2026-06-08 14:49:37 -07:00
Enot (ded) Skelly 08ff520bf0 test(keystore): add derive hashtag key and fingerprint tests 2026-06-08 13:54:41 -07:00
Enot (ded) Skelly 98185b54e2 test(api): packet payload and route type names 2026-06-08 13:54:14 -07:00
Enot (ded) Skelly a4b0ff0366 test(ingest): add helper tests 2026-06-08 13:45:53 -07:00
Enot (ded) Skelly 04877b2eb2 test(api): add parse iatas test 2026-06-08 13:39:31 -07:00
Enot (ded) Skelly c2662598a6 test(config): add normalizedScope and deriveScopeKey 2026-06-08 13:39:11 -07:00
Enot (ded) Skelly 9f6046586f chore(tests): add node type/name helper test 2026-06-08 13:30:04 -07:00
Enot (ded) Skelly dab8f6e6b3 feat(ws): add regionSlugs support to subscribe scope 2026-06-08 13:24:35 -07:00
Enot (ded) Skelly bd605c8565 chore(tests): add tests for hub/scopeMatches 2026-06-08 13:10:39 -07:00
Enot (ded) Skelly 4147a93e8b feat(observers): add telemetry bucketing to rest api
closes #37
2026-06-08 12:32:22 -07:00
Enot (ded) Skelly cace46b004 feat(ingest): status and nodeUpdate events on par with summary analogies
observer status updates are now at data parity with
observer summary and node update events are at data
parity with node summaries

closes #38
2026-06-08 12:17:16 -07:00
Enot (ded) Skelly fef8c8d7b6 docs: improve reader interface comment readability 2026-06-08 11:47:38 -07:00
Enot (ded) Skelly 149452f066 feat(routes): add resolved hop nodes to known routes API
closes #44
2026-06-08 11:30:26 -07:00
Enot (ded) Skelly 68c254ce04 feat: add observation count to routes 2026-06-08 10:59:46 -07:00
Enot (ded) Skelly 32e6e9939a feat: cross iata routes
adds cross iata route finding

closes #42
2026-06-08 10:30:49 -07:00
Enot (ded) Skelly 7d25b8480f feat: node neighbors
limited to repeaters and room servers

stores high confidence matches from the nodes advert
packet path first hops
2026-06-08 09:36:20 -07:00
Enot (ded) Skelly 533225b46a hack: use server time for suspicious timestamps
i don't like it but multiple observer softwares are
sending the heard at timestamp with time zone errors
when it should be unix epoch ms
2026-06-08 08:20:03 -07:00
Enot (ded) Skelly 610b941afb feat: include snr in trace route hops
closes: #43
2026-06-06 13:30:59 -07:00
Enot (ded) Skelly 5247e4c3a8 fix: capture node preset only on 0 hop
previously could be observed after a bridge node
2026-06-06 13:18:04 -07:00
Enot (ded) Skelly c792029d3d fix: routes pagination cursor
closes #41
2026-06-06 11:14:13 -07:00
Enot (ded) Skelly 65cb8c9d61 add routes api
any route observer where all hops are high confidence
are now stored and available at /routes

you can also search for a src dest route and it will
return any recored route subset that can link the src
and dest hash
2026-06-05 15:57:08 -07:00
Enot (ded) Skelly f0c57fde45 add traces endpoint 2026-06-05 15:20:53 -07:00
Enot (ded) Skelly 8b23f8a4a2 change: channel messages descending
this changes channel messages fetched over the api to
return newest first so users can fetch back through time
2026-06-05 12:40:47 -07:00
Enot (ded) Skelly ae14d948d0 add scopes api 2026-06-05 12:31:35 -07:00
Enot (ded) Skelly 588b3705c9 add packet and message backfill api
/packets/backfill, /messages/backfill

both take afterId and limit. the id is the message or
packet observation last received to backfill after
2026-06-05 12:05:24 -07:00
Enot (ded) Skelly 882067455d add scope to ws packet events 2026-06-05 11:09:52 -07:00
Enot (ded) Skelly fdbcad28d8 add decrypted channel msg to packet details
also caught a bug where we never set the packet as
being decrypted even when it had been
2026-06-05 11:06:02 -07:00
Enot (ded) Skelly 7aecf2b6b9 fix formatting
allegedly
2026-06-05 10:32:00 -07:00
Enot (ded) Skelly 9a1b1d27ee add very basic tests and action
includes action for build. plus tests, fmt and vet
2026-06-05 10:26:49 -07:00