Documentation ¶
Index ¶
- Constants
- Variables
- func CreateAdapter(requiresAuth bool, opts ...adpt.Option) (adapter *adpt.Adapter)
- func CreateAdapterWithTimeout(requiresAuth bool, timeoutSec int, opts ...adpt.Option) (adapter *adpt.Adapter)
- func CreateDoc()
- 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, cancel context.CancelFunc)
- 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 ArtifactInCollection
- type ArtifactPostResponse
- type AuthInfo
- type AuthProvider
- type AuthProviderInfo
- type CaddyFaultResponse
- type CollectionContent
- type Config
- type Context
- type CustomIdClaims
- type DeviceCode
- type Flag
Constants ¶
View Source
const ( ENV_PREFIX = "IVCAP" URN_PREFIX = "ivcap" )
View Source
const ArtifactInCollectionSchema = "urn:common:schema:in_collection.1"
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 CollectionSchema = "urn:ivcap:schema:artifact-collection.1"
View Source
const DEFAULT_SERVICE_TIMEOUT_IN_SECONDS = 30
View Source
const DEF_CHUNK_SIZE = 10000000 // -1 ... no chunking
View Source
const DEF_LIMIT = 10
View Source
const DEF_MAX_COLLECTION_ITEMS = 10
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/ivcap-works/ivcap-cli/releases/latest"
View Source
const VERSION_CHECK_FILE_NAME = "vcheck.txt"
Variables ¶
View Source
var ACCESS_TOKEN_ENV = ENV_PREFIX + "_ACCESS_TOKEN"
View Source
var URN_CHECK = regexp.MustCompile(`urn:[A-Za-z0-9][A-Za-z0-9-]{2,}:[A-Za-z0-9()+,\-.:=@;$_!*']+`)
Functions ¶
func CreateAdapter ¶
func CreateAdapterWithTimeout ¶
func CreateAdapterWithTimeout(requiresAuth bool, timeoutSec int, opts ...adpt.Option) (adapter *adpt.Adapter)
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 NewTimeoutContext() (ctxt context.Context, cancel context.CancelFunc)
func ParseIDToken ¶
func SetContext ¶
func WriteConfigFile ¶
func WriteConfigFile(config *Config)
Types ¶
type ArtifactInCollection ¶
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 AuthProvider struct { ID string `yaml:"id,omitempty"` LoginURL string `yaml:"login-url"` TokenURL string `yaml:"token-url"` CodeURL string `yaml:"code-url"` JwksURL string `yaml:"jwks-url"` ClientID string `yaml:"client-id"` Audience string `yaml:"audience"` // contains filtered or unexported fields }
type AuthProviderInfo ¶
type AuthProviderInfo struct { DefaultProviderId string `yaml:"default-provider-id"` AuthProviders map[string]AuthProvider `yaml:"providers"` }
type CaddyFaultResponse ¶
type CollectionContent ¶ added in v0.35.0
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.