Files
charybdis/proto/core/user.proto
T
2026-05-12 17:06:43 +02:00

50 lines
1.3 KiB
Protocol Buffer

syntax = "proto3";
package charybdis.core;
import "core/common.proto";
// UserMetadata represents identifying information for a user entity
// A user represents a person in the organization
message UserMetadata {
// Required: The username (e.g., "jdoe", "john.doe")
string name = 1;
// Optional: Namespace for organizational grouping (default: "default")
string namespace = 2;
// Optional: Full name or description
string description = 3;
// Optional: Labels for categorization and filtering
// Key-value pairs (e.g., "department": "engineering", "location": "SF")
map<string, string> labels = 4;
// Optional: Tags for additional classification
repeated string tags = 5;
// Optional: Links to external resources (e.g., GitHub profile, LinkedIn)
repeated Link links = 6;
}
// UserSpec represents configuration for a user entity
message UserSpec {
// Optional: User profile information
UserProfile profile = 1;
// Optional: Groups this user is a member of (references Group entities)
repeated string member_of = 2;
}
// UserProfile contains detailed profile information
message UserProfile {
// Display name (e.g., "John Doe")
string display_name = 1;
// Email address
string email = 2;
// Avatar/picture URL
string picture = 3;
}