Commit Graph
27 Commits
Author SHA1 Message Date
Chris Beck b0496fbc9a integrat the app-code plugin to the signal-gateway-bin 2025-12-09 11:43:25 -07:00
Chris Beck 775c66b287 use builder pattern with gateway 2025-12-09 09:38:23 -07:00
Chris Beck 9c7275ed79 simplify configuration, no more subcommands 2025-12-08 18:59:22 -07:00
Chris Beck 996ed1ed0f add and use command-router to simplify the way signal-gateway processes admin commands 2025-12-08 18:39:11 -07:00
Chris Beck 739075f2e2 make Gateway::new return Arc::Self 2025-12-07 16:06:52 -07:00
Chris Beck 35f8ff766d stronger parsing for signal trust set 2025-12-06 23:16:23 -07:00
Chris Beck c2ad134393 add support for toml file parsing, tweak some configuration names 2025-12-06 22:53:08 -07:00
Chris Beck df1616daeb fix code position 2025-12-06 21:11:07 -07:00
Chris Beck 0cca1f8da3 remove admin-netcat thing 2025-12-06 20:43:49 -07:00
Chris Beck 7791af162c cargo fmt, fix limiter set evaluate semantics 2025-12-06 19:24:39 -07:00
Chris Beck b0d1c1bd92 refactor signal trust set API 2025-12-06 10:21:11 -07:00
Chris Beck 6ed38cb1fd refactor admin_signal_uuids container 2025-12-06 10:09:54 -07:00
Chris Beck 5779edb610 rename admin safety numbers to admin_signal_uuids 2025-12-06 09:57:40 -07:00
Chris Beck ac6beaf8e4 add conf-test on top-level config 2025-12-06 09:52:55 -07:00
Chris Beck 64bc606201 enable conf serde and test the toml format with our current schema 2025-12-06 03:26:30 -07:00
Chris Beck d2d9754df0 commit a rustfmt toml and merge imports 2025-12-05 23:22:16 -07:00
Chris Beck a214b8e474 introduce and use new route framework
in this change:

* new "concurrent map" API using RwLock<HashMap> optimized for
  frequent reads.
* we no longer have a concurrent map of log handlers, we instead
  have a log handler containing a concurrent map from origins to
  circular buffers
* we have a general concept of a "Limit" now which replaces AlertRule
* A route consists of a filter, plus any number of limits, which
  can be per-origin limits or global limits
* The set of routes is disjunctive, while the filters and limits are conjunctive
* Limits can also apply per source location
* Different types of rate limiters are unified under the "Limiter"
  abstraction
* The log handler also has a set of overall limiters that can be applied
  at the end
* This means we can relatively easily express disjunctions of conjunctions

I think the route structure will also be relatively easy to express in toml
2025-12-05 19:10:37 -07:00
Chris Beck ffa1246e51 listen on udp and tcp for json logs as well 2025-12-05 15:12:20 -07:00
Chris Beck a42aad48f4 also allow json logs to be sent over a TCP stream, with multiple messages using json_lines ofrmat for framing 2025-12-05 14:49:21 -07:00
Chris Beck 914a9910c2 support syslog over TCP as well 2025-12-05 12:45:41 -07:00
Chris Beck a7cd3bdcde move Logfilter to the Logmessage module, change MessageHandler to a proper trait 2025-12-05 11:20:58 -07:00
Chris Beck 82ed77a098 add support for udp over json logging 2025-12-05 10:18:39 -07:00
Chris Beck 8bd2e6ab68 add admin_http post forwarding 2025-12-05 09:59:04 -07:00
Chris Beck ef1b5ed4ca move all "admin_netcat" stuff to a new admin_netcat module in the gateway-bin, not in the gateway lib 2025-12-05 03:45:50 -07:00
Chris Beck eee48100c1 move syslog stuff to a submoudle of signal-gateway-bin and make it optional 2025-12-05 03:13:42 -07:00
Chris Beck ee436b69db break syslog-rfc5424 dependency in signal-gateway, now it's only in the bin 2025-12-05 02:59:01 -07:00
Chris Beck 3d748572d4 move signal-gateway binary to its own crate, simplify deps 2025-12-05 01:01:39 -07:00