package platform import "context" type Principal struct { Name string `json:"name"` Role string `json:"role"` } type principalContextKey struct{} func WithPrincipal(ctx context.Context, principal Principal) context.Context { return context.WithValue(ctx, principalContextKey{}, principal) } func PrincipalFromContext(ctx context.Context) (Principal, bool) { principal, ok := ctx.Value(principalContextKey{}).(Principal) return principal, ok } func ActorFromContext(ctx context.Context) string { if principal, ok := PrincipalFromContext(ctx); ok && principal.Name != "" { return principal.Name } return "system" }