platformclient

package
v0.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAgentNotFound    = errors.New("agent not found")
	ErrTeamNotFound     = errors.New("team not found")
	ErrAgentNameTaken   = errors.New("agent name already exists in team")
	ErrInvalidAgentName = errors.New("invalid agent name")
)
View Source
var ErrNotConfigured = errors.New("platform identity client not configured")

ErrNotConfigured is returned when platform identity is unavailable.

Functions

This section is empty.

Types

type APIKeySummary

type APIKeySummary struct {
	ID        string     `json:"id"`
	Name      string     `json:"name"`
	Prefix    string     `json:"prefix"`
	CreatedAt time.Time  `json:"created_at"`
	Revoked   bool       `json:"revoked"`
	RevokedAt *time.Time `json:"revoked_at,omitempty"`
}

APIKeySummary is the non-secret metadata for a user API key.

type Agent

type Agent = internalapi.Agent

type AgentPage

type AgentPage = internalapi.AgentPage

type AuditEvent

type AuditEvent = internalapi.AuditEvent

AuditEvent is the write-side platform audit envelope.

type AuditLog

type AuditLog struct {
	ID               int64     `json:"id"`
	UserID           string    `json:"user_id,omitempty"`
	Email            string    `json:"email,omitempty"`
	Action           string    `json:"action"`
	Resource         string    `json:"resource"`
	Namespace        string    `json:"namespace,omitempty"`
	Status           string    `json:"status"`
	Message          string    `json:"message,omitempty"`
	ActorIP          string    `json:"actor_ip,omitempty"`
	RequestID        string    `json:"request_id,omitempty"`
	Source           string    `json:"source,omitempty"`
	AuthIdentity     string    `json:"auth_identity,omitempty"`
	ImageRef         string    `json:"image_ref,omitempty"`
	ServerName       string    `json:"server_name,omitempty"`
	DeploymentTarget string    `json:"deployment_target,omitempty"`
	CreatedAt        time.Time `json:"created_at"`
}

AuditLog is the read-side platform audit record.

type Client

type Client struct {
	BaseURL string
	Token   string
	HTTP    *http.Client
}

Client calls platform-api internal identity and audit endpoints.

func (*Client) Configured

func (c *Client) Configured() bool

Configured reports whether the client can reach platform-api.

func (*Client) CreateAgent

func (c *Client) CreateAgent(ctx context.Context, teamSlug, name, createdBy string) (Agent, error)

func (*Client) CreatePasswordUser

func (c *Client) CreatePasswordUser(ctx context.Context, email, password, role string) (User, error)

func (*Client) CreateTeam

func (c *Client) CreateTeam(ctx context.Context, slug, name, createdByUserID string) (Team, error)

func (*Client) CreateTeamUser

func (c *Client) CreateTeamUser(ctx context.Context, teamSlug, email, password, role string) (User, TeamMembership, error)

func (*Client) DeleteTeamBySlug

func (c *Client) DeleteTeamBySlug(ctx context.Context, slug string) error

func (*Client) DeleteTeamMembership

func (c *Client) DeleteTeamMembership(ctx context.Context, teamSlug, userID string) error

func (*Client) GetAgent

func (c *Client) GetAgent(ctx context.Context, id string) (Agent, bool, error)

func (*Client) GetNamespace

func (c *Client) GetNamespace(ctx context.Context, namespace string) (map[string]any, bool, error)

func (*Client) GetTeamBySlug

func (c *Client) GetTeamBySlug(ctx context.Context, slug string) (Team, bool, error)

func (*Client) ListAgents

func (c *Client) ListAgents(ctx context.Context, teamSlug, statusFilter, q, cursor string, limit int) (AgentPage, error)

func (*Client) ListNamespaces

func (c *Client) ListNamespaces(ctx context.Context) ([]map[string]any, error)

func (*Client) ListTeamMemberships

func (c *Client) ListTeamMemberships(ctx context.Context, teamSlug string) ([]TeamMembership, error)

func (*Client) ListTeams

func (c *Client) ListTeams(ctx context.Context) ([]Team, error)

func (*Client) OperationsSnapshot

func (c *Client) OperationsSnapshot(ctx context.Context, filter OperationsFilter) (OperationsSnapshot, error)

OperationsSnapshot loads user, audit, and image activity for admin operations.

func (*Client) PrincipalForUserID

func (c *Client) PrincipalForUserID(ctx context.Context, userID string) (platformauth.Principal, error)

func (*Client) RenameAgent

func (c *Client) RenameAgent(ctx context.Context, id, name string) (Agent, error)

func (*Client) SetAgentStatus

func (c *Client) SetAgentStatus(ctx context.Context, id, statusName, actorID string) (Agent, error)

func (*Client) UpsertTeamMembership

func (c *Client) UpsertTeamMembership(ctx context.Context, teamSlug, userID, role string) (TeamMembership, error)

func (*Client) WriteAudit

func (c *Client) WriteAudit(ctx context.Context, event AuditEvent)

WriteAudit posts an audit event to platform-api.

type ImageActivity

type ImageActivity struct {
	UserID           string    `json:"user_id,omitempty"`
	Email            string    `json:"email,omitempty"`
	Namespace        string    `json:"namespace,omitempty"`
	ImageRef         string    `json:"image_ref"`
	SourceImage      string    `json:"source_image,omitempty"`
	ServerName       string    `json:"server_name,omitempty"`
	DeploymentTarget string    `json:"deployment_target,omitempty"`
	Action           string    `json:"action"`
	Status           string    `json:"status"`
	Source           string    `json:"source,omitempty"`
	CreatedAt        time.Time `json:"created_at"`
}

ImageActivity describes image publish or deploy-related audit entries.

type OperationsFilter

type OperationsFilter struct {
	User       string
	UserSearch string
	Since      time.Time
	Until      time.Time
	Limit      int
}

OperationsFilter constrains platform operations and activity queries.

type OperationsFilterResponse

type OperationsFilterResponse struct {
	User  string `json:"user,omitempty"`
	Since string `json:"since,omitempty"`
	Until string `json:"until,omitempty"`
	Limit int    `json:"limit"`
}

OperationsFilterResponse is the API echo of an operations filter.

type OperationsSnapshot

type OperationsSnapshot struct {
	Users     []UserActivity  `json:"users"`
	AuditLogs []AuditLog      `json:"audit_logs"`
	Images    []ImageActivity `json:"images"`
}

OperationsSnapshot is the platform activity bundle for admin operations.

type Team

type Team = internalapi.Team

Team is a managed platform team and its Kubernetes namespace.

type TeamMembership

type TeamMembership = platform.TeamMembership

TeamMembership is the platform team membership API contract.

type User

type User = internalapi.User

User is a platform user record returned by identity APIs.

type UserActivity

type UserActivity struct {
	ID                  string     `json:"id"`
	Email               string     `json:"email"`
	Role                string     `json:"role"`
	Namespace           string     `json:"namespace,omitempty"`
	CreatedAt           time.Time  `json:"created_at"`
	LastLoginAt         *time.Time `json:"last_login_at,omitempty"`
	LastActivityAt      *time.Time `json:"last_activity_at,omitempty"`
	LoginCount          int64      `json:"login_count"`
	FailedActionCount   int64      `json:"failed_action_count"`
	RegistryCredentials int64      `json:"registry_credentials"`
	APIKeys             int64      `json:"api_keys"`
}

UserActivity summarizes recent platform activity for a user account.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL