Every per-network limit counted by the connection's address, which behind Caddy is Caddy's for everyone: new anonymous accounts, codes by mail and password sign-ins were each limited for the whole instance. `networkOf` (now `common/network.dart`) takes the last address of X-Forwarded-For, the one the proxy saw itself, for a connection from a proxy the operator trusts (`TRUSTED_PROXIES`, which deploy/compose.yaml sets to Caddy's fixed address); otherwise, or where that is no address, the connection's. Never the Forwarded header, which Caddy passes on as sent, so never Serverpod's `remoteInfo`. A value that isn't addresses stops the server as it starts. Serverpod's own limit on anonymous accounts counts by the connection's address too and can't be told otherwise, so it is off; the anonymous endpoint counts them itself, 30 an hour per network as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
71 lines
2.4 KiB
Dart
71 lines
2.4 KiB
Dart
/// halkyon_base for a host's own code: its configuration
|
|
/// (`HalkyonBase.configure`), how people authenticate, the account's
|
|
/// deletion and the pruning, email sign-in's helpers, the instance's
|
|
/// basics, people's public profiles and their pages, the instance's register
|
|
/// (ADR 0016), signing in with a password and TOTP and getting back into an
|
|
/// account (ADR 0017), and the module's models.
|
|
library;
|
|
|
|
export 'src/auth/account.dart';
|
|
export 'src/auth/auth_config.dart';
|
|
export 'src/auth/code_mail.dart';
|
|
export 'src/auth/email.dart';
|
|
export 'src/auth/github.dart';
|
|
export 'src/auth/github_sign_in_endpoint.dart' show gitHubAccountToSignIn;
|
|
export 'src/auth/identified.dart';
|
|
export 'src/auth/scopes.dart';
|
|
export 'src/common/network.dart';
|
|
export 'src/common/short_code.dart';
|
|
export 'src/generated/protocol.dart' hide Protocol;
|
|
export 'src/halkyon_base.dart';
|
|
export 'src/instance/data_location.dart';
|
|
export 'src/instance/source_code.dart';
|
|
export 'src/password/authenticators.dart'
|
|
show
|
|
forgetUnconfirmedAuthenticators,
|
|
maxAuthenticators,
|
|
unconfirmedAuthenticatorLifetime;
|
|
export 'src/password/key_proof.dart' show keyProofMessage;
|
|
export 'src/password/password_config.dart';
|
|
export 'src/password/passwords.dart'
|
|
show
|
|
newPasswordCosts,
|
|
passwordGroup,
|
|
passwordMethod,
|
|
resetDelay,
|
|
signInChallengeLifetime,
|
|
signsInWithPassword,
|
|
wrappedKeysLength;
|
|
export 'src/profile/link_verification.dart';
|
|
export 'src/profile/profile_page.dart' show addProfilePageRoute, profilePage;
|
|
export 'src/profile/profile_rules.dart'
|
|
show
|
|
accountDomain,
|
|
avatarPath,
|
|
avatarStorage,
|
|
isHandle,
|
|
maxAvatarBytes,
|
|
operatorAccountDomain,
|
|
profilePageUrl,
|
|
reservedHandles;
|
|
export 'src/profile/profiles.dart';
|
|
export 'src/register/account_register.dart';
|
|
export 'src/register/accounts_mode.dart';
|
|
export 'src/register/deletion_notices.dart'
|
|
show MemberNotifier, deliverDeletionNotices;
|
|
export 'src/register/instance_routes.dart';
|
|
export 'src/register/member_pruning.dart';
|
|
export 'src/register/people.dart' show issueSession;
|
|
export 'src/srp/srp_group.dart';
|
|
export 'src/srp/srp_server.dart'
|
|
show
|
|
SrpAccepted,
|
|
SrpChallenge,
|
|
SrpRefusal,
|
|
SrpRefused,
|
|
SrpVerification,
|
|
srpChallenge,
|
|
srpVerify;
|
|
export 'src/totp/base32.dart';
|
|
export 'src/totp/recovery_codes.dart';
|
|
export 'src/totp/totp.dart';
|