Documentation ¶
Index ¶
- Constants
- Variables
- func CreateAdapter(requiresAuth bool) (adapter *adpt.Adapter)
- func CreateAdapterWithTimeout(requiresAuth bool, timeoutSec int) (adapter *adpt.Adapter)
- func Execute(version string)
- func GetConfigDir(createIfNoExist bool) (configDir string)
- func GetConfigFilePath() (path string)
- func GetHistory(token string) (value string)
- func GetServiceNameForId(serviceID *string) string
- func IsAuthorised() bool
- func Logger() *log.Logger
- func MakeHistory(urn *string) string
- func MakeMaybeHistory(sp *string) string
- func NewAdapter(url string, accessToken string, timeoutSec int, headers *map[string]string) (*adpt.Adapter, error)
- func NewTimeoutContext() (ctxt context.Context)
- func ParseIDToken(tokenResponse *deviceTokenResponse, ctxt *Context, jwksURL string)
- func SetContext(ctxt *Context, failIfNotExist bool)
- func SetLogger(l *log.Logger)
- func WriteConfigFile(config *Config)
- type AppError
- type ArtifactPostResponse
- type AuthInfo
- type AuthProvider
- type AuthProviderInfo
- type CaddyFaultResponse
- type Config
- type Context
- type CustomIdClaims
- type DeviceCode
Constants ¶
View Source
const CHECK_VERSION_INTERVAL = time.Duration(24 * time.Hour)
View Source
const CONFIG_FILE_DIR = "ivcap-cli"
Names for config dir and file - stored in the os.UserConfigDir() directory
View Source
const CONFIG_FILE_NAME = "config.yaml"
View Source
const DEF_CHUNK_SIZE = 1000000 // -1 ... no chunking
View Source
const ENV_PREFIX = "IVCAP"
View Source
const HISTORY_FILE_NAME = "history.yaml"
View Source
const MAX_NAME_COL_LEN = 30
Max characters to limit name to
View Source
const RELEASE_CHECK_URL = "https://github.com/reinventingscience/ivcap-cli/releases/latest"
View Source
const URN_PREFIX = "ivcap"
View Source
const VERSION_CHECK_FILE_NAME = "vcheck.txt"
Variables ¶
View Source
var ACCESS_TOKEN_ENV = ENV_PREFIX + "_ACCESS_TOKEN"
Functions ¶
func CreateAdapter ¶
func CreateAdapterWithTimeout ¶
Returns an HTTP adapter which will wait a max. of `timeoutSec` sec for a reply. It also pre-configures the adapter in the following way:
- If `requiresAuth` is set, each outgoing request includes an `Authorization` header with a 'Bearer' token provided either via the `--access-token` flag, the IVCAP_ACCESS_TOKEN environment, or the AccessToken from the ActiveContext.
- If the `path` parameter for any of the adapter calls is NOT a fully fledged URL, the URL defined in ActiveContext is automatically prefixed.
- If the ActiveContext defines a `Host` parameter, it is also added as a `Host` HTTP header.
func GetConfigDir ¶
func GetConfigFilePath ¶
func GetConfigFilePath() (path string)
func GetHistory ¶
func GetServiceNameForId ¶
func IsAuthorised ¶
func IsAuthorised() bool
func MakeHistory ¶
func MakeMaybeHistory ¶
Check if argument is an IVCAP urn and if it is, turn it into a history.
func NewAdapter ¶
func NewTimeoutContext ¶
func ParseIDToken ¶
func SetContext ¶
func WriteConfigFile ¶
func WriteConfigFile(config *Config)
Types ¶
type ArtifactPostResponse ¶
type ArtifactPostResponse struct { // Artifact ID ID string `form:"id" json:"id" xml:"id"` // Optional name Name string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"` // Artifact status Status string `form:"status" json:"status" xml:"status"` // Mime-type of data MimeType string `form:"mime-type,omitempty" json:"mime-type,omitempty" xml:"mime-type,omitempty"` // Size of data Size int64 `form:"size,omitempty" json:"size,omitempty" xml:"size,omitempty"` }
type AuthInfo ¶
type AuthInfo struct { Version int `yaml:"version"` ProviderList AuthProviderInfo `yaml:"auth"` }
type AuthProvider ¶
type AuthProviderInfo ¶
type AuthProviderInfo struct { DefaultProviderId string `yaml:"default-provider-id"` AuthProviders map[string]AuthProvider `yaml:"providers"` }
type CaddyFaultResponse ¶
type Config ¶
type Config struct { Version string `yaml:"version"` ActiveContext string `yaml:"active-context"` Contexts []Context `yaml:"contexts"` }
func ReadConfigFile ¶
type Context ¶
type Context struct { ApiVersion int `yaml:"api-version"` Name string `yaml:"name"` URL string `yaml:"url"` AccountID string `yaml:"account-id"` ProviderID string `yaml:"provider-id"` Host string `yaml:"host"` // set Host header if necessary // User Information AccountName string `yaml:"account-name"` AccountNickName string `yaml:"account-nickname"` Email string `yaml:"email"` // Cached Credentials AccessToken string `yaml:"access-token"` AccessTokenExpiry time.Time `yaml:"access-token-expiry"` RefreshToken string `yaml:"refresh-token"` }
func GetActiveContext ¶
func GetActiveContext() (ctxt *Context)
func GetContext ¶
type CustomIdClaims ¶
type CustomIdClaims struct { Name string `json:"name,omitempty"` Nickname string `json:"nickname,omitempty"` Email string `json:"email,omitempty"` EmailVerified bool `json:"email_verified,omitempty"` Avatar string `json:"picture,omitempty"` AccountID string `json:"acc"` ProviderID string `json:"ivcap/claims/provider,omitempty"` GroupIDs []string `json:"ivcap/claims/groupIds,omitempty"` jwt.RegisteredClaims }
type DeviceCode ¶
Click to show internal directories.
Click to hide internal directories.