veza/proto/common/auth.proto
senke 73d6cb2bee refactor(infra): centralize protobuf definitions in shared proto/ directory
CLN-07: Copied .proto sources from chat-server and stream-server
to proto/{common,chat,stream}/. Original copies remain until builds
are updated to use the shared directory.
2026-02-22 17:45:11 +01:00

89 lines
1.8 KiB
Protocol Buffer

syntax = "proto3";
package veza.common.auth;
option go_package = "veza-backend-api/proto/common/auth";
// Service d'authentification partagé
service AuthService {
// Valider un JWT token
rpc ValidateToken(ValidateTokenRequest) returns (ValidateTokenResponse);
// Obtenir les informations utilisateur
rpc GetUserInfo(GetUserInfoRequest) returns (GetUserInfoResponse);
// Vérifier les permissions
rpc CheckPermissions(CheckPermissionsRequest) returns (CheckPermissionsResponse);
// Révoquer un token
rpc RevokeToken(RevokeTokenRequest) returns (RevokeTokenResponse);
}
// Messages de requête/réponse
message ValidateTokenRequest {
string token = 1;
string service = 2; // service qui fait la demande (chat, stream)
}
message ValidateTokenResponse {
bool valid = 1;
UserClaims user = 2;
string error = 3;
}
message GetUserInfoRequest {
int64 user_id = 1;
string token = 2;
}
message GetUserInfoResponse {
UserInfo user = 1;
string error = 2;
}
message CheckPermissionsRequest {
int64 user_id = 1;
string resource = 2; // "chat.room", "stream.channel"
string action = 3; // "read", "write", "moderate"
string resource_id = 4;
}
message CheckPermissionsResponse {
bool allowed = 1;
repeated string permissions = 2;
string error = 3;
}
message RevokeTokenRequest {
string token = 1;
string reason = 2;
}
message RevokeTokenResponse {
bool success = 1;
string error = 2;
}
// Types de données
message UserClaims {
int64 user_id = 1;
string username = 2;
string email = 3;
string role = 4;
bool is_active = 5;
int64 issued_at = 6;
int64 expires_at = 7;
}
message UserInfo {
int64 id = 1;
string username = 2;
string email = 3;
string first_name = 4;
string last_name = 5;
string role = 6;
bool is_active = 7;
bool is_verified = 8;
int64 created_at = 9;
int64 last_login_at = 10;
}