Enot (ded) Skelly
ae0669ccbe
enrich packet observations
2026-07-27 09:41:11 -07:00
Enot (ded) Skelly
336b734a42
feat: add stats api for new clock drift tracking
...
closes : #91
2026-07-24 14:01:12 -07:00
Enot (ded) Skelly
d8371f04d0
feat: split top adverts into flood/direct
...
closes : #90
2026-07-24 13:49:40 -07:00
Enot (ded) Skelly
99d7eb0bab
feat: add node stale/delete config
...
closes : #93
2026-07-24 13:09:51 -07:00
Enot (ded) Skelly
3f2506fc8b
feat: add geojson for iatas
...
closes #66
2026-07-24 12:59:48 -07:00
MrAlders0n
ba0e85c44e
fix(channels): review fixes for channel_iatas
...
Refresh last_heard on duplicate observations too, capped at hourly, so
steady traffic can't age a channel out of the filter while its packets
stay retained (dedup key has no heard_at). Guard the seed join against
the docker /dev/shm cap like the trace one, and drop the unused
last_heard index column so the upserts stay HOT.
2026-07-24 12:07:05 -07:00
MrAlders0n
dff9c6cf00
perf(channels): track channel activity per IATA in its own table
...
The IATA filter ran a correlated EXISTS over packets/observations with
ILIKE, which skipped the iata index and took ~7s live. Keep a small
channel_iatas table at ingest (like node_iatas) and filter against it.
Also honor the iatas= param so multi-site regions stop getting the
global list. Filter now ages out with packet retention rather than
matching any retained packet.
2026-07-24 12:07:05 -07:00
Enot (ded) Skelly
b33ebc007b
feat: add plural value filter params
...
closes #76
2026-07-23 14:26:16 -07:00
Enot (ded) Skelly
8e2798612b
feat: add clock drift tracking
...
closes #71
2026-07-23 13:34:41 -07:00
Enot (ded) Skelly
b38663d3a1
feat: add stats for top advertiser and talkers
...
closes #75
closes #74
2026-07-23 10:41:16 -07:00
Enot (ded) Skelly
0ca28cc6a8
feat: node prefix search
...
pubkeyPrefix takes any even length prefix string case-insensitive
and returns all matches
2026-07-23 10:14:47 -07:00
Enot (ded) Skelly
d8c622316d
fix: radio frequency precision
...
closes #77
2026-07-23 09:58:43 -07:00
Enot (ded) Skelly
f07edf9fb6
feat: include source and destination in path data where available
...
realted to #85
2026-07-23 09:44:27 -07:00
MrAlders0n
30772da2c5
perf(packets): drive IATA-filtered list from the observation index
...
Quiet sites probed hundreds of thousands of packets to fill a page.
Walk idx_observations_iata_heard per requested site and dedup instead.
Filtered lists now order by site-local recency; the cursor follows.
2026-07-20 09:07:05 -07:00
Enot (ded) Skelly
a14a0ac658
feat(paths): included resolved path in ws observation events
...
changes to shared helper for resolve paths
2026-07-02 09:39:10 -07:00
Enot (ded) Skelly
4e2ee62bad
feat(nodes): add ?neighbors to list nodes
...
inlcudes neighbor IDs in node details list
2026-07-02 09:12:23 -07:00
Enot (ded) Skelly
7b39160ff5
feat(neighbors): add optional snr column
2026-06-16 12:54:31 -07:00
Enot (ded) Skelly
89fde4868f
tests(handlers): few more things to cover
2026-06-15 15:08:38 -07:00
Enot (ded) Skelly
e9d4a336ea
tests(handlers): add some happy path tests everywhere
2026-06-15 15:02:17 -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
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
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
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
98185b54e2
test(api): packet payload and route type names
2026-06-08 13:54:14 -07:00
Enot (ded) Skelly
04877b2eb2
test(api): add parse iatas test
2026-06-08 13:39:31 -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
4147a93e8b
feat(observers): add telemetry bucketing to rest api
...
closes #37
2026-06-08 12:32:22 -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
610b941afb
feat: include snr in trace route hops
...
closes : #43
2026-06-06 13:30:59 -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