mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-13 03:42:35 -06:00
a179a24c48
All packages, except for `cmd` and `internal`, have been moved into a new `v1` root package. Old packages are kept for backwards-compatibility reasons. All contained code is replaced with simple type aliases and proxy functions to `v1` implementations. Old packages default to the Rego v0 syntax, new `v1` packages default to the Rego v1 syntax. Signed-off-by: Johan Fylling <johan.dev@fylling.se>
65 lines
2.7 KiB
Go
65 lines
2.7 KiB
Go
// Copyright 2020 The OPA Authors. All rights reserved.
|
|
// Use of this source code is governed by an Apache2
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Package cache defines the inter-query cache interface that can cache data across queries
|
|
package cache
|
|
|
|
import (
|
|
"context"
|
|
|
|
v1 "github.com/open-policy-agent/opa/v1/topdown/cache"
|
|
)
|
|
|
|
// Config represents the configuration for the inter-query builtin cache.
|
|
type Config = v1.Config
|
|
|
|
// InterQueryBuiltinValueCacheConfig represents the configuration of the inter-query value cache that built-in functions can utilize.
|
|
// MaxNumEntries - max number of cache entries
|
|
type InterQueryBuiltinValueCacheConfig = v1.InterQueryBuiltinValueCacheConfig
|
|
|
|
// InterQueryBuiltinCacheConfig represents the configuration of the inter-query cache that built-in functions can utilize.
|
|
// MaxSizeBytes - max capacity of cache in bytes
|
|
// ForcedEvictionThresholdPercentage - capacity usage in percentage after which forced FIFO eviction starts
|
|
// StaleEntryEvictionPeriodSeconds - time period between end of previous and start of new stale entry eviction routine
|
|
type InterQueryBuiltinCacheConfig = v1.InterQueryBuiltinCacheConfig
|
|
|
|
// ParseCachingConfig returns the config for the inter-query cache.
|
|
func ParseCachingConfig(raw []byte) (*Config, error) {
|
|
return v1.ParseCachingConfig(raw)
|
|
}
|
|
|
|
// InterQueryCacheValue defines the interface for the data that the inter-query cache holds.
|
|
type InterQueryCacheValue = v1.InterQueryCacheValue
|
|
|
|
// InterQueryCache defines the interface for the inter-query cache.
|
|
type InterQueryCache = v1.InterQueryCache
|
|
|
|
// NewInterQueryCache returns a new inter-query cache.
|
|
// The cache uses a FIFO eviction policy when it reaches the forced eviction threshold.
|
|
// Parameters:
|
|
//
|
|
// config - to configure the InterQueryCache
|
|
func NewInterQueryCache(config *Config) InterQueryCache {
|
|
return v1.NewInterQueryCache(config)
|
|
}
|
|
|
|
// NewInterQueryCacheWithContext returns a new inter-query cache with context.
|
|
// The cache uses a combination of FIFO eviction policy when it reaches the forced eviction threshold
|
|
// and a periodic cleanup routine to remove stale entries that exceed their expiration time, if specified.
|
|
// If configured with a zero stale_entry_eviction_period_seconds value, the stale entry cleanup routine is disabled.
|
|
//
|
|
// Parameters:
|
|
//
|
|
// ctx - used to control lifecycle of the stale entry cleanup routine
|
|
// config - to configure the InterQueryCache
|
|
func NewInterQueryCacheWithContext(ctx context.Context, config *Config) InterQueryCache {
|
|
return v1.NewInterQueryCacheWithContext(ctx, config)
|
|
}
|
|
|
|
type InterQueryValueCache = v1.InterQueryValueCache
|
|
|
|
func NewInterQueryValueCache(ctx context.Context, config *Config) InterQueryValueCache {
|
|
return v1.NewInterQueryValueCache(ctx, config)
|
|
}
|