Compare commits
No commits in common. "main" and "v0.3.115" have entirely different histories.
7 changed files with 576 additions and 999 deletions
1509
Cargo.lock
generated
1509
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
22
Cargo.toml
22
Cargo.toml
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "ap-relay"
|
name = "ap-relay"
|
||||||
description = "A simple activitypub relay"
|
description = "A simple activitypub relay"
|
||||||
version = "0.3.116"
|
version = "0.3.115"
|
||||||
authors = ["asonix <asonix@asonix.dog>"]
|
authors = ["asonix <asonix@asonix.dog>"]
|
||||||
license = "AGPL-3.0"
|
license = "AGPL-3.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
@ -30,12 +30,12 @@ activitystreams = "0.7.0-alpha.25"
|
||||||
activitystreams-ext = "0.1.0-alpha.3"
|
activitystreams-ext = "0.1.0-alpha.3"
|
||||||
ammonia = "4.0.0"
|
ammonia = "4.0.0"
|
||||||
async-cpupool = "0.3.0"
|
async-cpupool = "0.3.0"
|
||||||
bcrypt = "0.16"
|
bcrypt = "0.15"
|
||||||
base64 = "0.22"
|
base64 = "0.22"
|
||||||
clap = { version = "4.0.0", features = ["derive"] }
|
clap = { version = "4.0.0", features = ["derive"] }
|
||||||
color-eyre = "0.6.2"
|
color-eyre = "0.6.2"
|
||||||
config = { version = "0.14.0", default-features = false, features = ["toml", "json", "yaml"] }
|
config = { version = "0.14.0", default-features = false, features = ["toml", "json", "yaml"] }
|
||||||
console-subscriber = { version = "0.4", optional = true }
|
console-subscriber = { version = "0.3", optional = true }
|
||||||
dashmap = "6.0.1"
|
dashmap = "6.0.1"
|
||||||
dotenv = "0.15.0"
|
dotenv = "0.15.0"
|
||||||
futures-core = "0.3.30"
|
futures-core = "0.3.30"
|
||||||
|
@ -47,15 +47,15 @@ metrics-exporter-prometheus = { version = "0.15.0", default-features = false, fe
|
||||||
metrics-util = "0.17.0"
|
metrics-util = "0.17.0"
|
||||||
mime = "0.3.16"
|
mime = "0.3.16"
|
||||||
minify-html = "0.15.0"
|
minify-html = "0.15.0"
|
||||||
opentelemetry = "0.27.1"
|
opentelemetry = "0.23"
|
||||||
opentelemetry_sdk = { version = "0.27", features = ["rt-tokio"] }
|
opentelemetry_sdk = { version = "0.23", features = ["rt-tokio"] }
|
||||||
opentelemetry-otlp = { version = "0.27", features = ["grpc-tonic"] }
|
opentelemetry-otlp = "0.16"
|
||||||
pin-project-lite = "0.2.9"
|
pin-project-lite = "0.2.9"
|
||||||
# pinned to metrics-util
|
# pinned to metrics-util
|
||||||
quanta = "0.12.0"
|
quanta = "0.12.0"
|
||||||
rand = "0.8"
|
rand = "0.8"
|
||||||
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream"]}
|
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream"]}
|
||||||
reqwest-middleware = { version = "0.4", default-features = false, features = ["json"] }
|
reqwest-middleware = { version = "0.3", default-features = false, features = ["json"] }
|
||||||
reqwest-tracing = "0.5.0"
|
reqwest-tracing = "0.5.0"
|
||||||
ring = "0.17.5"
|
ring = "0.17.5"
|
||||||
rsa = "0.9"
|
rsa = "0.9"
|
||||||
|
@ -67,17 +67,17 @@ serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
sled = "0.34.7"
|
sled = "0.34.7"
|
||||||
streem = "0.2.0"
|
streem = "0.2.0"
|
||||||
teloxide = { version = "0.13.0", default-features = false, features = [
|
teloxide = { version = "0.12.0", default-features = false, features = [
|
||||||
"ctrlc_handler",
|
"ctrlc_handler",
|
||||||
"macros",
|
"macros",
|
||||||
"rustls",
|
"rustls",
|
||||||
] }
|
] }
|
||||||
thiserror = "2.0"
|
thiserror = "1.0"
|
||||||
time = { version = "0.3.17", features = ["serde"] }
|
time = { version = "0.3.17", features = ["serde"] }
|
||||||
tracing = "0.1"
|
tracing = "0.1"
|
||||||
tracing-error = "0.2"
|
tracing-error = "0.2"
|
||||||
tracing-log = "0.2"
|
tracing-log = "0.2"
|
||||||
tracing-opentelemetry = "0.28"
|
tracing-opentelemetry = "0.24"
|
||||||
tracing-subscriber = { version = "0.3", features = [
|
tracing-subscriber = { version = "0.3", features = [
|
||||||
"ansi",
|
"ansi",
|
||||||
"env-filter",
|
"env-filter",
|
||||||
|
@ -97,7 +97,7 @@ default-features = false
|
||||||
features = ["server", "ring"]
|
features = ["server", "ring"]
|
||||||
|
|
||||||
[dependencies.http-signature-normalization-reqwest]
|
[dependencies.http-signature-normalization-reqwest]
|
||||||
version = "0.13.0"
|
version = "0.12.0"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["middleware", "ring"]
|
features = ["middleware", "ring"]
|
||||||
|
|
||||||
|
|
8
flake.lock
generated
8
flake.lock
generated
|
@ -20,16 +20,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733550349,
|
"lastModified": 1719075281,
|
||||||
"narHash": "sha256-NcGumB4Lr6KSDq+nIqXtNA8QwAQKDSZT7N9OTGWbTrs=",
|
"narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e2605d0744c2417b09f8bf850dfca42fcf537d34",
|
"rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-24.11",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
description = "relay";
|
description = "relay";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage {
|
rustPlatform.buildRustPackage {
|
||||||
pname = "relay";
|
pname = "relay";
|
||||||
version = "0.3.116";
|
version = "0.3.115";
|
||||||
src = ./.;
|
src = ./.;
|
||||||
cargoLock.lockFile = ./Cargo.lock;
|
cargoLock.lockFile = ./Cargo.lock;
|
||||||
|
|
||||||
|
|
29
src/main.rs
29
src/main.rs
|
@ -12,7 +12,7 @@ use error::Error;
|
||||||
use http_signature_normalization_actix::middleware::VerifySignature;
|
use http_signature_normalization_actix::middleware::VerifySignature;
|
||||||
use metrics_exporter_prometheus::PrometheusBuilder;
|
use metrics_exporter_prometheus::PrometheusBuilder;
|
||||||
use metrics_util::layers::FanoutBuilder;
|
use metrics_util::layers::FanoutBuilder;
|
||||||
use opentelemetry::{trace::TracerProvider, KeyValue};
|
use opentelemetry::KeyValue;
|
||||||
use opentelemetry_otlp::WithExportConfig;
|
use opentelemetry_otlp::WithExportConfig;
|
||||||
use opentelemetry_sdk::Resource;
|
use opentelemetry_sdk::Resource;
|
||||||
use reqwest_middleware::ClientWithMiddleware;
|
use reqwest_middleware::ClientWithMiddleware;
|
||||||
|
@ -83,21 +83,22 @@ fn init_subscriber(
|
||||||
let subscriber = subscriber.with(console_layer);
|
let subscriber = subscriber.with(console_layer);
|
||||||
|
|
||||||
if let Some(url) = opentelemetry_url {
|
if let Some(url) = opentelemetry_url {
|
||||||
let exporter = opentelemetry_otlp::SpanExporter::builder()
|
let tracer = opentelemetry_otlp::new_pipeline()
|
||||||
.with_tonic()
|
.tracing()
|
||||||
.with_endpoint(url.as_str())
|
.with_trace_config(
|
||||||
.build()?;
|
opentelemetry_sdk::trace::config().with_resource(Resource::new(vec![
|
||||||
|
KeyValue::new("service.name", software_name),
|
||||||
let tracer_provider = opentelemetry_sdk::trace::TracerProvider::builder()
|
])),
|
||||||
.with_resource(Resource::new(vec![KeyValue::new(
|
)
|
||||||
"service.name",
|
.with_exporter(
|
||||||
software_name,
|
opentelemetry_otlp::new_exporter()
|
||||||
)]))
|
.tonic()
|
||||||
.with_batch_exporter(exporter, opentelemetry_sdk::runtime::Tokio)
|
.with_endpoint(url.as_str()),
|
||||||
.build();
|
)
|
||||||
|
.install_batch(opentelemetry_sdk::runtime::Tokio)?;
|
||||||
|
|
||||||
let otel_layer = tracing_opentelemetry::layer()
|
let otel_layer = tracing_opentelemetry::layer()
|
||||||
.with_tracer(tracer_provider.tracer(software_name))
|
.with_tracer(tracer)
|
||||||
.with_filter(targets);
|
.with_filter(targets);
|
||||||
|
|
||||||
let subscriber = subscriber.with(otel_layer);
|
let subscriber = subscriber.with(otel_layer);
|
||||||
|
|
|
@ -75,8 +75,7 @@ pub(crate) fn start(admin_handle: String, db: Db, token: &str) {
|
||||||
|
|
||||||
fn is_admin(admin_handle: &str, message: &Message) -> bool {
|
fn is_admin(admin_handle: &str, message: &Message) -> bool {
|
||||||
message
|
message
|
||||||
.from
|
.from()
|
||||||
.as_ref()
|
|
||||||
.and_then(|user| user.username.as_deref())
|
.and_then(|user| user.username.as_deref())
|
||||||
.map(|username| username == admin_handle)
|
.map(|username| username == admin_handle)
|
||||||
.unwrap_or(false)
|
.unwrap_or(false)
|
||||||
|
|
Loading…
Add table
Reference in a new issue