vault: Index | Files

package cachememdb

import ""


Package Files

cache_memdb.go index.go


const (
    // IndexNameID is the ID of the index constructed from the serialized request.
    IndexNameID = "id"

    // IndexNameLease is the lease of the index.
    IndexNameLease = "lease"

    // IndexNameRequestPath is the request path of the index.
    IndexNameRequestPath = "request_path"

    // IndexNameToken is the token of the index.
    IndexNameToken = "token"

    // IndexNameTokenAccessor is the token accessor of the index.
    IndexNameTokenAccessor = "token_accessor"

    // IndexNameTokenParent is the token parent of the index.
    IndexNameTokenParent = "token_parent"

    // IndexNameLeaseToken is the token that created the lease.
    IndexNameLeaseToken = "lease_token"

type CacheMemDB Uses

type CacheMemDB struct {
    // contains filtered or unexported fields

CacheMemDB is the underlying cache database for storing indexes.

func New Uses

func New() (*CacheMemDB, error)

New creates a new instance of CacheMemDB.

func (*CacheMemDB) Evict Uses

func (c *CacheMemDB) Evict(indexName string, indexValues ...interface{}) error

Evict removes an index from the cache based on index name and value.

func (*CacheMemDB) Flush Uses

func (c *CacheMemDB) Flush() error

Flush resets the underlying cache object.

func (*CacheMemDB) Get Uses

func (c *CacheMemDB) Get(indexName string, indexValues ...interface{}) (*Index, error)

Get returns the index based on the indexer and the index values provided.

func (*CacheMemDB) GetByPrefix Uses

func (c *CacheMemDB) GetByPrefix(indexName string, indexValues ...interface{}) ([]*Index, error)

GetByPrefix returns all the cached indexes based on the index name and the value prefix.

func (*CacheMemDB) Set Uses

func (c *CacheMemDB) Set(index *Index) error

Set stores the index into the cache.

type ContextInfo Uses

type ContextInfo struct {
    Ctx        context.Context
    CancelFunc context.CancelFunc
    DoneCh     chan struct{}

func NewContextInfo Uses

func NewContextInfo(ctx context.Context) *ContextInfo

type Index Uses

type Index struct {
    // ID is a value that uniquely represents the request held by this
    // index. This is computed by serializing and hashing the response object.
    // Required: true, Unique: true
    ID  string

    // Token is the token that fetched the response held by this index
    // Required: true, Unique: true
    Token string

    // TokenParent is the parent token of the token held by this index
    // Required: false, Unique: false
    TokenParent string

    // TokenAccessor is the accessor of the token being cached in this index
    // Required: true, Unique: true
    TokenAccessor string

    // Namespace is the namespace that was provided in the request path as the
    // Vault namespace to query
    Namespace string

    // RequestPath is the path of the request that resulted in the response
    // held by this index.
    // Required: true, Unique: false
    RequestPath string

    // Lease is the identifier of the lease in Vault, that belongs to the
    // response held by this index.
    // Required: false, Unique: true
    Lease string

    // LeaseToken is the identifier of the token that created the lease held by
    // this index.
    // Required: false, Unique: false
    LeaseToken string

    // Response is the serialized response object that the agent is caching.
    Response []byte

    // RenewCtxInfo holds the context and the corresponding cancel func for the
    // goroutine that manages the renewal of the secret belonging to the
    // response in this index.
    RenewCtxInfo *ContextInfo

Index holds the response to be cached along with multiple other values that serve as pointers to refer back to this index.

type IndexName Uses

type IndexName uint32

Package cachememdb imports 5 packages (graph) and is imported by 1 packages. Updated 2019-06-09. Refresh now. Tools for package owners.