Commit graph

348 commits

Author SHA1 Message Date
asonix bd172753fb Add basic administration via telegram 2022-11-02 17:58:52 -05:00
asonix a2bd41a00f Improve concurrency 2022-11-02 13:55:45 -05:00
asonix 32f5a0670f Keep a couple more fields out of logs 2022-11-01 16:50:23 -05:00
asonix bc263701e2 Log cleanup 2022-11-01 15:57:33 -05:00
asonix 7e9371e392 Trim newlines in public keys 2022-11-01 14:30:49 -05:00
asonix c16adca27c Don't double-hash message bytes 2022-10-29 13:47:23 -05:00
asonix 0b0ed56bad Update RSA, other deps 2022-10-29 12:22:13 -05:00
asonix 5ae4c43caa Update deps, structopt -> clap, re-enable cargo publish 2022-09-28 18:01:52 -05:00
Aode (lion) 79fa0fb828 Update to git background jobs 2022-07-02 14:07:25 -05:00
Aode (lion) f5d7c80d2e Bump deps 2022-07-02 11:01:02 -05:00
Aode (lion) 2313303e22 Update RSA 2022-04-08 17:39:38 -05:00
Aode (Lion) f9816ddd3b Update to stable actix-web 2022-02-26 12:12:07 -06:00
Aode (lion) 0916b26d67 Update deps 2022-02-01 11:47:17 -06:00
Aode (lion) ca0a0d8e9f Update actix web 2022-01-23 23:03:00 -06:00
Aode (Lion) 726a479025 Remove direct dependency on time 2022-01-17 17:57:06 -06:00
Aode (Lion) 8893895c71 Update to latest activitystreams 2022-01-17 16:54:45 -06:00
Aode (lion) 3e0595fa88 Update actix web 2021-12-28 10:23:48 -06:00
Aode (lion) dd92650cff Add console-subscriber, add cargo publish step 2021-12-19 14:24:31 -06:00
Aode (lion) fbb7b397c2 clippy 2021-12-03 16:20:37 -06:00
Aode (lion) 66c86ebfd6 Update deps, add drone 2021-12-03 16:17:25 -06:00
Aode (lion) 8b6d97fd4a Don't include SpanTrace in Error debug 2021-11-24 21:57:20 -06:00
Aode (lion) 0d38133271 Merge branch 'main' of git.asonix.dog:asonix/relay into main 2021-11-23 16:20:44 -06:00
Aode (lion) 1dba31e3a0 Clippy lints, dashmap for breakers 2021-11-23 16:19:59 -06:00
Aode (Lion) 1b1d3ac8cc Merge branch 'main' of git.asonix.dog:asonix/relay into main 2021-11-23 12:46:42 -06:00
Aode (Lion) 4753a454ab Update deps 2021-11-23 12:43:52 -06:00
Aode (lion) e1c61d5b5f Update deps 2021-11-22 18:38:58 -06:00
Aode (lion) 8021dca1dd Update background jobs 2021-10-29 19:26:57 -05:00
Aode (Lion) 231290380e Bump background jobs, other deps 2021-10-11 14:19:32 -05:00
Aode (Lion) ea9854d3b2 Remove unhelpful fields from Request debug 2021-09-21 14:33:42 -05:00
Aode (Lion) 3384ca9064 Clean up debug impls 2021-09-21 14:32:25 -05:00
Aode (Lion) 4b4aaaa0b4 Don't store Config in State 2021-09-21 13:26:31 -05:00
Aode (Lion) 2792f5075d Enable tracing AWC 2021-09-21 11:21:06 -05:00
Aode (lion) 90965d6ee9 Better format errors 2021-09-20 13:13:21 -05:00
Aode (lion) a53c8a0a63 Include version info in builds 2021-09-20 12:49:07 -05:00
Aode (lion) d26ff4a7cb Switch from tokio-current-thread to tokio for otel 2021-09-18 15:47:10 -05:00
Aode (lion) 82371d4a65 Name relay service for otel 2021-09-18 13:55:11 -05:00
Aode (lion) 5e24bb06a7 Support exporting metrics to Opentelemetry 2021-09-18 13:40:47 -05:00
Aode (lion) d627c5b6b2 Bump versions 2021-09-18 13:00:35 -05:00
Aode (lion) 43e5b6d873 Instrument with tracing 2021-09-18 12:55:39 -05:00
asonix 8474640278 Bump dependencies 2021-08-01 15:12:06 -05:00
asonix 994bf0b6ef Update to latest actix betas 2021-06-26 18:14:43 -05:00
asonix f105c427dc Update actix betas 2021-06-24 12:02:27 -05:00
asonix 80bc838073 Bump actix version 2021-04-17 12:36:47 -05:00
asonix a48749e310 Update actix deps 2021-03-09 20:09:56 -06:00
asonix d6fa5d3617 Expose source_repo env var 2021-02-11 22:11:55 -06:00
asonix 2e6396be2b Fix staffAccounts extraction 2021-02-11 14:27:41 -06:00
asonix 486dabff9e Error contact job on failed extraction 2021-02-11 14:18:58 -06:00
asonix 2479c2b39d Test contact extraction 2021-02-11 14:17:17 -06:00
asonix 1311f92b6c Add support for pulling a pleroma admin 2021-02-11 13:41:03 -06:00
asonix 43227d9852 Update to actix-web 4.0.0-beta.3 2021-02-10 18:00:11 -06:00
asonix 1c813d917b Spawn cache tasks for new follows 2021-02-10 12:35:37 -06:00
asonix 52408d8189 Add tests for connect/disconnect 2021-02-10 09:47:23 -06:00
asonix b9f9fd4a12 Allow sub-actors of connected server-actors 2021-02-10 09:23:55 -06:00
asonix 57ed79add5 Use actor ID in NotSubscribed error 2021-02-10 00:59:16 -06:00
asonix d0a728a9b5 Log & test connections 2021-02-10 00:57:49 -06:00
asonix b2904bb1ba Don't add inbox as connection 2021-02-10 00:44:48 -06:00
asonix 2619a93643 Fix rdnn block checks 2021-02-10 00:14:42 -06:00
asonix c3d5de600d Fix mutex scoping, map payload in-place 2021-02-09 23:45:13 -06:00
asonix 2c275e441b pub -> pub(crate) 2021-02-09 22:17:20 -06:00
asonix 50d2b5b21c bro we are sledding 2021-02-09 22:05:06 -06:00
asonix d7e68190c4 Remove direct dependencies on tokio, bytes, reduce lock contention for circuitbreaker 2020-12-29 11:27:14 -06:00
asonix 9923d4d107 Add allow/block check to verifier middleware before key validation 2020-12-23 12:30:19 -06:00
asonix e2da563a1c Add breakers for requests to down domains 2020-12-23 12:06:15 -06:00
asonix b51a389ca9 Update deps, use mastodon-compat mode 2020-09-29 19:33:50 -05:00
asonix dd83f4a859 Stable releases 2020-09-13 19:46:13 -05:00
asonix 1f065385a0 Update deps 2020-09-07 16:51:02 -05:00
asonix e80ded92f5 Debug host 2020-09-07 15:28:58 -05:00
asonix b6e25df717 Add host to signatures 2020-09-07 13:34:29 -05:00
asonix 1d0a1d7cfd update version string 2020-07-25 17:33:11 -05:00
asonix 812de59348 Bump job concurrency 2020-07-25 10:41:39 -05:00
asonix be07ee0177 Add URL to statuscode error 2020-07-25 10:13:00 -05:00
asonix a26cc2b8f7 Update rsa 2020-07-25 09:33:35 -05:00
asonix db5284e162 Use memory job store because why not 2020-07-10 20:00:31 -05:00
asonix 51ef5c2796 Revert "Support pleromo registrations format"
This reverts commit 741c4efc0e.
2020-07-10 18:42:48 -05:00
asonix 741c4efc0e Support pleromo registrations format 2020-07-10 18:34:24 -05:00
asonix e2feeecbb3 Allow missing approval-required 2020-07-10 18:18:05 -05:00
asonix 261e52e551 Better json errors 2020-07-10 18:06:04 -05:00
asonix c4b4f13fa6 Don't validate content type on response, pleromo is weird 2020-07-10 17:47:41 -05:00
asonix c499b5355c Send normal json accept header for normal json endpoints 2020-07-10 17:24:47 -05:00
asonix b7e8d2e465 Join upstream service with payload fut 2020-07-10 15:34:18 -05:00
asonix fbe8baaee9 Add payload debug middleware for inbox 2020-07-10 15:07:47 -05:00
asonix 652ab6ac42 Remove XsdAnyUri 2020-06-27 17:29:23 -05:00
asonix bc1003c467 Don't overwrite listener URI 2020-06-20 10:06:01 -05:00
asonix 2bbcc82d9c Update activitystreams 2020-06-19 23:11:02 -05:00
asonix 1bb098d42b Use 'uri' in a few places 2020-06-03 16:01:37 -05:00
asonix 55eb002ccd Remove redundant ownings 2020-06-03 13:45:17 -05:00
asonix d5cf29f237 Generate XsdAnyUri rather than String, remove XsdString 2020-06-03 12:37:36 -05:00
asonix 8dc24376fb Rebuild client if too many consecutive failures 2020-05-23 18:56:27 -05:00
asonix 4df92f5128 Use a better mutex 2020-05-21 21:42:56 -05:00
asonix 1dbfce9430 Fix wrong actor error ids 2020-05-21 21:15:20 -05:00
asonix 0fd26a8290 Simplify a couple lines, forward error on json conversion error 2020-05-21 20:59:14 -05:00
asonix 4b9a8c5354 Always cache media, use CacheControl header for statics 2020-05-21 18:51:11 -05:00
asonix a45c204a5b Add cache-media job to keep icons up-to-date 2020-05-21 18:04:12 -05:00
asonix ce9de20471 Optional outbox 2020-05-21 17:29:36 -05:00
asonix 17886732dd Fix inbox resolution, fix notsubscribed message 2020-05-21 17:00:55 -05:00
asonix 729e425e32 Fully lean on activitystreams-new 2020-05-21 16:24:56 -05:00
asonix 0b2763ab8b Clippy 2020-04-25 20:49:29 -05:00
asonix 13a968aaa9 Add Date header so the relay can actually make requests lmao 2020-04-23 13:36:06 -05:00
asonix d3e3a13997 Remove actix actor dependency 2020-04-23 13:28:00 -05:00
asonix a51bed3cc4 Use latest sig lib 2020-04-23 13:04:17 -05:00
asonix 0b7ca46e08 Support relay.dog nodeinfo format 2020-04-23 11:37:33 -05:00
asonix a528046a68 Update sig lib, forward more error context, better blind key rotation support 2020-04-22 17:41:01 -05:00
asonix dea8c60042 Add regen-key ability if can't read key 2020-04-21 17:47:34 -05:00
asonix b8336b441c Quiet requests logging, forward context info in error 2020-04-21 16:39:02 -05:00
asonix 1e8c54f7cc Don't precompute, it already happens 2020-04-21 14:31:32 -05:00
asonix 45349f3252 Precompute private key biguints 2020-04-21 14:25:08 -05:00
asonix 84a396fc1e Fix a couple client headers 2020-04-21 14:18:18 -05:00
asonix 0ffcb74de6 Update webfinger dep 2020-04-21 14:12:10 -05:00
asonix 0f5b5fca24 register delivermany 2020-04-21 12:15:33 -05:00
asonix 82e8042c66 Clean db code, switch to deadpool 2020-04-21 12:07:39 -05:00
asonix 4d07476fe7 Give jobs better names 2020-04-20 20:03:46 -05:00
asonix f016f14efe Use newest background-jobs 2020-04-20 19:56:50 -05:00
asonix db26ebc4ca Lowercase software name in nodeinfo 2020-04-19 16:35:46 -05:00
asonix dd2658be82 Compare fetched actor's domain against requested actor's domain 2020-04-18 14:45:03 -05:00
asonix 60da0ecc9e Add compression middleware back in, but put it logically inside the logger 2020-04-13 20:01:56 -05:00
asonix c5bc9b76d8 Remove compress middleware 2020-04-13 19:36:28 -05:00
asonix 7c8fbdd965 Update deps, use tokio_postgres' Json type 2020-04-02 13:51:10 -05:00
asonix 69ec2baf79 Bump duration for actor cache to 30 minutes 2020-04-01 15:47:18 -05:00
asonix a52a32db8d Move apub business to jobs 2020-03-30 12:10:04 -05:00
asonix 680ccc511c Use ActixJob, save a few lines 2020-03-30 10:45:44 -05:00
asonix b8bc230403 Move sign, verify to threadpool 2020-03-30 01:06:13 -05:00
asonix 8fb810b5bf Break notify loop on error 2020-03-27 12:47:18 -05:00
asonix 19857a77f1 Unblock everyone, oops 2020-03-26 14:42:11 -05:00
asonix f11043e57d Store media uuid mappings, be mindful of locks 2020-03-26 13:21:05 -05:00
asonix d445177c69 Quiet html5ever, shuffle servers, mobile scaling 2020-03-26 11:17:59 -05:00
asonix bcfe8b14a3 Quiet some logs in debug mode 2020-03-26 09:22:57 -05:00
asonix 7e9779aa4a Compress responses, cache images, log requests 2020-03-25 22:53:10 -05:00
asonix 9ada30626b Add media cache, improve default styles 2020-03-25 22:26:45 -05:00
asonix 0a42450801 Quiet a couple logs 2020-03-25 18:06:01 -05:00
asonix 76b43e705a Debug log all node cache misses 2020-03-25 17:58:00 -05:00
asonix 9f98015d7f Fix contact field name 2020-03-25 17:44:29 -05:00
asonix b7f2de0245 Add logging to cache misses 2020-03-25 17:34:54 -05:00
asonix 78a359c403 Move notify to registration-based triggers, store nodes in db 2020-03-25 17:10:10 -05:00
asonix a7b4bc59be Remove re-seed, it's been run in prod already 2020-03-23 22:43:45 -05:00
asonix bd75b1f958 Add a crude re-seed for populating actors 2020-03-23 17:37:23 -05:00
asonix e4c95a8168 More shuffling, store actors in db 2020-03-23 17:17:53 -05:00
asonix 9925e41673 Do a bit of reorganizing 2020-03-23 12:38:39 -05:00
asonix f44df38ea1 Revert "Do not prefer sharedinbox"
This reverts commit 3389730242.
2020-03-23 11:00:12 -05:00
asonix 3389730242 Do not prefer sharedinbox 2020-03-22 22:57:54 -05:00
asonix 3bfa2c0e45 Add local jobs, query connected servers for info 2020-03-22 22:52:42 -05:00
asonix 97b5612717 Add job flags 2020-03-22 19:07:36 -05:00
asonix dabeba43e2 Make connections configurable 2020-03-22 18:21:40 -05:00
asonix 7510ab5b94 Don't use actor for notify, fix migration dockerfile 2020-03-22 18:06:49 -05:00
asonix 6511e7f32e Use postgres for job storage 2020-03-22 16:18:36 -05:00
asonix d00961ae86 Add optional publish-blocks option 2020-03-21 23:50:14 -05:00
asonix 467bd860d9 Increase backoff exponent for deliveries 2020-03-21 17:12:50 -05:00
asonix 13ce219d76 Accept Undo Follow from already unfollowed actor 2020-03-21 16:01:54 -05:00
asonix 5a49c1f10c Use background jobs for delivery, support Accept and Reject 2020-03-21 15:24:05 -05:00
asonix 6a8f7db165 Fix nodeinfo Services, Usage 2020-03-20 16:19:14 -05:00
asonix 43280f30fe Fix nodeinfo, expose peers 2020-03-20 15:35:08 -05:00
asonix 8efb00dc72 Fix nodeinfo casing 2020-03-20 13:44:34 -05:00
asonix fbed60248d Add ructe 2020-03-20 13:40:18 -05:00
asonix ef13e93140 Listen isn't always reliable, rehydrate every 10 minutes 2020-03-20 10:22:56 -05:00
asonix 65ce77898a Handle notify dying, add env_logger option 2020-03-20 10:09:42 -05:00
asonix 7538041b67 Add basic info page 2020-03-19 23:06:16 -05:00
asonix 722a00f9dc Fix VERIFY_SIGNATURES config, add README 2020-03-19 22:23:10 -05:00
asonix e8744b23c5 Update debug levels 2020-03-19 20:11:50 -05:00
asonix eefff20941 Add commandline blocking and whitelisting 2020-03-19 19:55:11 -05:00
asonix 3c5154d449 Use single connection pool 2020-03-19 17:19:05 -05:00
asonix 790d0965fb Add nodeinfo support 2020-03-19 14:05:16 -05:00
asonix 19e23fbfa5 Add security context to actor 2020-03-19 12:09:33 -05:00
asonix f7e733c500 Oops on the Extension 2020-03-18 20:57:39 -05:00
asonix 2b36909d2f Update to activitypub with extensions 2020-03-18 17:49:56 -05:00
asonix f48d404a15 Add logging for unhydrated values 2020-03-18 17:37:22 -05:00
asonix 4fba2f317d Save listeners in db 2020-03-18 13:56:13 -05:00
asonix 4c373e562b Perform db action inline 2020-03-18 13:25:43 -05:00
asonix cdef00f844 Add custom response status for not subscribed 2020-03-18 12:47:08 -05:00
asonix 19a6a6e61c Use actor's inbox for listener check 2020-03-18 12:42:48 -05:00
asonix cb4d99cdc5 Generic 'prepare_activity' 2020-03-18 12:06:08 -05:00
asonix e8ed464e62 Properly forward Announce and Create 2020-03-18 00:43:31 -05:00
asonix 26b4129261 Log on wrong actor follow 2020-03-18 00:07:52 -05:00
asonix 877fa1418e Accepted from inbox 2020-03-18 00:01:14 -05:00
asonix 27a9030be1 Handle errors a bit better 2020-03-17 23:58:13 -05:00
asonix 6d34077010 Big Cleanup 2020-03-17 23:35:20 -05:00
asonix a4ec70d6ec Bring whitelist/block checks to outermost level, fix deliveries 2020-03-17 21:16:09 -05:00
asonix e849df2ef4 Don't use created field when sending requests, masto is poopoo 2020-03-17 19:02:33 -05:00
asonix d6b609e640 Print request error resposnses if present 2020-03-17 16:53:31 -05:00
asonix 2dc86b89cd Generate proper key id, sign actor request 2020-03-17 16:36:53 -05:00
asonix b10a8f4b71 Don't print signing string, too much info 2020-03-17 15:54:44 -05:00
asonix 489a5ff023 Require publicKey, check actor's public key for agreement 2020-03-17 15:52:26 -05:00
asonix 9642e357e5 Enforce sig is from correct actor 2020-03-17 14:52:33 -05:00
asonix 496cf571b2 Correctly encode/decode base64, add more verifier logging 2020-03-17 13:29:55 -05:00
asonix 9fc507210a Move requests to requests module, respond with 200 2020-03-17 12:15:16 -05:00
asonix 10cf26918c Add outbox url 2020-03-17 08:55:55 -05:00
asonix ea64843a59 Update rsa-pem, properly use RSA crate 2020-03-16 20:41:00 -05:00
asonix 979b2a14f8 Expose to outside world 2020-03-16 18:17:27 -05:00
asonix 7f45021afb Use rustls 2020-03-16 13:27:42 -05:00
asonix b7bf001287 Update cache from postgres notifications
- Add actor that listens to the notification stream
- Move queries into db module
2020-03-16 13:00:16 -05:00
asonix 8d157ccbc6 remove unused feature 2020-03-16 09:34:52 -05:00
asonix b0352018bc Update activitystreams 2020-03-15 23:44:46 -05:00
asonix 954e8968db Only protect inbox with digest&sig verification 2020-03-15 23:26:31 -05:00
asonix 9fdd3bec18 Add http signature verification 2020-03-15 23:15:50 -05:00
asonix eea0577686 Add keys, http-sigs, webfinger 2020-03-15 22:36:46 -05:00
asonix d741e2b202 Always return generated AP type, except on error 2020-03-15 17:49:40 -05:00
asonix 0cbe679e65 Basic relay functionality 2020-03-15 17:37:53 -05:00
asonix aa6b5daaf0 Follow 'works' 2020-03-15 12:49:27 -05:00
asonix 6cb4484a33 Use existing caches 2020-03-15 11:29:01 -05:00
asonix b7369e2cc0 whatamidoing 2020-03-14 21:05:40 -05:00