protocol

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Version                    = "redeven-gateway-v1"
	ReservedLocalEnvironmentID = "env_local"
)
View Source
const (
	EnvProfileSSHSecretModeKeep    = "keep"
	EnvProfileSSHSecretModeReplace = "replace"
	EnvProfileSSHSecretModeClear   = "clear"
)

Variables

View Source
var (
	ErrUnsupportedProtocolVersion = errors.New("unsupported protocol_version")
	ErrMissingGatewayEnvID        = errors.New("gateway_env_id is required")
	ErrMissingRequestedCapability = errors.New("requested_capability is required")
	ErrMissingClientNonce         = errors.New("client_nonce is required")
	ErrMissingDisplayName         = errors.New("display_name is required")
	ErrMissingAccessRoute         = errors.New("access_route is required")
	ErrMissingLifecycleOperation  = errors.New("operation is required")
	ErrInvalidSSHSecretMode       = errors.New("ssh_secret.mode is invalid")
	ErrSSHSecretUnsupported       = errors.New("ssh_secret is not supported")
	ErrInvalidAccessRouteFields   = errors.New("access_route contains fields outside its kind")
	ErrInvalidSSHAuthMode         = errors.New("access_route.auth_mode is invalid")
	ErrSSHPasswordAuthUnsupported = errors.New("ssh password auth is not supported")
	ErrInvalidClientCapability    = errors.New("client_capability is invalid")
)

Functions

func ValidateEnvLifecycleRequest

func ValidateEnvLifecycleRequest(req EnvLifecycleRequest) error

func ValidateEnvProfileDeleteRequest

func ValidateEnvProfileDeleteRequest(req EnvProfileDeleteRequest) error

func ValidateEnvProfileUpsertRequest

func ValidateEnvProfileUpsertRequest(req EnvProfileUpsertRequest) error

func ValidateOpenSessionRequest

func ValidateOpenSessionRequest(req OpenSessionRequest) error

func ValidatePairingCompleteRequest

func ValidatePairingCompleteRequest(req PairingCompleteRequest) error

func ValidateProtocolVersion

func ValidateProtocolVersion(version string) error

Types

type CatalogRequest

type CatalogRequest struct {
	ProtocolVersion string `json:"protocol_version,omitempty"`
}

type CatalogResponse

type CatalogResponse struct {
	ProtocolVersion string          `json:"protocol_version"`
	Gateway         GatewayMetadata `json:"gateway"`
	Environments    []Environment   `json:"environments"`
}

func NewCatalogResponse

func NewCatalogResponse(gateway GatewayMetadata, environments []Environment) CatalogResponse

type ConnectArtifactKind

type ConnectArtifactKind string
const (
	ConnectArtifactKindLocalDirect   ConnectArtifactKind = "local_direct_artifact"
	ConnectArtifactKindDesktopBridge ConnectArtifactKind = "desktop_bridge_artifact"
)

type DiagnosticsHint

type DiagnosticsHint struct {
	GatewayEnvID   string `json:"gateway_env_id"`
	ConnectionKind string `json:"connection_kind"`
}

type EnvLifecycleOperation

type EnvLifecycleOperation string
const (
	EnvLifecycleOperationStart         EnvLifecycleOperation = "start"
	EnvLifecycleOperationStop          EnvLifecycleOperation = "stop"
	EnvLifecycleOperationRestart       EnvLifecycleOperation = "restart"
	EnvLifecycleOperationUpdateRuntime EnvLifecycleOperation = "update_runtime"
)

type EnvLifecycleRequest

type EnvLifecycleRequest struct {
	ProtocolVersion string                `json:"protocol_version,omitempty"`
	GatewayEnvID    string                `json:"gateway_env_id"`
	Operation       EnvLifecycleOperation `json:"operation"`
}

func NormalizeEnvLifecycleRequest

func NormalizeEnvLifecycleRequest(req EnvLifecycleRequest) EnvLifecycleRequest

type EnvLifecycleResponse

type EnvLifecycleResponse struct {
	ProtocolVersion string                `json:"protocol_version"`
	GatewayEnvID    string                `json:"gateway_env_id"`
	Operation       EnvLifecycleOperation `json:"operation"`
	State           EnvLifecycleState     `json:"state"`
	Message         string                `json:"message,omitempty"`
}

type EnvLifecycleState

type EnvLifecycleState string
const (
	EnvLifecycleStateAccepted    EnvLifecycleState = "accepted"
	EnvLifecycleStateRunning     EnvLifecycleState = "running"
	EnvLifecycleStateSucceeded   EnvLifecycleState = "succeeded"
	EnvLifecycleStateFailed      EnvLifecycleState = "failed"
	EnvLifecycleStateUnsupported EnvLifecycleState = "unsupported"
)

type EnvProfileAccessRoute

type EnvProfileAccessRoute struct {
	Kind                  EnvProfileAccessRouteKind `json:"kind"`
	URL                   string                    `json:"url,omitempty"`
	OriginLabel           string                    `json:"origin_label,omitempty"`
	SSHDestination        string                    `json:"ssh_destination,omitempty"`
	SSHPort               int                       `json:"ssh_port,omitempty"`
	SSHAuthMode           string                    `json:"auth_mode,omitempty"`
	SSHPasswordConfigured bool                      `json:"ssh_password_configured,omitempty"`
	SSHRuntimeRoot        string                    `json:"ssh_runtime_root,omitempty"`
	ContainerEngine       string                    `json:"container_engine,omitempty"`
	ContainerID           string                    `json:"container_id,omitempty"`
	ContainerRuntimeRoot  string                    `json:"container_runtime_root,omitempty"`
	// contains filtered or unexported fields
}

func (*EnvProfileAccessRoute) UnmarshalJSON

func (route *EnvProfileAccessRoute) UnmarshalJSON(data []byte) error

type EnvProfileAccessRouteKind

type EnvProfileAccessRouteKind string
const (
	EnvProfileAccessRouteKindURL          EnvProfileAccessRouteKind = "url"
	EnvProfileAccessRouteKindSSHHost      EnvProfileAccessRouteKind = "ssh_host"
	EnvProfileAccessRouteKindSSHContainer EnvProfileAccessRouteKind = "ssh_container"
)

type EnvProfileControlOwner

type EnvProfileControlOwner string
const (
	EnvProfileControlOwnerNone    EnvProfileControlOwner = "none"
	EnvProfileControlOwnerGateway EnvProfileControlOwner = "gateway"
)

type EnvProfileDeleteRequest

type EnvProfileDeleteRequest struct {
	ProtocolVersion string `json:"protocol_version,omitempty"`
	GatewayEnvID    string `json:"gateway_env_id"`
}

type EnvProfileDeleteResponse

type EnvProfileDeleteResponse struct {
	ProtocolVersion string `json:"protocol_version"`
	GatewayEnvID    string `json:"gateway_env_id"`
	Deleted         bool   `json:"deleted"`
}

type EnvProfileInput

type EnvProfileInput struct {
	GatewayEnvID string                 `json:"gateway_env_id,omitempty"`
	DisplayName  string                 `json:"display_name"`
	AccessRoute  EnvProfileAccessRoute  `json:"access_route"`
	ControlOwner EnvProfileControlOwner `json:"control_owner,omitempty"`
	SSHSecret    *EnvProfileSSHSecret   `json:"ssh_secret,omitempty"`
	// contains filtered or unexported fields
}

func (*EnvProfileInput) UnmarshalJSON

func (input *EnvProfileInput) UnmarshalJSON(data []byte) error

type EnvProfileSSHSecret

type EnvProfileSSHSecret struct {
	Mode     string `json:"mode"`
	Password string `json:"password,omitempty"`
}

type EnvProfileUpsertRequest

type EnvProfileUpsertRequest struct {
	ProtocolVersion string          `json:"protocol_version,omitempty"`
	Profile         EnvProfileInput `json:"profile"`
}

type EnvProfileUpsertResponse

type EnvProfileUpsertResponse struct {
	ProtocolVersion string      `json:"protocol_version"`
	Environment     Environment `json:"environment"`
}

type Environment

type Environment struct {
	GatewayEnvID        string                  `json:"gateway_env_id"`
	DisplayName         string                  `json:"display_name"`
	EnvKind             EnvironmentKind         `json:"env_kind"`
	State               EnvironmentState        `json:"state"`
	Capabilities        []EnvironmentCapability `json:"capabilities"`
	AccessCapabilities  []EnvironmentCapability `json:"access_capabilities"`
	ControlCapabilities []EnvironmentCapability `json:"control_capabilities"`
	Profile             *EnvironmentProfile     `json:"profile,omitempty"`
	ProfileAccessRoute  *EnvProfileAccessRoute  `json:"profile_access_route,omitempty"`
	Origin              EnvironmentOrigin       `json:"origin"`
	LastSeenAtUnixMS    int64                   `json:"last_seen_at_unix_ms,omitempty"`
}

func NormalizeEnvironments

func NormalizeEnvironments(environments []Environment) []Environment

type EnvironmentCapability

type EnvironmentCapability string
const (
	EnvironmentCapabilityOpen          EnvironmentCapability = "open"
	EnvironmentCapabilityStart         EnvironmentCapability = "start"
	EnvironmentCapabilityStop          EnvironmentCapability = "stop"
	EnvironmentCapabilityRestart       EnvironmentCapability = "restart"
	EnvironmentCapabilityUpdateRuntime EnvironmentCapability = "update_runtime"
	EnvironmentCapabilityTerminal      EnvironmentCapability = "terminal"
	EnvironmentCapabilityFiles         EnvironmentCapability = "files"
	EnvironmentCapabilityWebService    EnvironmentCapability = "web_service"
	EnvironmentCapabilityPortForward   EnvironmentCapability = "port_forward"
)

type EnvironmentKind

type EnvironmentKind string
const (
	EnvironmentKindManagedLocalEnv EnvironmentKind = "managed_local_env"
	EnvironmentKindReachableEnv    EnvironmentKind = "reachable_env"
)

type EnvironmentOrigin

type EnvironmentOrigin struct {
	Kind  EnvironmentOriginKind `json:"kind"`
	Label string                `json:"label"`
}

type EnvironmentOriginKind

type EnvironmentOriginKind string
const (
	EnvironmentOriginKindGatewayHost   EnvironmentOriginKind = "gateway_host"
	EnvironmentOriginKindSSHTarget     EnvironmentOriginKind = "ssh_target"
	EnvironmentOriginKindContainer     EnvironmentOriginKind = "container"
	EnvironmentOriginKindNetworkTarget EnvironmentOriginKind = "network_target"
)

type EnvironmentProfile

type EnvironmentProfile struct {
	Managed         bool                      `json:"managed,omitempty"`
	AccessRouteKind EnvProfileAccessRouteKind `json:"access_route_kind,omitempty"`
}

type EnvironmentState

type EnvironmentState string
const (
	EnvironmentStateUnknown   EnvironmentState = "unknown"
	EnvironmentStateAvailable EnvironmentState = "available"
	EnvironmentStateStarting  EnvironmentState = "starting"
	EnvironmentStateStopped   EnvironmentState = "stopped"
	EnvironmentStateArchived  EnvironmentState = "archived"
)

type ErrorEnvelope

type ErrorEnvelope struct {
	Code           GatewayErrorCode `json:"code"`
	Message        string           `json:"message"`
	Retryable      bool             `json:"retryable,omitempty"`
	RedactedDetail string           `json:"redacted_detail,omitempty"`
}

type GatewayCapability

type GatewayCapability string
const (
	GatewayCapabilityEnvCatalog      GatewayCapability = "env_catalog"
	GatewayCapabilityEnvOpenSession  GatewayCapability = "env_open_session"
	GatewayCapabilityEnvProfileWrite GatewayCapability = "env_profile_write"
	GatewayCapabilityEnvLifecycle    GatewayCapability = "env_lifecycle"
	GatewayCapabilityTerminal        GatewayCapability = "terminal"
	GatewayCapabilityFiles           GatewayCapability = "files"
	GatewayCapabilityWebService      GatewayCapability = "web_service"
	GatewayCapabilityPortForward     GatewayCapability = "port_forward"
)

type GatewayConnectArtifact

type GatewayConnectArtifact struct {
	Kind            ConnectArtifactKind `json:"kind"`
	URL             string              `json:"url,omitempty"`
	BridgeSessionID string              `json:"bridge_session_id,omitempty"`
	RouteID         string              `json:"route_id,omitempty"`
	ExpiresAtUnixMS int64               `json:"expires_at_unix_ms"`
	ArtifactNonce   string              `json:"artifact_nonce"`
	Proof           string              `json:"proof"`
}

type GatewayErrorCode

type GatewayErrorCode string
const (
	GatewayErrorCodeInvalidRequest        GatewayErrorCode = "INVALID_REQUEST"
	GatewayErrorCodeUnauthorized          GatewayErrorCode = "UNAUTHORIZED"
	GatewayErrorCodeTrustChanged          GatewayErrorCode = "TRUST_CHANGED"
	GatewayErrorCodeNotFound              GatewayErrorCode = "NOT_FOUND"
	GatewayErrorCodeCapabilityUnsupported GatewayErrorCode = "CAPABILITY_UNSUPPORTED"
	GatewayErrorCodeUnavailable           GatewayErrorCode = "UNAVAILABLE"
	GatewayErrorCodeNotImplemented        GatewayErrorCode = "NOT_IMPLEMENTED"
)

type GatewayMetadata

type GatewayMetadata struct {
	GatewayID                   string              `json:"gateway_id"`
	DisplayName                 string              `json:"display_name"`
	Status                      GatewayStatus       `json:"status"`
	Capabilities                []GatewayCapability `json:"capabilities"`
	GatewayPublicKeyFingerprint string              `json:"gateway_public_key_fingerprint,omitempty"`
}

func NormalizeGatewayMetadata

func NormalizeGatewayMetadata(gateway GatewayMetadata) GatewayMetadata

type GatewayStatus

type GatewayStatus string
const (
	GatewayStatusOnline          GatewayStatus = "online"
	GatewayStatusPairingRequired GatewayStatus = "pairing_required"
	GatewayStatusTrustChanged    GatewayStatus = "trust_changed"
	GatewayStatusError           GatewayStatus = "error"
	GatewayStatusUnknown         GatewayStatus = "unknown"
)

type OpenSessionRequest

type OpenSessionRequest struct {
	ProtocolVersion     string              `json:"protocol_version,omitempty"`
	GatewayEnvID        string              `json:"gateway_env_id"`
	RequestedCapability RequestedCapability `json:"requested_capability"`
	ClientNonce         string              `json:"client_nonce"`
	BridgeSessionID     string              `json:"bridge_session_id,omitempty"`
	RouteID             string              `json:"route_id,omitempty"`
}

func NormalizeOpenSessionRequest

func NormalizeOpenSessionRequest(req OpenSessionRequest) OpenSessionRequest

type OpenSessionResponse

type OpenSessionResponse struct {
	ProtocolVersion  string                 `json:"protocol_version"`
	GatewaySessionID string                 `json:"gateway_session_id"`
	GatewayEnvID     string                 `json:"gateway_env_id"`
	ConnectArtifact  GatewayConnectArtifact `json:"connect_artifact"`
	DiagnosticsHint  *DiagnosticsHint       `json:"diagnostics_hint,omitempty"`
}

type PairingChallengeRequest

type PairingChallengeRequest struct {
	ProtocolVersion string `json:"protocol_version,omitempty"`
	ClientNonce     string `json:"client_nonce"`
	ClientPublicKey string `json:"client_public_key"`
	BindingAudience string `json:"binding_audience"`
	PairingCode     string `json:"pairing_code,omitempty"`
}

type PairingChallengeResponse

type PairingChallengeResponse struct {
	ProtocolVersion             string `json:"protocol_version"`
	GatewayID                   string `json:"gateway_id"`
	GatewayPublicKey            string `json:"gateway_public_key"`
	GatewayPublicKeyFingerprint string `json:"gateway_public_key_fingerprint"`
	GatewayNonce                string `json:"gateway_nonce"`
	PairingCode                 string `json:"pairing_code,omitempty"`
	ExpiresAtUnixMS             int64  `json:"expires_at_unix_ms"`
	Signature                   string `json:"signature"`
}

type PairingCompleteRequest

type PairingCompleteRequest struct {
	ProtocolVersion  string `json:"protocol_version,omitempty"`
	ClientNonce      string `json:"client_nonce"`
	GatewayNonce     string `json:"gateway_nonce"`
	GatewayID        string `json:"gateway_id"`
	BindingAudience  string `json:"binding_audience"`
	ClientKeyID      string `json:"client_key_id"`
	ClientCapability string `json:"client_capability,omitempty"`
	Proof            string `json:"proof"`
}

func NormalizePairingCompleteRequest

func NormalizePairingCompleteRequest(req PairingCompleteRequest) PairingCompleteRequest

type PairingCompleteResponse

type PairingCompleteResponse struct {
	ProtocolVersion string `json:"protocol_version"`
	GatewayID       string `json:"gateway_id"`
	ClientKeyID     string `json:"client_key_id"`
	PairedAtUnixMS  int64  `json:"paired_at_unix_ms"`
	Proof           string `json:"proof"`
}

type RequestedCapability

type RequestedCapability string
const (
	RequestedCapabilityEnvApp      RequestedCapability = "env_app"
	RequestedCapabilityTerminal    RequestedCapability = "terminal"
	RequestedCapabilityFiles       RequestedCapability = "files"
	RequestedCapabilityWebService  RequestedCapability = "web_service"
	RequestedCapabilityPortForward RequestedCapability = "port_forward"
)

Jump to

Keyboard shortcuts

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