Documentation
¶
Index ¶
- Constants
- Variables
- func IsConfigured() bool
- func IsValidEnvironment(env string) bool
- func ResolveAPIKey(flagValue string) string
- func ResolveBackendEnv() string
- func ResolveBackendURL() string
- func ValidEnvironments() []string
- type APIResponse
- type AWSCredentials
- type AzureCredentials
- type Client
- func (c *Client) DeleteCredential(ctx context.Context, provider CredentialProvider) error
- func (c *Client) GetAWSCredentials(ctx context.Context) (*AWSCredentials, error)
- func (c *Client) GetAzureCredentials(ctx context.Context) (*AzureCredentials, error)
- func (c *Client) GetCloudflareCredentials(ctx context.Context) (*CloudflareCredentials, error)
- func (c *Client) GetGCPCredentials(ctx context.Context) (*GCPCredentials, error)
- func (c *Client) GetHetznerCredentials(ctx context.Context) (*HetznerCredentials, error)
- func (c *Client) GetKubernetesCredentials(ctx context.Context) (*KubernetesCredentials, error)
- func (c *Client) GetRailwayCredentials(ctx context.Context) (*RailwayCredentials, error)
- func (c *Client) GetVercelCredentials(ctx context.Context) (*VercelCredentials, error)
- func (c *Client) GetVerdaCredentials(ctx context.Context) (*VerdaCredentials, error)
- func (c *Client) ListCredentials(ctx context.Context) ([]CredentialEntry, error)
- func (c *Client) StoreAWSCredentials(ctx context.Context, creds *AWSCredentials) error
- func (c *Client) StoreAzureCredentials(ctx context.Context, creds *AzureCredentials) error
- func (c *Client) StoreCloudflareCredentials(ctx context.Context, creds *CloudflareCredentials) error
- func (c *Client) StoreGCPCredentials(ctx context.Context, creds *GCPCredentials) error
- func (c *Client) StoreHetznerCredentials(ctx context.Context, creds *HetznerCredentials) error
- func (c *Client) StoreKubernetesCredentials(ctx context.Context, creds *KubernetesCredentials) error
- func (c *Client) StoreRailwayCredentials(ctx context.Context, creds *RailwayCredentials) error
- func (c *Client) StoreVercelCredentials(ctx context.Context, creds *VercelCredentials) error
- func (c *Client) StoreVerdaCredentials(ctx context.Context, creds *VerdaCredentials) error
- type CloudflareCredentials
- type CredentialEntry
- type CredentialListResponse
- type CredentialProvider
- type CredentialRawResponse
- type DigitalOceanCredentials
- type GCPCredentials
- type HetznerCredentials
- type KubernetesCredentials
- type RailwayCredentials
- type VercelCredentials
- type VerdaCredentials
Constants ¶
const DefaultBackendEnv = "testing"
DefaultBackendEnv is the default backend environment when not specified
Variables ¶
var BackendURLs = map[string]string{
"testing": "https://lychaz5ra6.execute-api.us-east-1.amazonaws.com/testing",
"staging": "https://2gjp7z6bxi.execute-api.us-east-1.amazonaws.com/staging",
"production": "",
}
BackendURLs maps environment names to backend URLs
Functions ¶
func IsConfigured ¶
func IsConfigured() bool
IsConfigured returns true if a backend API key is available
func IsValidEnvironment ¶
IsValidEnvironment checks if the given environment name is valid
func ResolveAPIKey ¶
ResolveAPIKey returns the backend API key from flag, config, or environment Priority: flag > config > env
func ResolveBackendEnv ¶
func ResolveBackendEnv() string
ResolveBackendEnv returns the backend environment name
func ResolveBackendURL ¶
func ResolveBackendURL() string
ResolveBackendURL returns the backend URL based on configuration Priority: explicit URL > env URL > env name > config env > default (testing)
func ValidEnvironments ¶
func ValidEnvironments() []string
ValidEnvironments returns the list of valid backend environments
Types ¶
type APIResponse ¶
type APIResponse struct {
Success bool `json:"success"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
}
APIResponse represents a generic API response
type AWSCredentials ¶
type AWSCredentials struct {
AccessKeyID string `json:"access_key_id"`
SecretAccessKey string `json:"secret_access_key"`
Region string `json:"region,omitempty"`
SessionToken string `json:"session_token,omitempty"`
}
AWSCredentials represents AWS credentials stored in the backend
type AzureCredentials ¶
type AzureCredentials struct {
SubscriptionID string `json:"subscription_id"`
TenantID string `json:"tenant_id,omitempty"`
ClientID string `json:"client_id,omitempty"`
ClientSecret string `json:"client_secret,omitempty"`
}
AzureCredentials represents Azure credentials stored in the backend
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is the HTTP client for the clanker backend API
func NewClientWithURL ¶
NewClientWithURL creates a new backend client with a specific URL
func (*Client) DeleteCredential ¶
func (c *Client) DeleteCredential(ctx context.Context, provider CredentialProvider) error
DeleteCredential deletes credentials for a provider from the backend
func (*Client) GetAWSCredentials ¶
func (c *Client) GetAWSCredentials(ctx context.Context) (*AWSCredentials, error)
GetAWSCredentials retrieves AWS credentials from the backend
func (*Client) GetAzureCredentials ¶
func (c *Client) GetAzureCredentials(ctx context.Context) (*AzureCredentials, error)
GetAzureCredentials retrieves Azure credentials from the backend
func (*Client) GetCloudflareCredentials ¶
func (c *Client) GetCloudflareCredentials(ctx context.Context) (*CloudflareCredentials, error)
GetCloudflareCredentials retrieves Cloudflare credentials from the backend
func (*Client) GetGCPCredentials ¶
func (c *Client) GetGCPCredentials(ctx context.Context) (*GCPCredentials, error)
GetGCPCredentials retrieves GCP credentials from the backend
func (*Client) GetHetznerCredentials ¶ added in v0.0.6
func (c *Client) GetHetznerCredentials(ctx context.Context) (*HetznerCredentials, error)
GetHetznerCredentials retrieves Hetzner credentials from the backend
func (*Client) GetKubernetesCredentials ¶
func (c *Client) GetKubernetesCredentials(ctx context.Context) (*KubernetesCredentials, error)
GetKubernetesCredentials retrieves Kubernetes credentials from the backend
func (*Client) GetRailwayCredentials ¶ added in v0.0.6
func (c *Client) GetRailwayCredentials(ctx context.Context) (*RailwayCredentials, error)
GetRailwayCredentials retrieves Railway credentials from the backend. The clanker backend may return 404 today; callers treat that as "fall back to local creds" so behaviour degrades gracefully.
func (*Client) GetVercelCredentials ¶ added in v0.0.6
func (c *Client) GetVercelCredentials(ctx context.Context) (*VercelCredentials, error)
GetVercelCredentials retrieves Vercel credentials from the backend
func (*Client) GetVerdaCredentials ¶ added in v0.0.6
func (c *Client) GetVerdaCredentials(ctx context.Context) (*VerdaCredentials, error)
GetVerdaCredentials retrieves Verda Cloud credentials from the backend. The clanker backend may return 404 today (route may not be provisioned server-side yet); the caller treats that as "fall back to local creds" so behaviour degrades gracefully until the server adds the endpoint.
func (*Client) ListCredentials ¶
func (c *Client) ListCredentials(ctx context.Context) ([]CredentialEntry, error)
ListCredentials lists all credentials stored in the backend
func (*Client) StoreAWSCredentials ¶
func (c *Client) StoreAWSCredentials(ctx context.Context, creds *AWSCredentials) error
StoreAWSCredentials stores AWS credentials in the backend
func (*Client) StoreAzureCredentials ¶
func (c *Client) StoreAzureCredentials(ctx context.Context, creds *AzureCredentials) error
StoreAzureCredentials stores Azure credentials in the backend
func (*Client) StoreCloudflareCredentials ¶
func (c *Client) StoreCloudflareCredentials(ctx context.Context, creds *CloudflareCredentials) error
StoreCloudflareCredentials stores Cloudflare credentials in the backend
func (*Client) StoreGCPCredentials ¶
func (c *Client) StoreGCPCredentials(ctx context.Context, creds *GCPCredentials) error
StoreGCPCredentials stores GCP credentials in the backend
func (*Client) StoreHetznerCredentials ¶ added in v0.0.6
func (c *Client) StoreHetznerCredentials(ctx context.Context, creds *HetznerCredentials) error
StoreHetznerCredentials stores Hetzner credentials in the backend
func (*Client) StoreKubernetesCredentials ¶
func (c *Client) StoreKubernetesCredentials(ctx context.Context, creds *KubernetesCredentials) error
StoreKubernetesCredentials stores Kubernetes credentials in the backend Note: kubernetes provider must be added to the backend for this to work
func (*Client) StoreRailwayCredentials ¶ added in v0.0.6
func (c *Client) StoreRailwayCredentials(ctx context.Context, creds *RailwayCredentials) error
StoreRailwayCredentials stores Railway credentials in the backend
func (*Client) StoreVercelCredentials ¶ added in v0.0.6
func (c *Client) StoreVercelCredentials(ctx context.Context, creds *VercelCredentials) error
StoreVercelCredentials stores Vercel credentials in the backend
func (*Client) StoreVerdaCredentials ¶ added in v0.0.6
func (c *Client) StoreVerdaCredentials(ctx context.Context, creds *VerdaCredentials) error
StoreVerdaCredentials stores Verda Cloud credentials in the backend.
type CloudflareCredentials ¶
type CloudflareCredentials struct {
APIToken string `json:"api_token"`
AccountID string `json:"account_id,omitempty"`
ZoneID string `json:"zone_id,omitempty"`
}
CloudflareCredentials represents Cloudflare credentials stored in the backend
type CredentialEntry ¶
type CredentialEntry struct {
Provider CredentialProvider `json:"provider"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Masked map[string]string `json:"masked,omitempty"`
}
CredentialEntry represents a stored credential in the backend
type CredentialListResponse ¶
type CredentialListResponse struct {
Success bool `json:"success"`
Data []CredentialEntry `json:"data"`
}
CredentialListResponse represents the response from listing credentials
type CredentialProvider ¶
type CredentialProvider string
CredentialProvider represents supported credential providers
const ( ProviderAWS CredentialProvider = "aws" ProviderGCP CredentialProvider = "gcp" ProviderAzure CredentialProvider = "azure" ProviderCloudflare CredentialProvider = "cloudflare" ProviderDigitalOcean CredentialProvider = "digitalocean" ProviderHetzner CredentialProvider = "hetzner" ProviderKubernetes CredentialProvider = "kubernetes" ProviderVercel CredentialProvider = "vercel" ProviderRailway CredentialProvider = "railway" ProviderVerda CredentialProvider = "verda" )
type CredentialRawResponse ¶
type CredentialRawResponse struct {
Success bool `json:"success"`
Data CredentialEntry `json:"data"`
}
CredentialRawResponse represents the response from getting raw credentials
type DigitalOceanCredentials ¶ added in v0.0.6
type DigitalOceanCredentials struct {
APIToken string `json:"api_token"`
}
DigitalOceanCredentials represents Digital Ocean credentials stored in the backend
type GCPCredentials ¶
type GCPCredentials struct {
ProjectID string `json:"project_id"`
ServiceAccountJSON string `json:"service_account_json,omitempty"`
}
GCPCredentials represents GCP credentials stored in the backend
type HetznerCredentials ¶ added in v0.0.6
type HetznerCredentials struct {
APIToken string `json:"api_token"`
}
HetznerCredentials represents Hetzner Cloud credentials stored in the backend
type KubernetesCredentials ¶
type KubernetesCredentials struct {
KubeconfigContent string `json:"kubeconfig_content"`
ContextName string `json:"context_name,omitempty"`
}
KubernetesCredentials represents Kubernetes credentials stored in the backend
type RailwayCredentials ¶ added in v0.0.6
type RailwayCredentials struct {
APIToken string `json:"api_token"`
WorkspaceID string `json:"workspace_id,omitempty"`
}
RailwayCredentials represents Railway credentials stored in the backend. WorkspaceID is optional — single-workspace accounts can omit it and the GraphQL API infers scope from the account token.
type VercelCredentials ¶ added in v0.0.6
type VercelCredentials struct {
APIToken string `json:"api_token"`
TeamID string `json:"team_id,omitempty"`
}
VercelCredentials represents Vercel credentials stored in the backend. TeamID is optional — personal accounts have no team scope.
type VerdaCredentials ¶ added in v0.0.6
type VerdaCredentials struct {
ClientID string `json:"client_id"`
ClientSecret string `json:"client_secret"`
ProjectID string `json:"project_id,omitempty"`
}
VerdaCredentials represents Verda Cloud (ex-DataCrunch) credentials stored in the backend. Verda uses OAuth2 Client Credentials so we need both IDs. ProjectID is optional.