Enot (ded) Skelly
dfef16435c
feat(db): change to sqlc Querier in Store
...
this generates an interface for our sqlc methods and
changes the db Store to hold that instead in preparation
for mocking and integration tests
2026-06-15 11:13:39 -07:00
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
8b7bc21b28
fix(neighbors): don't record neighbors that are not room or repeater
2026-06-12 09:51:06 -07:00
gadgethd
87239bd4b8
fix(seed): make UpsertIATADetails a true upsert
...
UpsertIATADetails was a plain UPDATE that silently affected zero rows
when the iata_codes row did not yet exist. Adding a new IATA to the
config for the first time resulted in display_name, approx_lat, and
approx_lng remaining NULL.
Change the query to INSERT ... ON CONFLICT DO UPDATE so the row is
atomically created (if missing) or updated (if present), matching the
function's name and the pattern used by UpsertTransportScope.
2026-06-12 08:25:14 -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
ef5257db66
fix(stats): fix radio presets query
2026-06-10 13:46:21 -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
5e0274d778
fix(telemetry): incorrect truncation on observer telemetry
2026-06-10 13:04:02 -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
632f858376
fix(sql): observer telemetry for airtime and errors
...
changes from average to the calculated delta of the min
and max with a guard against negatives
closes #52
2026-06-10 08:29:10 -07:00
Enot (ded) Skelly
ddd0c473fb
chore: remove unused queries
2026-06-09 15:56:26 -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
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
cbf2c0bc5f
fix: message cursor direction
...
closes : #39
2026-06-06 11:21:12 -07:00
Enot (ded) Skelly
c792029d3d
fix: routes pagination cursor
...
closes #41
2026-06-06 11:14:13 -07:00
Enot (ded) Skelly
c0051606ee
fix: route search should have src and dest in order
...
previous just checked if the route contained the hashes
at all, not if the src was actually before the dest
2026-06-05 16:44:28 -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
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
594cd7281e
add scope stats api endpoint
2026-06-04 11:17:58 -07:00
Enot (ded) Skelly
1e5ccc6e50
add filter by scope to messages
...
also adds the multi iata filter from other endpoints
for messages now on both routes
2026-06-04 11:07:54 -07:00
Enot (ded) Skelly
fcc7bb1b23
add transport scopes
...
new config for transport scope keys seeded to db
new transport keystore to lookup matching keys and tag
- packets with scope key
- nodes with default scope
- observers with all supported scopes it forwards
allow filtering by region scope key on: packets, nodes, observers
2026-06-04 10:32:03 -07:00
Enot (ded) Skelly
cba1690470
add region filter to observers
2026-06-03 15:07:36 -07:00
Enot (ded) Skelly
67e60de76f
add region filter to nodes
2026-06-03 14:59:26 -07:00
Enot (ded) Skelly
a49c64b4b5
add region filtering to packets
2026-06-03 14:37:18 -07:00
Enot (ded) Skelly
8c71277de8
add radio-presets stats
2026-06-03 13:56:31 -07:00
Enot (ded) Skelly
153a8cb7cc
fix: packet payload filter for request (0)
2026-06-03 09:42:44 -07:00
Enot (ded) Skelly
335ff9662e
add path resolution
2026-06-02 16:26:32 -07:00
Enot (ded) Skelly
29e3378093
nit: reorder listnodes query placeholders
2026-06-02 08:08:32 -07:00
Enot (ded) Skelly
523f9484dc
fix: get node bigint cast
2026-06-02 07:50:06 -07:00
Enot (ded) Skelly
beadf5dc62
feat: allow filter by not supporting multibyte path/trace
...
depends on path resolution so will not return true yet for any nodes
2026-06-01 16:23:56 -07:00
Enot (ded) Skelly
e3084ce444
feat: add lastheard TS for node IATAs
2026-06-01 15:42:28 -07:00
Enot (ded) Skelly
8addb401cc
feat: add radio params to node summaries
...
observers and nodes now include Radio which is in the
format FreqMhz,BWKhz,SF (910.525,63.5,7)
2026-06-01 14:54:01 -07:00
Enot (ded) Skelly
bff849e20f
feat: add observer status to nodes
...
IsObserver and ObserverID in summary and details
2026-06-01 10:44:10 -07:00
Enot (ded) Skelly
cb39913e40
fix: packet observation count
...
uses actual rows for packet observations for count, no
more counter
2026-06-01 10:20:14 -07:00
Enot (ded) Skelly
da35122433
fix: iata filtered nodes should include iata list
2026-06-01 09:35:01 -07:00
Enot (ded) Skelly
0e82f8adbf
api: packet: split header and payload
2026-05-29 12:16:23 -07:00
Enot (ded) Skelly
8a57824889
api: nodes: include iata
2026-05-29 11:35:12 -07:00
Enot (ded) Skelly
222c83c3c9
fix: node observations sort order by DESC
...
was ASC giving old data first
2026-05-29 11:23:50 -07:00
Enot (ded) Skelly
2597192e89
add observation count to messages
2026-05-29 11:02:03 -07:00
Enot (ded) Skelly
5bd820e0c1
add materialized view refresh timers
2026-05-28 14:15:31 -07:00
Enot (ded) Skelly
71f5cbae3b
add stats api
2026-05-28 13:07:22 -07:00