Documentation
¶
Index ¶
- Constants
- func CreateTURNCredentialsFromEnv(ctx context.Context, opts ...TURNCredentialsEnvOptions) (*rstream.TURNCredentials, error)
- func DefaultAPIURL() string
- func DefaultConfigPath() (string, error)
- func DefaultMacOSKeychainContextTokenAccount(name, apiURL string) string
- func DefaultMacOSKeychainTokenAccount(apiURL string) string
- func DeleteToken(storage TokenStorage) error
- func FlattenTransport(cfg *TransportConfig) rstream.Dialer
- func MTLSConfigFromAuth(auth *Auth) (*tls.Config, bool, error)
- func NewClientFromEnv() (*rstream.Client, error)
- func NewClientFromEnvOptions(opts ClientEnvOptions) (*rstream.Client, error)
- func NewClientFromResolved(resolved Resolved) (*rstream.Client, error)
- func NormalizeAPIURL(apiURL string) string
- func StoreToken(storage TokenStorage, token string) error
- func TokenFromAuth(auth *Auth) (string, bool, error)
- func WriteAtomic(path string, cfg Config) error
- type Auth
- type BindConfig
- type ClientEnvOptions
- type ClientResolution
- type Config
- func (c *Config) EnsureEnvironment(apiURL string) *Environment
- func (c *Config) EnsureVersion()
- func (c *Config) FindContextByName(name string) (*Context, int, error)
- func (c *Config) FindContextByNameAndAPIURL(name, apiURL string) (*Context, int, error)
- func (c *Config) FindContextForAPIURL(name, apiURL string) (*Context, int, error)
- func (c *Config) FindContextUnlinked(name string) (*Context, int, error)
- func (c *Config) FindEnvironment(apiURL string) (*Environment, int)
- func (c *Config) Normalize()
- type Context
- type DNSConfig
- type DefaultContext
- type Defaults
- type EnvSettings
- type Environment
- type FileLock
- type MTLS
- type MTLSStorage
- type ProxyConfig
- type ResolveInput
- type Resolved
- type TURNCredentialsEnvOptions
- type Token
- type TokenStorage
- type TransportConfig
Constants ¶
View Source
const ( TokenStorageInline = "inline" TokenStorageKeychain = "keychain" CredentialProviderMacOS = "macos" MTLSStorageKeychain = "keychain" MTLSStoragePKCS11 = "pkcs11" )
View Source
const DefaultMacOSKeychainTokenService = "io.rstream.auth"
Variables ¶
This section is empty.
Functions ¶
func CreateTURNCredentialsFromEnv ¶ added in v1.10.0
func CreateTURNCredentialsFromEnv( ctx context.Context, opts ...TURNCredentialsEnvOptions, ) (*rstream.TURNCredentials, error)
func DefaultAPIURL ¶
func DefaultAPIURL() string
func DefaultConfigPath ¶
func DefaultMacOSKeychainContextTokenAccount ¶ added in v1.16.0
func DefaultMacOSKeychainTokenAccount ¶ added in v1.16.0
func DeleteToken ¶ added in v1.16.0
func DeleteToken(storage TokenStorage) error
func FlattenTransport ¶
func FlattenTransport(cfg *TransportConfig) rstream.Dialer
func MTLSConfigFromAuth ¶ added in v1.15.0
func NewClientFromEnv ¶
func NewClientFromEnvOptions ¶
func NewClientFromEnvOptions(opts ClientEnvOptions) (*rstream.Client, error)
func NormalizeAPIURL ¶ added in v1.15.0
func StoreToken ¶ added in v1.16.0
func StoreToken(storage TokenStorage, token string) error
func WriteAtomic ¶
Types ¶
type BindConfig ¶
type ClientEnvOptions ¶
type ClientResolution ¶
func ResolveFromEnv ¶
func ResolveFromEnv(opts ClientEnvOptions) (ClientResolution, error)
type Config ¶
type Config struct {
Version int `yaml:"version,omitempty"`
Defaults Defaults `yaml:"defaults,omitempty"`
Environments []Environment `yaml:"environments,omitempty"`
Contexts []Context `yaml:"contexts,omitempty"`
}
func (*Config) EnsureEnvironment ¶
func (c *Config) EnsureEnvironment(apiURL string) *Environment
func (*Config) EnsureVersion ¶
func (c *Config) EnsureVersion()
func (*Config) FindContextByName ¶
func (*Config) FindContextByNameAndAPIURL ¶
func (*Config) FindContextForAPIURL ¶
func (*Config) FindContextUnlinked ¶
func (*Config) FindEnvironment ¶
func (c *Config) FindEnvironment(apiURL string) (*Environment, int)
type Context ¶
type Context struct {
Name string `yaml:"name"`
APIURL string `yaml:"apiUrl,omitempty"`
ProjectEndpoint string `yaml:"projectEndpoint,omitempty"`
Engine string `yaml:"engine,omitempty"`
TURNDomain string `yaml:"turnDomain,omitempty"`
TURNPort int `yaml:"turnPort,omitempty"`
TURNSPort int `yaml:"turnsPort,omitempty"`
Auth *Auth `yaml:"auth,omitempty"`
Transport *TransportConfig `yaml:"transport,omitempty"`
}
type DefaultContext ¶
type DefaultContext struct {
Name string `yaml:"name,omitempty"`
}
type Defaults ¶
type Defaults struct {
Context *DefaultContext `yaml:"context,omitempty"`
}
type EnvSettings ¶
type EnvSettings struct {
ConfigPath string
APIURL string
Context string
Engine string
Token string
MTLSCert string
MTLSKey string
UseQUIC bool
}
func ReadEnv ¶
func ReadEnv() EnvSettings
type Environment ¶
type Environment struct {
APIURL string `yaml:"apiUrl"`
Auth *Auth `yaml:"auth,omitempty"`
Transport *TransportConfig `yaml:"transport,omitempty"`
}
type MTLS ¶ added in v1.15.0
type MTLS struct {
Certificate string `yaml:"certificate,omitempty"`
CertificateFile string `yaml:"certificateFile,omitempty"`
Key string `yaml:"key,omitempty"`
KeyFile string `yaml:"keyFile,omitempty"`
Storage *MTLSStorage `yaml:"storage,omitempty"`
}
type MTLSStorage ¶ added in v1.16.0
type MTLSStorage struct {
Kind string `yaml:"kind,omitempty"`
Provider string `yaml:"provider,omitempty"`
Module string `yaml:"module,omitempty"`
OpenSSLProvider string `yaml:"opensslProvider,omitempty"`
TokenLabel string `yaml:"tokenLabel,omitempty"`
TokenSerial string `yaml:"tokenSerial,omitempty"`
Slot *int `yaml:"slot,omitempty"`
KeyLabel string `yaml:"keyLabel,omitempty"`
KeyIDHex string `yaml:"keyIdHex,omitempty"`
Certificate string `yaml:"certificate,omitempty"`
CertificateFile string `yaml:"certificateFile,omitempty"`
CertificateLabel string `yaml:"certificateLabel,omitempty"`
CertificateIDHex string `yaml:"certificateIdHex,omitempty"`
CertificateSHA256 string `yaml:"certificateSHA256,omitempty"`
PINEnv string `yaml:"pinEnv,omitempty"`
MaxSessions int `yaml:"maxSessions,omitempty"`
}
type ProxyConfig ¶
type ProxyConfig struct {
HTTP string `yaml:"http,omitempty"`
SOCKS5 string `yaml:"socks5,omitempty"`
Username string `yaml:"username,omitempty"`
Password string `yaml:"password,omitempty"`
Headers map[string]string `yaml:"headers,omitempty"`
FromEnvironment *bool `yaml:"fromEnvironment,omitempty"`
}
type ResolveInput ¶
type ResolveInput struct {
Config Config
FlagAPIURL string
FlagContext string
FlagEngine string
FlagToken string
FlagMTLSCert string
FlagMTLSKey string
EnvAPIURL string
EnvContext string
EnvEngine string
EnvToken string
EnvMTLSCert string
EnvMTLSKey string
IgnoreDefaultContext bool
RequireToken bool
RequireEngine bool
ResolveToken bool
}
type Resolved ¶
type Resolved struct {
APIURL string
ContextName string
Environment *Environment
Context *Context
Engine string
Token string
Transport rstream.Dialer
TLSClientConfig *tls.Config
}
func Resolve ¶
func Resolve(input ResolveInput) (Resolved, error)
type TURNCredentialsEnvOptions ¶ added in v1.10.0
type Token ¶
type Token struct {
Storage *TokenStorage `yaml:"storage,omitempty"`
}
type TokenStorage ¶
type TokenStorage struct {
Kind string `yaml:"kind,omitempty"`
Provider string `yaml:"provider,omitempty"`
Value string `yaml:"value,omitempty"`
Service string `yaml:"service,omitempty"`
Account string `yaml:"account,omitempty"`
}
func NewMacOSKeychainTokenStorage ¶ added in v1.16.0
func NewMacOSKeychainTokenStorage(apiURL string) TokenStorage
type TransportConfig ¶
type TransportConfig struct {
Bind *BindConfig `yaml:"bind,omitempty"`
IPFamily string `yaml:"ipFamily,omitempty"`
DNS *DNSConfig `yaml:"dns,omitempty"`
MPTCP *bool `yaml:"mptcp,omitempty"`
Proxy *ProxyConfig `yaml:"proxy,omitempty"`
UseQUIC *bool `yaml:"useQuic,omitempty"`
}
func MergeTransport ¶
func MergeTransport(base, override *TransportConfig) *TransportConfig
Click to show internal directories.
Click to hide internal directories.