most certainly a improvement but almost certainly going to have some errors
+210
-3
Cargo.lock
+4
Cargo.toml
+1
crates/tranquil-auth/Cargo.toml
+6
-2
crates/tranquil-auth/src/token.rs
+1
crates/tranquil-cache/Cargo.toml
+6
-4
crates/tranquil-cache/src/lib.rs
+2
crates/tranquil-comms/Cargo.toml
+12
-10
crates/tranquil-comms/src/sender.rs
+9
crates/tranquil-config/Cargo.toml
+958
crates/tranquil-config/src/lib.rs
+2
crates/tranquil-infra/Cargo.toml
+4
-6
crates/tranquil-infra/src/lib.rs
+2
crates/tranquil-pds/Cargo.toml
+1
-2
crates/tranquil-pds/src/api/admin/account/email.rs
+1
-2
crates/tranquil-pds/src/api/admin/account/update.rs
+8
-6
crates/tranquil-pds/src/api/delegation.rs
+2
-2
crates/tranquil-pds/src/api/discord_webhook.rs
+22
-15
crates/tranquil-pds/src/api/identity/account.rs
+10
-10
crates/tranquil-pds/src/api/identity/did.rs
+1
-2
crates/tranquil-pds/src/api/identity/plc/request.rs
+6
-4
crates/tranquil-pds/src/api/identity/plc/submit.rs
+3
-2
crates/tranquil-pds/src/api/moderation/mod.rs
+2
-3
crates/tranquil-pds/src/api/notification_prefs.rs
+1
-1
crates/tranquil-pds/src/api/proxy.rs
+1
-1
crates/tranquil-pds/src/api/proxy_client.rs
+2
-2
crates/tranquil-pds/src/api/repo/blob.rs
+5
-16
crates/tranquil-pds/src/api/repo/import.rs
+1
-2
crates/tranquil-pds/src/api/repo/meta.rs
+2
-3
crates/tranquil-pds/src/api/repo/record/read.rs
+3
-4
crates/tranquil-pds/src/api/server/account_status.rs
+3
-4
crates/tranquil-pds/src/api/server/email.rs
+1
-2
crates/tranquil-pds/src/api/server/invite.rs
+13
-15
crates/tranquil-pds/src/api/server/meta.rs
+1
-2
crates/tranquil-pds/src/api/server/migration.rs
+16
-12
crates/tranquil-pds/src/api/server/passkey_account.rs
+2
-3
crates/tranquil-pds/src/api/server/password.rs
+9
-10
crates/tranquil-pds/src/api/server/session.rs
+1
-2
crates/tranquil-pds/src/api/server/totp.rs
+1
-2
crates/tranquil-pds/src/api/server/verify_email.rs
+2
-3
crates/tranquil-pds/src/api/server/verify_token.rs
+4
-5
crates/tranquil-pds/src/api/telegram_webhook.rs
+3
-6
crates/tranquil-pds/src/appview/mod.rs
+2
-4
crates/tranquil-pds/src/auth/service.rs
+1
-7
crates/tranquil-pds/src/auth/verification_token.rs
+3
-8
crates/tranquil-pds/src/comms/service.rs
+4
-48
crates/tranquil-pds/src/config.rs
+3
-8
crates/tranquil-pds/src/crawlers.rs
+2
-4
crates/tranquil-pds/src/handle/mod.rs
+3
-1
crates/tranquil-pds/src/lib.rs
+80
-17
crates/tranquil-pds/src/main.rs
+1
-8
crates/tranquil-pds/src/moderation/mod.rs
+2
-3
crates/tranquil-pds/src/oauth/endpoints/metadata.rs
+2
-3
crates/tranquil-pds/src/oauth/endpoints/token/grants.rs
+1
-2
crates/tranquil-pds/src/oauth/endpoints/token/helpers.rs
+1
-2
crates/tranquil-pds/src/oauth/endpoints/token/introspect.rs
+4
-12
crates/tranquil-pds/src/plc/mod.rs
+2
-6
crates/tranquil-pds/src/scheduled.rs
+87
-73
crates/tranquil-pds/src/sso/config.rs
+16
-12
crates/tranquil-pds/src/sso/endpoints.rs
+9
-22
crates/tranquil-pds/src/state.rs
+2
-8
crates/tranquil-pds/src/sync/subscribe_repos.rs
+1
-2
crates/tranquil-pds/src/sync/verify.rs
+5
-31
crates/tranquil-pds/src/util.rs
+1
crates/tranquil-ripple/Cargo.toml
+21
-40
crates/tranquil-ripple/src/config.rs
+1
crates/tranquil-storage/Cargo.toml
+33
-23
crates/tranquil-storage/src/lib.rs
+1
docker-compose.prod.yaml
+1
docker-compose.yaml
+12
-18
docs/install-containers.md
+9
-5
docs/install-debian.md
+2
-1
docs/install-kubernetes.md
+269
example.toml
History
4 rounds
2 comments
1 commit
expand
collapse
expand 0 comments
1 commit
expand
collapse
expand 0 comments
1 commit
expand
collapse
expand 1 comment
1 commit
expand
collapse
expand 1 comment
overall looks really good! i only really have some nitpicks about naming and default values.
server.service_handle_domains should be server.user_handle_domains imo. i never quite liked the "service handle domain" name. its confusing imo. and describeServer calls them user domains so i think we should align with that
server.enable_self_hosted_did_web makes it sound like its the opposite of what it is. should be server.enable_pds_hosted_did_web instead. also imo we should default this to false? given the consequences of having this enabled it should be opt-in imo
server.invite_code_required should probably default to true? thats what ref impl does and i think thats sensible
crawlers.urls should be firehose.crawlers imo. i think it makes sense to keep it with the rest of the sync related config (or have a layer of nesting more and have sync.crawlers and sync.firehose. sounds messy tho)
all of ripple.* should probably go under cache.ripple.* (as well as add a cache.backend option) since ripple is an in-house in-process replacement for valkey
also perhaps make it clear in the docs that you can set config options with env vars too? + the config cli flag and env var
idk how i feel about the config static being a OnceLock and not a LazyLock and all the panicing with init() and get(). but i understand getting it to work with a LazyLock is annoying due to the fallibility of config loading. probably going to explore how to handle that in the future. not going to block this PR on that
oookay finally got a chance to try this out and noticed some usability mehs
the blob storage paths and the backup storage paths should have default values. doesnt make much sense to me to not have that.
validate should probably have a --ignore-secrets flag or similar? since most people will probably want to set the secrets in an env file and not in the config file. necessary for the nix module too if we want that to validate the config during build
anywhere possible errors from trying to load the config are printed to the user should also have some more handling to actually print the error properly. as https://github.com/LukasKalbertodt/confique/blob/main/src/error.rs#L9 mentions just printing it doesnt actually do that which ends up giving very cryptic and non-specific messages to the user just saying loading the config failed without giving proper reasons why. just doing e:# seemed fine for now for me locally. in the future we'll probably want to walk the sources properly but it can wait