syntax = "proto3"; package chatto.api.v1; import "chatto/api/v1/common.proto"; // Public server profile, identity, and branding fields. message ServerPublicProfile { // Display name of the Chatto server. string name = 1; // Server software version. string version = 2; // Optional server logo URL. optional string logo_url = 3; // Optional server banner URL. optional string banner_url = 4; // Optional welcome message. optional string welcome_message = 5; // Optional server description. optional string description = 6; } // Policy controlling whether self-service account creation requires an invitation. enum AccountCreationPolicy { // Compatibility value used by older servers. Clients treat it as open. ACCOUNT_CREATION_POLICY_UNSPECIFIED = 0; // Self-service account creation does not require an invitation. ACCOUNT_CREATION_POLICY_OPEN = 1; // Every self-service account creation path requires a valid invitation. ACCOUNT_CREATION_POLICY_INVITE_ONLY = 2; } // Login and registration options exposed before authentication. message ServerLogin { // Whether users can create accounts through the public UI. bool direct_registration_enabled = 1; // Configured login providers. repeated ProviderMetadata providers = 2; // URL for the legacy authorization flow, when enabled. string authorize_url = 3; // Admission policy for direct registration and provider auto-provisioning. AccountCreationPolicy account_creation_policy = 4; // Whether users can sign in directly with a username or email address and password. // Absent on older servers, where clients should treat direct login as enabled. optional bool direct_login_enabled = 5; }