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 MapToRaw(m map[string]any) json.RawMessage
- 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 WrapSoftSoft(str string, wrapLen int) string
- 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
- type ToolDefinition
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 CREATE_FROM_ASPECT = `{
"$schema": "urn:ivcap:schema:job.input.1",
"request-aspect": "%s",
"service": "%s"
}`
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 JOB_SCHEMA = "urn:ivcap:schema:job.2"
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 WrapSoftSoft ¶ added in v0.41.8
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.