package download
import "github.com/open-policy-agent/opa/v1/download"
Package download implements low-level OPA bundle downloading.
Index ¶
- type Config
- type Downloader
- func New(config Config, client rest.Client, path string) *Downloader
- func (d *Downloader) ClearCache()
- func (d *Downloader) SetCache(etag string)
- func (d *Downloader) Start(ctx context.Context)
- func (d *Downloader) Stop(context.Context)
- func (d *Downloader) Trigger(ctx context.Context) error
- func (d *Downloader) WithBundleName(bundleName string) *Downloader
- func (d *Downloader) WithBundleParserOpts(opts ast.ParserOptions) *Downloader
- func (d *Downloader) WithBundlePersistence(persist bool) *Downloader
- func (d *Downloader) WithBundleVerificationConfig(config *bundle.VerificationConfig) *Downloader
- func (d *Downloader) WithCallback(f func(context.Context, Update)) *Downloader
- func (d *Downloader) WithLazyLoadingMode(yes bool) *Downloader
- func (d *Downloader) WithLogAttrs(attrs map[string]interface{}) *Downloader
- func (d *Downloader) WithSizeLimitBytes(n int64) *Downloader
- type HTTPError
- type OCIDownloader
- func NewOCI(config Config, client rest.Client, path, storePath string) *OCIDownloader
- func (*OCIDownloader) ClearCache()
- func (d *OCIDownloader) SetCache(etag string)
- func (d *OCIDownloader) Start(ctx context.Context)
- func (d *OCIDownloader) Stop(context.Context)
- func (d *OCIDownloader) Trigger(ctx context.Context) error
- func (d *OCIDownloader) WithBundleParserOpts(opts ast.ParserOptions) *OCIDownloader
- func (d *OCIDownloader) WithBundlePersistence(persist bool) *OCIDownloader
- func (d *OCIDownloader) WithBundleVerificationConfig(config *bundle.VerificationConfig) *OCIDownloader
- func (d *OCIDownloader) WithCallback(f func(context.Context, Update)) *OCIDownloader
- func (d *OCIDownloader) WithLogAttrs(attrs map[string]interface{}) *OCIDownloader
- func (d *OCIDownloader) WithSizeLimitBytes(n int64) *OCIDownloader
- type PollingConfig
- type Update
Types ¶
type Config ¶
type Config struct { Trigger *plugins.TriggerMode `json:"trigger,omitempty"` Polling PollingConfig `json:"polling"` }
Config represents the configuration for the downloader.
func (*Config) ValidateAndInjectDefaults ¶
ValidateAndInjectDefaults checks for configuration errors and ensures all values are set on the Config object.
type Downloader ¶
type Downloader struct {
// contains filtered or unexported fields
}
Downloader implements low-level OPA bundle downloading. Downloader can be started and stopped. After starting, the downloader will request bundle updates from the remote HTTP endpoint that the client is configured to connect to.
func New ¶
func New(config Config, client rest.Client, path string) *Downloader
New returns a new Downloader that can be started.
func (*Downloader) ClearCache ¶
func (d *Downloader) ClearCache()
ClearCache is deprecated. Use SetCache instead.
func (*Downloader) SetCache ¶
func (d *Downloader) SetCache(etag string)
SetCache sets the given etag value on the downloader.
func (*Downloader) Start ¶
func (d *Downloader) Start(ctx context.Context)
Start tells the Downloader to begin downloading bundles.
func (*Downloader) Stop ¶
func (d *Downloader) Stop(context.Context)
Stop tells the Downloader to stop downloading bundles.
func (*Downloader) Trigger ¶
func (d *Downloader) Trigger(ctx context.Context) error
Trigger can be used to control when the downloader attempts to download a new bundle in manual triggering mode.
func (*Downloader) WithBundleName ¶
func (d *Downloader) WithBundleName(bundleName string) *Downloader
WithBundleName specifies the name of the downloaded bundle.
func (*Downloader) WithBundleParserOpts ¶
func (d *Downloader) WithBundleParserOpts(opts ast.ParserOptions) *Downloader
WithBundleParserOpts specifies the parser options to use when parsing downloaded bundles.
func (*Downloader) WithBundlePersistence ¶
func (d *Downloader) WithBundlePersistence(persist bool) *Downloader
WithBundlePersistence specifies if the downloaded bundle will eventually be persisted to disk.
func (*Downloader) WithBundleVerificationConfig ¶
func (d *Downloader) WithBundleVerificationConfig(config *bundle.VerificationConfig) *Downloader
WithBundleVerificationConfig sets the key configuration used to verify a signed bundle
func (*Downloader) WithCallback ¶
func (d *Downloader) WithCallback(f func(context.Context, Update)) *Downloader
WithCallback registers a function f to be called when download updates occur.
func (*Downloader) WithLazyLoadingMode ¶
func (d *Downloader) WithLazyLoadingMode(yes bool) *Downloader
WithLazyLoadingMode specifies how the downloaded bundle should be read. If true, data files in the bundle will not be deserialized and the check to validate that the bundle data does not contain paths outside the bundle's roots will not be performed while reading the bundle.
func (*Downloader) WithLogAttrs ¶
func (d *Downloader) WithLogAttrs(attrs map[string]interface{}) *Downloader
WithLogAttrs sets an optional set of key/value pair attributes to include in log messages emitted by the downloader.
func (*Downloader) WithSizeLimitBytes ¶
func (d *Downloader) WithSizeLimitBytes(n int64) *Downloader
WithSizeLimitBytes sets the file size limit for bundles read by this downloader.
type HTTPError ¶
type HTTPError struct { StatusCode int }
func (HTTPError) Error ¶
type OCIDownloader ¶
type OCIDownloader struct {
// contains filtered or unexported fields
}
func NewOCI ¶
func NewOCI(config Config, client rest.Client, path, storePath string) *OCIDownloader
NewOCI returns a new Downloader that can be started.
func (*OCIDownloader) ClearCache ¶
func (*OCIDownloader) ClearCache()
ClearCache is deprecated. Use SetCache instead.
func (*OCIDownloader) SetCache ¶
func (d *OCIDownloader) SetCache(etag string)
SetCache sets the etag value to the SHA of the loaded bundle
func (*OCIDownloader) Start ¶
func (d *OCIDownloader) Start(ctx context.Context)
Start tells the Downloader to begin downloading bundles.
func (*OCIDownloader) Stop ¶
func (d *OCIDownloader) Stop(context.Context)
Stop tells the Downloader to stop downloading bundles.
func (*OCIDownloader) Trigger ¶
func (d *OCIDownloader) Trigger(ctx context.Context) error
Trigger can be used to control when the downloader attempts to download a new bundle in manual triggering mode.
func (*OCIDownloader) WithBundleParserOpts ¶
func (d *OCIDownloader) WithBundleParserOpts(opts ast.ParserOptions) *OCIDownloader
WithBundleParserOpts specifies the parser options to use when parsing downloaded bundles.
func (*OCIDownloader) WithBundlePersistence ¶
func (d *OCIDownloader) WithBundlePersistence(persist bool) *OCIDownloader
WithBundlePersistence specifies if the downloaded bundle will eventually be persisted to disk.
func (*OCIDownloader) WithBundleVerificationConfig ¶
func (d *OCIDownloader) WithBundleVerificationConfig(config *bundle.VerificationConfig) *OCIDownloader
WithBundleVerificationConfig sets the key configuration used to verify a signed bundle
func (*OCIDownloader) WithCallback ¶
func (d *OCIDownloader) WithCallback(f func(context.Context, Update)) *OCIDownloader
WithCallback registers a function f to be called when download updates occur.
func (*OCIDownloader) WithLogAttrs ¶
func (d *OCIDownloader) WithLogAttrs(attrs map[string]interface{}) *OCIDownloader
WithLogAttrs sets an optional set of key/value pair attributes to include in log messages emitted by the downloader.
func (*OCIDownloader) WithSizeLimitBytes ¶
func (d *OCIDownloader) WithSizeLimitBytes(n int64) *OCIDownloader
WithSizeLimitBytes sets the file size limit for bundles read by this downloader.
type PollingConfig ¶
type PollingConfig struct { MinDelaySeconds *int64 `json:"min_delay_seconds,omitempty"` // min amount of time to wait between successful poll attempts MaxDelaySeconds *int64 `json:"max_delay_seconds,omitempty"` // max amount of time to wait between poll attempts LongPollingTimeoutSeconds *int64 `json:"long_polling_timeout_seconds,omitempty"` // max amount of time the server should wait before issuing a timeout if there's no update available }
PollingConfig represents polling configuration for the downloader.
type Update ¶
type Update struct { ETag string Bundle *bundle.Bundle Error error Metrics metrics.Metrics Raw io.Reader Size int }
Update contains the result of a download. If an error occurred, the Error field will be non-nil. If a new bundle is available, the Bundle field will be non-nil.
Source Files ¶
config.go download.go oci_download.go oci_downloader.go
- Version
- v1.4.2 (latest)
- Published
- May 2, 2025
- Platform
- linux/amd64
- Imports
- 29 packages
- Last checked
- 3 weeks ago –
Tools for package owners.