MrAlders0n
dec643a2ad
feat(ws): opt-in allowed origins and observer key ( #170 )
2026-09-27 11:41:11 -04:00
n30nex
20691dc5a3
feat(backup): verify native archives offline without extraction ( #160 )
2026-09-23 20:18:45 -04:00
n30nex
a25e2675c8
feat(backup): add protected database and config download ( #154 )
2026-09-23 20:13:40 -04:00
n30nex
4d2642abec
feat(admin): add protected account lifecycle endpoints ( #149 )
2026-09-23 20:10:35 -04:00
n30nex
951b79bf6e
refactor(api): stabilize router settings and admin route wiring ( #155 )
2026-09-19 21:10:45 -04:00
n30nex
6aba17c75e
feat(nodes): indicate repeaters outside configured local borders ( #153 )
2026-09-19 15:27:34 -04:00
n30nex
c7ace0ce0e
feat(ws): limit connection attempts and signal capacity shedding ( #141 )
2026-09-19 13:28:47 -04:00
n30nex
6540b9253d
feat(admin): expose selected startup configuration ( #147 )
2026-09-19 10:36:30 -04:00
n30nex
dab228e9bb
feat(logging): configure levels and structured runtime output ( #144 )
...
* feat(logging): configure levels and structured runtime output
* fix(logging): bound request-derived log fields
* fix(logging): retain malformed IATA source attributes safely
* test(logging): capture structured REST rate-limit records
2026-09-19 10:36:26 -04:00
n30nex
595ef4442b
feat(api): rate limit REST requests by trusted client IP ( #140 )
2026-09-19 08:43:24 -04:00
n30nex
93f85cab51
feat(auth): protect the admin subtree with a bearer key ( #146 )
2026-09-18 06:18:27 -04:00
n30nex
9164659544
feat(backup): export private database and saved-config bundles ( #151 )
...
* feat(backup): export bounded database and saved-config bundles
* test(backup): preserve synthetic channel keys in exports
* fix(backup): check writable file closure before publication
2026-09-18 06:17:52 -04:00
n30nex
22410cf4a6
fix(api): trust client IP headers only from configured proxies ( #133 )
2026-09-09 20:42:35 -04:00
n30nex
88bc0dc88a
feat(retention): age out unreferenced observers when enabled ( #126 )
2026-09-09 18:45:08 -04:00
MrAlders0n
7d759d0a0f
perf: known_routes retention, digest identity, and a working batched reconfirm ( #98 )
...
* fix: cascade channel_messages on packet delete
* rebuild known_routes keyed on (iata, path_key)
* add route retention delete, batch reconfirm, path_key upsert
* compute route path_key in store, add DeleteOldRoutes
* add routes retention config
* wire route retention into cleanup, batch reconfirm
* prune routes in reconfirm task, not cleanup
* expand routes retention docs in example config
2026-08-12 09:30:03 -04:00
Enot (ded) Skelly
201cd9e364
chore: version bump v1.6.0
2026-07-24 13:31:23 -07:00
Enot (ded) Skelly
3cad2dfda1
feat: process messages for new channels at boot
...
any new channel added to config will get backfilled if there
are any messages to decrypt
closes : #68
2026-07-24 13:27:27 -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
8e2798612b
feat: add clock drift tracking
...
closes #71
2026-07-23 13:34:41 -07:00
MrAlders0n
d113036414
feat(beacon): route ingest through the presence coalescer
2026-07-20 08:55:18 -07:00
Enot (ded) Skelly
4860921e90
chore: version bump v1.5.4
2026-06-24 08:04:54 -07:00
Enot (ded) Skelly
86b0549c75
chore: version bump v1.5.3
2026-06-20 10:33:54 -07:00
Enot (ded) Skelly
3d43600632
fix: forgot swagger
2026-06-20 10:28:51 -07:00
Enot (ded) Skelly
82ede1e124
chore: version bump v1.5.1
2026-06-20 10:26:13 -07:00
Enot (ded) Skelly
5fdd97f478
chore: version bump 1.4.1 to 1.5.0
...
lots of tests and some small refactors
2026-06-15 15:12:22 -07:00
Enot (ded) Skelly
3105eba8e0
chore(keystore): move entryExists into keystore and add tests
2026-06-15 14:38:48 -07:00
Enot (ded) Skelly
ecde7957f7
feat(config): pull out resolution into package and add tests
...
also adds a string method for pretty config printing
2026-06-15 14:35:14 -07:00
Enot (ded) Skelly
94fbab0294
chore: version bump v1.4.1
2026-06-12 11:16:50 -07:00
Enot (ded) Skelly
41bccb10b1
docs: document binary builds
2026-06-12 11:15:01 -07:00
Enot (ded) Skelly
eb8a76efca
chore: version bump v1.4.0
2026-06-12 10:58:22 -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
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
061f629c37
feat: add graceful shutdown timeout to prevent possible hangs
2026-06-12 08:40:22 -07:00
Enot (ded) Skelly
432cfe8c57
chore: rename mustEnv to getEnv
...
more clear as it only logs not fails
2026-06-12 08:34:39 -07:00
Enot (ded) Skelly
47d61f5283
chore: version bump
2026-06-11 15:56:36 -07:00
Enot (ded) Skelly
a4a505e9db
chore: update version in swagger ahead of release
2026-06-11 15:55:44 -07:00
Enot (ded) Skelly
c3bf6d7e0d
feat: add auto db migration in binary
2026-06-11 15:39:07 -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
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
d9a641b99c
add log for no IATA filter
...
inverse of existing log for active filters
2026-06-05 08:38:55 -07:00
Enot (ded) Skelly
a943660778
rename to beacon
2026-06-05 08:10:43 -07:00
Enot (ded) Skelly
b72ce41606
add iata ingest filter
...
generated code, reviewed and tested
this adds an optional lookup table for allowed IATA based on either country,
conintent or both. if the IATA is in either it is allowed.
gives operators the option to consume from global mqtt brokers but filter
to their area of interest
2026-06-04 15:24:34 -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
49558c6dd0
add radio preset view
...
move refresh for materialized views into helper and call at boot
2026-06-03 13:46:44 -07:00
Enot (ded) Skelly
b8164b17b9
conn limit fo ws
2026-05-29 10:26:02 -07:00
Enot (ded) Skelly
31bcda03b9
add swagger
...
change to named functions in route handlers for swagger docs
2026-05-28 15:11:04 -07:00
Enot (ded) Skelly
5bd820e0c1
add materialized view refresh timers
2026-05-28 14:15:31 -07:00