feat(oidc): let clients label their login button with the provider name

Merged
D3
3d ago
+57-11

The OpenTubeX app can now sign in through a sync server's OIDC provider (OpenTubeX#2362). The app finds out about OIDC from GET /meta, but /meta only says that OIDC is set up, not which provider, so the app can only offer a generic "Log in with single sign-on" button.

This adds an optional display_name to the [oidc] config (OIDC__DISPLAY_NAME as an environment variable). GET /meta reports it as oidc_display_name, trimmed, and leaves it out when unset or blank, so the app can show "Log in with Authelia". The README and config.dev.toml now also name opentubex://oidc, the redirect URL operators have to allow for the OpenTubeX apps.

Proof: cargo test (new tests for the trimmed or missing name and for reading OIDC__DISPLAY_NAME from the environment), cargo fmt --check and cargo clippy. I also ran this branch locally with a mock OIDC provider and signed in from the OpenTubeX Android app on an emulator, which showed the configured name.

Changes made by Claude Opus 5.5 in Claude Code (T3 Code).