Remove legacy client-manager platform path

This commit is contained in:
npc0-hue
2026-09-03 16:40:05 +08:00
parent ec2462a312
commit 80cddbf19d
51 changed files with 382 additions and 4271 deletions
+2 -114
View File
@@ -2,7 +2,6 @@ package validator
import (
"fmt"
"net/url"
"strings"
"browser.local/platform/domain"
@@ -57,9 +56,6 @@ func ValidateEncryptedComponentKey(key domain.EncryptedComponentKey) error {
if !validDistributionComponentKind(key.ComponentKind) {
violations = append(violations, "componentKind is invalid")
}
if key.ComponentKind == domain.DistributionComponentClientManager && strings.TrimSpace(key.ComponentKey) == "" {
violations = append(violations, "componentKey is required for client-manager keys")
}
if key.ComponentKey != "" && !validDistributionLogicalKey(key.ComponentKey) {
violations = append(violations, "componentKey is invalid")
}
@@ -125,44 +121,6 @@ func ValidateRunDistribution(distribution domain.RunDistribution) error {
return finish(violations)
}
func ValidateClientManagerDistribution(distribution domain.ClientManagerDistribution) error {
var violations []string
violations = appendRequired(violations, "id", distribution.ID)
violations = appendRequired(violations, "serverInstanceId", distribution.ServerInstanceID)
violations = appendRequired(violations, "pluginId", distribution.PluginID)
violations = appendRequired(violations, "profileKey", distribution.ProfileKey)
violations = appendRequired(violations, "repositoryUrl", distribution.RepositoryURL)
violations = appendRequired(violations, "sourceRevision", distribution.SourceRevision)
violations = appendRequired(violations, "buildJobId", distribution.BuildJobID)
violations = appendRequired(violations, "artifactId", distribution.ArtifactID)
violations = appendRequired(violations, "secretRef", distribution.SecretRef)
violations = appendDistributionTargetViolations(violations, distribution.TargetOS, distribution.TargetArch)
violations = appendDistributionStatusViolations(violations, distribution.Status)
if !validDistributionLogicalKey(distribution.ProfileKey) {
violations = append(violations, "profileKey is invalid")
}
if distribution.Checksum != "" && !validSHA256Checksum(distribution.Checksum) {
violations = append(violations, "checksum must be sha256:<hex>")
}
if distribution.Status == domain.DistributionStatusAvailable && distribution.Checksum == "" {
violations = append(violations, "checksum is required when distribution is available")
}
if distribution.KeyGeneration <= 0 {
violations = append(violations, "keyGeneration must be positive")
}
violations = append(violations, validateRepositoryURL("repositoryUrl", distribution.RepositoryURL)...)
if !strings.HasPrefix(distribution.SecretRef, "secret://runtime-keys/") {
violations = append(violations, "secretRef must be redacted runtime key ref")
}
if distribution.CreatedAt.IsZero() {
violations = append(violations, "createdAt is required")
}
if distribution.UpdatedAt.IsZero() {
violations = append(violations, "updatedAt is required")
}
return finish(violations)
}
func ValidateDependencyStatus(status domain.DependencyStatus) error {
var violations []string
violations = appendRequired(violations, "id", status.ID)
@@ -205,40 +163,6 @@ func ValidateDependencyStatus(status domain.DependencyStatus) error {
return finish(violations)
}
func ValidateClientManagerBuildJob(job domain.ClientManagerBuildJob) error {
var violations []string
violations = appendRequired(violations, "id", job.ID)
violations = appendRequired(violations, "serverInstanceId", job.ServerInstanceID)
violations = appendRequired(violations, "pluginId", job.PluginID)
violations = appendRequired(violations, "profileKey", job.ProfileKey)
violations = appendRequired(violations, "repositoryUrl", job.RepositoryURL)
violations = appendRequired(violations, "sourceRevision", job.SourceRevision)
violations = appendDistributionTargetViolations(violations, job.TargetOS, job.TargetArch)
if !validDistributionLogicalKey(job.ProfileKey) {
violations = append(violations, "profileKey is invalid")
}
if job.Checksum != "" && !validSHA256Checksum(job.Checksum) {
violations = append(violations, "checksum must be sha256:<hex>")
}
if job.LogsRef != "" && !validScopedInputRef(job.LogsRef) {
violations = append(violations, "logsRef is not allowed")
}
if job.KeyGeneration < 0 {
violations = append(violations, "keyGeneration must not be negative")
}
if !validDistributionJobStatus(job.Status) {
violations = append(violations, "status is invalid")
}
violations = append(violations, validateRepositoryURL("repositoryUrl", job.RepositoryURL)...)
if job.CreatedAt.IsZero() {
violations = append(violations, "createdAt is required")
}
if job.UpdatedAt.IsZero() {
violations = append(violations, "updatedAt is required")
}
return finish(violations)
}
func ValidateRunUpdateJob(job domain.RunUpdateJob) error {
var violations []string
violations = appendRequired(violations, "id", job.ID)
@@ -297,28 +221,6 @@ func ValidateRunDistributionGenerateRequest(request domain.RunDistributionGenera
return finish(violations)
}
func ValidateClientManagerBuildRequest(request domain.ClientManagerBuildRequest) error {
var violations []string
violations = appendRequired(violations, "serverInstanceId", request.ServerInstanceID)
violations = appendRequired(violations, "profileKey", request.ProfileKey)
violations = appendRequired(violations, "targetOs", request.TargetOS)
violations = appendRequired(violations, "targetArch", request.TargetArch)
violations = appendRequired(violations, "repositoryUrl", request.RepositoryURL)
violations = appendRequired(violations, "idempotencyKey", request.IdempotencyKey)
violations = appendDistributionTargetViolations(violations, request.TargetOS, request.TargetArch)
if !validDistributionLogicalKey(request.ProfileKey) {
violations = append(violations, "profileKey is invalid")
}
if request.SourceRevision != "" && !validDistributionLogicalKey(request.SourceRevision) {
violations = append(violations, "sourceRevision is invalid")
}
if containsUnsafeRuntimeSecret(request.IdempotencyKey) || looksLikeRawHostPath(request.IdempotencyKey) {
violations = append(violations, "idempotencyKey is unsafe")
}
violations = append(violations, validateRepositoryURL("repositoryUrl", request.RepositoryURL)...)
return finish(violations)
}
func ValidateComponentKeyResetRequest(request domain.ComponentKeyResetRequest) error {
var violations []string
violations = appendRequired(violations, "serverInstanceId", request.ServerInstanceID)
@@ -341,8 +243,8 @@ func ValidateComponentAuthenticationRequest(request domain.ComponentAuthenticati
if !validDistributionComponentKind(request.ComponentKind) {
violations = append(violations, "componentKind is invalid")
}
if request.ComponentKind == domain.DistributionComponentClientManager && strings.TrimSpace(request.ComponentKey) == "" {
violations = append(violations, "componentKey is required for client-manager")
if request.ComponentKind != domain.DistributionComponentRun {
violations = append(violations, "componentKind must be run")
}
if request.ComponentKey != "" && !validDistributionLogicalKey(request.ComponentKey) {
violations = append(violations, "componentKey is invalid")
@@ -373,20 +275,6 @@ func appendDistributionStatusViolations(violations []string, status domain.Distr
return violations
}
func validateRepositoryURL(field string, value string) []string {
if strings.TrimSpace(value) == "" {
return nil
}
parsed, err := url.ParseRequestURI(strings.TrimSpace(value))
if err != nil || parsed.Scheme != "https" || parsed.Host == "" || parsed.User != nil || parsed.RawQuery != "" || parsed.Fragment != "" || !strings.HasSuffix(parsed.Path, ".git") {
return []string{field + " must be an HTTPS git repository URL"}
}
for _, reason := range unsafePluginStringReasons(value) {
return []string{field + ": " + reason}
}
return nil
}
func validDistributionComponentKind(kind domain.DistributionComponentKind) bool {
switch kind {
case domain.DistributionComponentRun: