Documentation
¶
Index ¶
- Constants
- Variables
- func Build(*BuildOptions) error
- func WithBearer(fn func() (string, error)) func(*http.Request) error
- type AddOptions
- type Backend
- type BuildOptions
- type CreateOptions
- type DelOptions
- type FlatBackend
- type FlatBackendOptions
- type Integration
- type IntegrationIndex
- type IntegrationInstallation
- type IntegrationTypes
- type Manager
- func (p *Manager) Add(target string, opts *AddOptions) error
- func (p *Manager) Create(manifest *Manifest, opts *CreateOptions) error
- func (p *Manager) Del(target string, opts *DelOptions) error
- func (p *Manager) List() iter.Seq2[*Package, error]
- func (p *Manager) Query() iter.Seq2[*Integration, error]
- type Manifest
- type ManifestConnector
- type Options
- type Package
- type Recipe
- type RequestHook
Constants ¶
View Source
const PLUGIN_API_VERSION = "v1.0.0"
Variables ¶
View Source
var ( ErrInvalidOptions = errors.New("invalid options") ErrAlreadyInstalled = errors.New("already installed") ErrAuthorizationRequired = errors.New("authorization required") )
View Source
var (
ErrBadPackageName = errors.New("invalid package name")
)
Functions ¶
func Build ¶
func Build(*BuildOptions) error
Types ¶
type AddOptions ¶
type AddOptions struct {
// The version to install, if given. Otherwise, the latest
// version available will be used.
Version string
// If exists a older version of the plugin, remove it prior
// to install this version.
Upgrade bool
// If exists a newer version of the plugin, remove it prior
// to install this version.
Downgrade bool
// Remove other version of the plugin, even if it's the same,
// and install this version.
Replace bool
// Don't fail if other versions of the same plugin exist.
AllowMultipleVersions bool
// If target does not point at a .ptar file, attempt to fetch
// the pre-packaged plugin from the repository.
ImplicitFetch bool
}
type Backend ¶
type Backend interface {
// List returns an iterator of plugin names,
// e.g. s3_v1.0.0_openbsd_amd64.ptar, optionally filtered by
// the given name, or an error.
List(name string) iter.Seq2[*Package, error]
// Load a plugin' ptar from the given reader.
Load(*Package, io.Reader) error
// Unload a plugin
Unload(*Package) error
}
type BuildOptions ¶
type BuildOptions struct{}
type CreateOptions ¶
type CreateOptions struct{}
type DelOptions ¶
type DelOptions struct {
// If target is the empty string, delete all the packages
// installed.
All bool
}
type FlatBackend ¶
type FlatBackend struct {
// contains filtered or unexported fields
}
A backend that stores integrations in a single, flat, directory.
func NewFlatBackend ¶
func NewFlatBackend(kctx *kcontext.KContext, pkgdir, cachedir string, opts *FlatBackendOptions) (*FlatBackend, error)
func (*FlatBackend) LoadAll ¶
func (f *FlatBackend) LoadAll() error
func (*FlatBackend) Unload ¶
func (f *FlatBackend) Unload(pkg *Package) error
type FlatBackendOptions ¶
type Integration ¶
type Integration struct {
Id string `json:"id"`
Name string `json:"name"`
DisplayName string `json:"display_name"`
Description string `json:"description"`
Homepage string `json:"homepage"`
Repository string `json:"repository"`
License string `json:"license"`
Tags []string `json:"tags"`
APIVersion string `json:"api_version"`
LatestVersion string `json:"latest_version"`
Stage string `json:"stage"`
Types IntegrationTypes `json:"types"`
Documentation string `json:"documentation"` // README.md
Icon string `json:"icon"` // assets/icon.{png,svg}
Featured string `json:"featured"` // assets/featured.{png,svg}
Installation IntegrationInstallation `json:"installation"`
}
type IntegrationIndex ¶
type IntegrationIndex struct {
Plugins []Integration `json:"integrations"`
}
type IntegrationInstallation ¶
type IntegrationTypes ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func (*Manager) Add ¶
func (p *Manager) Add(target string, opts *AddOptions) error
Add installs a package. By default, it will fail if another version of the same plugin is already present.
func (*Manager) Del ¶
func (p *Manager) Del(target string, opts *DelOptions) error
Del uninstalls all matching packages.
type Manifest ¶
type Manifest struct {
Name string `yaml:"name"`
DisplayName string `yaml:"display_name"`
Description string `yaml:"description"`
Homepage string `yaml:"homepage"`
License string `yaml:"license"`
Tags []string `yaml:"tags"`
APIVersion string `yaml:"api_version"`
Connectors []ManifestConnector `yaml:"connectors"`
}
type ManifestConnector ¶
type Options ¶
type Options struct {
InstallURL string
ApiURL string
BinaryNeedsAuth bool
RequestHook RequestHook
// User agent name for network requests on the repository at
// InstallURL. "(os/architecture)" will be appended
// implicitly.
UserAgent string
}
type Recipe ¶
type RequestHook ¶
Click to show internal directories.
Click to hide internal directories.