Publish ITWorx Pulse source
Public source validation / validate (push) Failing after 3m8s

This commit is contained in:
ITWorx Pulse release export
2026-09-03 02:09:19 +02:00
commit bd774932d5
614 changed files with 77116 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
package agentprotocol
import (
"errors"
"strings"
"time"
)
const Version = "v1"
type Capability struct {
ID string `json:"id"`
Version string `json:"version"`
ReadOnly bool `json:"readOnly"`
}
type Hello struct {
Protocol string `json:"protocol"`
AgentID string `json:"agentId"`
ObservedAt time.Time `json:"observedAt"`
Capabilities []Capability `json:"capabilities"`
}
func (h Hello) Validate(now time.Time) error {
if h.Protocol != Version {
return errors.New("unsupported agent protocol")
}
if strings.TrimSpace(h.AgentID) == "" || len(h.AgentID) > 120 {
return errors.New("invalid agent id")
}
if h.ObservedAt.IsZero() || h.ObservedAt.After(now.Add(time.Minute)) {
return errors.New("invalid agent observation time")
}
if len(h.Capabilities) > 50 {
return errors.New("too many agent capabilities")
}
for _, capability := range h.Capabilities {
if strings.TrimSpace(capability.ID) == "" || capability.Version == "" || !capability.ReadOnly {
return errors.New("agent capability must be explicit and read-only")
}
}
return nil
}