// Copyright 2017 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 server import ( "time" "github.com/open-policy-agent/opa/metrics" "github.com/open-policy-agent/opa/storage" "github.com/open-policy-agent/opa/topdown" ) // Buffer defines an interface for recording decisions. // DEPRECATED. Use Decision Logging instead. type Buffer interface { // Push adds the given Info into the buffer. Push(*Info) // Iter iterates over the buffer, from oldest present Info to newest. It should // call fn on each Info. Iter(fn func(*Info)) } // Info contains information describing a policy decision. type Info struct { Txn storage.Transaction Revision string // Deprecated: Use `Bundles` instead Bundles map[string]BundleInfo DecisionID string RemoteAddr string Query string Path string Timestamp time.Time Input *interface{} Results *interface{} Error error Metrics metrics.Metrics Trace []*topdown.Event } // BundleInfo contains information describing a bundle type BundleInfo struct { Revision string }