| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- syntax = "proto3";
- package chatto.api.v1;
- import "buf/validate/validate.proto";
- import "chatto/api/v1/common.proto";
- // Public metadata for a configured external login provider.
- message ExternalIdentityProvider {
- reserved 1 to 4;
- reserved "id", "type", "label", "login_url";
- // URL that starts authenticated account linking for this provider. Clients
- // should use StartExternalIdentityLink instead of navigating here directly.
- string link_url = 5;
- // True when this provider is already linked to the authenticated user.
- bool linked = 6;
- // Linked identity subject hash for this provider, when linked.
- string linked_identity_subject_hash = 7;
- // Shared provider metadata.
- ProviderMetadata provider = 8;
- }
- // Linked provider identity metadata for the authenticated user's settings UI.
- message LinkedExternalIdentity {
- // Provider ID recorded when the identity was linked.
- string provider_id = 1;
- // Provider type recorded when the identity was linked.
- string provider_type = 2;
- // Current or fallback provider label.
- string provider_label = 3;
- // Stable one-way subject hash, useful only as a UI/list key.
- string subject_hash = 4;
- }
- // Request to list configured and linked external identities for the current user.
- message ListExternalIdentitiesRequest {}
- // Finite snapshot of configured providers and linked external identities.
- message ListExternalIdentitiesResponse {
- // Configured providers the user may link.
- repeated ExternalIdentityProvider providers = 1;
- // Provider identities already linked to the authenticated user.
- repeated LinkedExternalIdentity linked_identities = 2;
- }
- // Request to start linking a configured provider to the current user.
- message StartExternalIdentityLinkRequest {
- // Provider ID to link.
- string provider_id = 1 [(buf.validate.field).string.min_len = 1];
- // Internal path to return to after confirmation.
- string redirect_path = 2;
- // Current password proof for accounts with a password when the active
- // runtime credential is no longer fresh.
- string current_password = 3;
- }
- // Result of preparing an external identity link flow.
- message StartExternalIdentityLinkResponse {
- // Browser URL that starts provider authorization on the target server origin.
- string start_url = 1;
- }
- // Request to disconnect a linked provider identity from the authenticated user.
- message DisconnectExternalIdentityRequest {
- // Stable one-way subject hash of the linked identity to disconnect.
- string subject_hash = 1 [(buf.validate.field).string.min_len = 1];
- // Current password proof for accounts with a password when the active
- // runtime credential is no longer fresh.
- string current_password = 2;
- }
- // Result of disconnecting a provider identity.
- message DisconnectExternalIdentityResponse {
- reserved 1;
- reserved "disconnected";
- }
|