l5y
6775de3cca
Prune blank values from API responses ( #386 )
2025-10-18 20:16:14 +02:00
l5y
8143fbd8f7
Add full support to telemetry schema and API ( #385 )
...
* feat: auto-upgrade telemetry schema
* Ensure numeric metrics fallback to valid values
* Format data processing numeric metric lookup
2025-10-18 15:19:33 +02:00
l5y
cf3949ef95
Respect PORT environment override ( #384 )
2025-10-18 13:01:48 +02:00
l5y
32d9da2865
Add instance selector dropdown for federation deployments ( #382 )
...
* Add instance selector for federation regions
* Avoid HTML insertion when seeding instance selector
2025-10-18 10:53:26 +02:00
l5y
61e8c92f62
Harden federation announcements ( #381 )
2025-10-18 10:38:28 +02:00
l5y
30d535bd43
Ensure private mode disables chat messaging ( #378 )
2025-10-17 22:47:54 +02:00
l5y
d06aa42ab2
Respect FEDERATION flag for federation endpoints ( #379 )
2025-10-17 22:47:41 +02:00
l5y
1898a99789
Delay initial federation announcements ( #366 )
2025-10-16 21:50:43 +02:00
l5y
a6ba9a8227
Guard federation DNS resolution against restricted networks ( #362 )
...
* Guard federation DNS resolution against restricted networks
* Pin federation HTTP clients to vetted IPs
2025-10-16 21:15:34 +02:00
l5y
81335cbf7b
Decouple messages API from node joins ( #360 )
2025-10-16 13:19:29 +02:00
l5y
926b5591b0
Harden instance domain validation ( #359 )
2025-10-16 10:51:34 +02:00
l5y
dc2fa9d247
Recursively ingest federated instances ( #353 )
...
* Recursively ingest federated instances
* Keep absent is_private nil during signature verification
2025-10-15 21:35:37 +02:00
l5y
49f08a7f75
Harden federation domain validation and tests ( #347 )
...
* Harden federation domain validation and tests
* Preserve domain casing for signature verification
* Forward sanitize helper keyword argument
* Handle mixed-case domains during signature verification
2025-10-15 18:14:31 +02:00
l5y
b2d35d3edf
Handle malformed instance records ( #348 )
2025-10-15 17:08:24 +02:00
l5y
03b5a10fe4
Add LoRa metadata fields to nodes and messages ( #331 )
...
* Add LoRa metadata fields to nodes and messages
* Filter numeric SQLite keys from message rows
2025-10-14 14:51:28 +02:00
l5y
ffad84f18a
Ensure frontend reports git-aware version strings ( #321 )
...
* Ensure frontend reports git-aware version strings
* Keep footer fixed across viewport widths
2025-10-13 16:26:57 +02:00
l5y
dee6ad7e4a
Refine environment configuration defaults ( #318 )
2025-10-13 14:06:14 +02:00
l5y
d66b09ddee
Ensure APIs filter stale data and refresh node details from latest sources ( #312 )
...
* Ensure fresh API data and richer node refresh details
* Refresh map markers with latest node data
2025-10-13 10:54:47 +02:00
l5y
772c5888c3
Fix ingestor debug timestamps for structured logging ( #296 )
2025-10-12 09:40:57 +02:00
l5y
522213c040
Restore modular app functionality ( #291 )
...
* Restore modular app functionality
* Fix federation thread settings and add coverage
* Use Sinatra set for federation threads
* Restore 41447 as default web port
2025-10-12 08:54:11 +02:00
l5y
58998ba274
Refactor config and metadata helpers into PotatoMesh modules ( #290 )
2025-10-11 23:19:25 +02:00
l5y
4ad718e164
Update default site configuration environment values ( #288 )
2025-10-11 21:20:36 +02:00
l5y
73bdd809bd
Normalize INSTANCE_DOMAIN configuration to require hostnames ( #280 )
...
* Ensure INSTANCE_DOMAIN configuration uses hostname
* Define ip_from_domain before use
2025-10-11 19:39:05 +02:00
l5y
2240be1f2d
Improve instance domain detection logic ( #278 )
2025-10-11 18:22:50 +02:00
l5y
a048a83c6c
Implement federation announcements and instances API ( #277 )
2025-10-11 18:01:08 +02:00
l5y
4ef1e29034
Fix federation signature handling and IP guard ( #276 )
...
* Fix federation signature handling and IP guard
* Avoid defaulting isPrivate before signature verification
* Normalize instance domain host handling for restricted IP check
* ignore web app credentials
---------
Co-authored-by: l5yth <d220195275+l5yth@users.noreply.github.com >
2025-10-11 17:39:52 +02:00
l5y
678af5e55b
Add configurable instance domain with reverse DNS fallback ( #272 )
...
* Add instance domain resolution with reverse DNS fallback
* run rufo
---------
Co-authored-by: l5yth <d220195275+l5yth@users.noreply.github.com >
2025-10-11 12:21:55 +00:00
l5y
16e1304ded
Add comprehensive RDoc comments to Ruby helpers ( #254 )
2025-10-07 08:53:39 +02:00
l5y
6660986211
Add tests for helper utilities and asset routes ( #243 )
...
* test: expand coverage for helpers and assets
* Adjust failing helper and asset specs
* Adjust specs for fallback node lookup and missing logo
2025-10-07 07:07:23 +02:00
l5y
09a2d849ec
Improve live node positions and expose precision metadata ( #231 )
...
* Fetch latest node positions and precision metadata
* Stop showing position source and precision in UI
* Guard node positions against stale merges
2025-10-05 23:08:57 +02:00
l5y
2a65e89eee
Add neighbor info ingestion and API endpoints ( #218 )
...
* Add neighbor info ingestion and API support
* Fix neighbor spec and add fixture
* run black
* run rufo
2025-10-05 12:35:13 +02:00
l5y
5ac5f3ec3f
Update node last seen when events are received ( #212 )
...
* Update node last seen timestamps from event receive times
* run rufo
* fix tests
2025-10-04 21:11:16 +02:00
l5y
d4a27dccf7
Add telemetry API and ingestion support ( #205 )
...
* Add telemetry ingestion and API support
* Flatten telemetry storage and API responses
* Fix telemetry insert placeholder count
* Adjust telemetry node updates
* run black
* run rufo
2025-10-04 18:28:18 +02:00
l5y
74c4596dc5
Add private mode to hide chat and message APIs ( #204 )
...
* Add private mode to hide chat and message APIs
* run rufo
2025-10-04 09:36:43 +02:00
l5y
ff06129a6f
Update node last seen when ingesting encrypted messages ( #198 )
...
* Update node last seen for encrypted messages
* run rufo
2025-10-03 10:59:12 +02:00
l5y
556dd6b51c
Update last heard on node entry change ( #185 )
2025-09-26 20:43:53 +02:00
l5y
3863e2d63d
Populate chat metadata for unknown nodes ( #182 )
...
* Populate chat metadata for unknown nodes
* run rufo
* fix comments
* run rufo
2025-09-26 16:45:42 +02:00
l5y
c8c7c8cc05
Add placeholder nodes for unknown senders ( #181 )
...
* Add placeholder nodes for unknown senders
* run rufo
2025-09-26 14:24:30 +02:00
l5y
ee6501243f
Handle encrypted messages ( #173 )
...
* Handle encrypted messages
* Remove redundant message node columns
* Preserve original numeric message senders
* Normalize message sender IDs in API responses
* Exclude encrypted messages from API responses
* run rufo
2025-09-24 07:34:28 +02:00
l5y
d711300442
Remove raw payload storage from database schema ( #166 )
2025-09-23 17:29:08 +02:00
l5y
98a8203591
Add POSITION_APP ingestion and API support ( #160 )
...
* Add POSITION_APP ingestion and API support
* Adjust mesh receive subscriptions and priorities
* run linters
2025-09-23 16:42:51 +02:00
l5y
17018aeb19
Derive SEO metadata from existing config ( #153 )
2025-09-23 08:20:42 +02:00
l5y
608d1e0396
bump version to 0.2.1 ( #134 )
2025-09-20 20:59:21 +02:00
l5y
6750d7bc12
Add footer version display ( #128 )
...
* Add footer version display
* Ensure footer version text matches spec
2025-09-19 11:22:28 +02:00
l5y
71e9f89aae
Harden API auth and request limits ( #116 )
...
* Harden API auth and request limits
* run rufo
2025-09-17 08:00:25 +02:00
l5y
84ed739a61
Handle message updates based on sender info ( #108 )
...
* Handle message updates based on sender info
* run rufo
2025-09-16 19:41:56 +02:00
l5y
3edf60c625
chore: clean up repository ( #96 )
...
* chore: clean up repository
* Fix message spec node lookup for numeric IDs (#98 )
* Fix message spec node lookup for numeric IDs
* run rufo
* Fix message node fallback lookup (#99 )
2025-09-16 15:25:12 +02:00
l5y
1beb343501
Handle SQLite busy errors when upserting nodes ( #100 )
2025-09-16 15:24:01 +02:00
l5y
0c0f877b13
Configure Sinatra logging level from DEBUG flag ( #97 )
...
* Configure Sinatra logging level
* Fix logger level helper invocation
* Fix Sinatra logger helper definition syntax
2025-09-16 14:46:50 +02:00
l5y
f7a1b5c5ad
Add penetration tests for authentication and SQL injection ( #95 )
2025-09-16 13:13:57 +02:00