summaryrefslogtreecommitdiff
path: root/internal/models/types.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/models/types.go')
-rw-r--r--internal/models/types.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/internal/models/types.go b/internal/models/types.go
index 4bf8462..5214bf8 100644
--- a/internal/models/types.go
+++ b/internal/models/types.go
@@ -146,3 +146,54 @@ type DashboardData struct {
LastUpdated time.Time `json:"last_updated"`
Errors []string `json:"errors,omitempty"`
}
+
+// Agent represents a registered external agent
+type Agent struct {
+ ID int64 `json:"id"`
+ Name string `json:"name"`
+ AgentID string `json:"agent_id"` // UUID from agent
+ CreatedAt time.Time `json:"created_at"`
+ LastSeen *time.Time `json:"last_seen,omitempty"`
+ Trusted bool `json:"trusted"`
+}
+
+// AgentSession represents a pending request or active session
+type AgentSession struct {
+ ID int64 `json:"id"`
+ RequestToken string `json:"request_token"`
+ AgentName string `json:"agent_name"`
+ AgentID string `json:"agent_id"`
+ Status string `json:"status"` // pending, approved, denied, expired
+ CreatedAt time.Time `json:"created_at"`
+ ExpiresAt time.Time `json:"expires_at"`
+ SessionToken string `json:"session_token,omitempty"`
+ SessionExpiresAt *time.Time `json:"session_expires_at,omitempty"`
+}
+
+// AgentAuthRequest is the request body for agent auth
+type AgentAuthRequest struct {
+ Name string `json:"name"`
+ AgentID string `json:"agent_id"`
+}
+
+// AgentAuthResponse is the response for auth request
+type AgentAuthResponse struct {
+ RequestToken string `json:"request_token"`
+ Status string `json:"status"`
+}
+
+// AgentPollResponse is the response for poll endpoint
+type AgentPollResponse struct {
+ Status string `json:"status"`
+ SessionToken string `json:"session_token,omitempty"`
+ ExpiresAt *time.Time `json:"expires_at,omitempty"`
+}
+
+// AgentTrustLevel indicates the trust state of an agent
+type AgentTrustLevel string
+
+const (
+ AgentTrustNew AgentTrustLevel = "new"
+ AgentTrustRecognized AgentTrustLevel = "recognized"
+ AgentTrustSuspicious AgentTrustLevel = "suspicious"
+)