backend

package
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultBackendEnv = "testing"

DefaultBackendEnv is the default backend environment when not specified

Variables

View Source
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

func IsValidEnvironment(env string) bool

IsValidEnvironment checks if the given environment name is valid

func ResolveAPIKey

func ResolveAPIKey(flagValue string) string

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 NewClient

func NewClient(apiKey string, debug bool) *Client

NewClient creates a new backend client

func NewClientWithURL

func NewClientWithURL(apiKey, baseURL string, debug bool) *Client

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.

Jump to

Keyboard shortcuts

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