package server
import "github.com/open-policy-agent/opa/server"
Package server contains the policy engine's server handlers.
Index ¶
- Constants
- type AuthenticationScheme
- type AuthorizationScheme
- type Buffer
- type BundleInfo
- type Info
- type Loop
- type Metrics
- type Server
- func New() *Server
- func (s *Server) Addrs() []string
- func (s *Server) DiagnosticAddrs() []string
- func (s *Server) Init(ctx context.Context) (*Server, error)
- func (s *Server) Listeners() ([]Loop, error)
- func (s *Server) Shutdown(ctx context.Context) error
- func (s *Server) WithAddresses(addrs []string) *Server
- func (s *Server) WithAuthentication(scheme AuthenticationScheme) *Server
- func (s *Server) WithAuthorization(scheme AuthorizationScheme) *Server
- func (s *Server) WithCertPool(pool *x509.CertPool) *Server
- func (s *Server) WithCertificate(cert *tls.Certificate) *Server
- func (s *Server) WithCompilerErrorLimit(limit int) *Server
- func (s *Server) WithDecisionIDFactory(f func() string) *Server
- func (s *Server) WithDecisionLogger(logger func(context.Context, *Info)) *Server
- func (s *Server) WithDecisionLoggerWithErr(logger func(context.Context, *Info) error) *Server
- func (s *Server) WithDiagnosticAddresses(addrs []string) *Server
- func (s *Server) WithH2CEnabled(enabled bool) *Server
- func (s *Server) WithManager(manager *plugins.Manager) *Server
- func (s *Server) WithMetrics(m Metrics) *Server
- func (s *Server) WithPprofEnabled(pprofEnabled bool) *Server
- func (s *Server) WithRouter(router *mux.Router) *Server
- func (s *Server) WithRuntime(term *ast.Term) *Server
- func (s *Server) WithStore(store storage.Store) *Server
Constants ¶
const ( PromHandlerV0Data = "v0/data" PromHandlerV1Data = "v1/data" PromHandlerV1Query = "v1/query" PromHandlerV1Policies = "v1/policies" PromHandlerV1Compile = "v1/compile" PromHandlerIndex = "index" PromHandlerCatch = "catchall" PromHandlerHealth = "health" )
Set of handlers for use in the "handler" dimension of the duration metric.
Types ¶
type AuthenticationScheme ¶
type AuthenticationScheme int
AuthenticationScheme enumerates the supported authentication schemes. The authentication scheme determines how client identities are established.
const ( AuthenticationOff AuthenticationScheme = iota AuthenticationToken AuthenticationTLS )
Set of supported authentication schemes.
type AuthorizationScheme ¶
type AuthorizationScheme int
AuthorizationScheme enumerates the supported authorization schemes. The authorization scheme determines how access to OPA is controlled.
const ( AuthorizationOff AuthorizationScheme = iota AuthorizationBasic )
Set of supported authorization schemes.
type Buffer ¶
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)) }
Buffer defines an interface for recording decisions. DEPRECATED. Use Decision Logging instead.
type BundleInfo ¶
type BundleInfo struct { Revision string }
BundleInfo contains information describing a bundle.
type Info ¶
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{} InputAST ast.Value Results *interface{} Error error Metrics metrics.Metrics Trace []*topdown.Event }
Info contains information describing a policy decision.
type Loop ¶
type Loop func() error
Loop will contain all the calls from the server that we'll be listening on.
type Metrics ¶
type Metrics interface { RegisterEndpoints(registrar func(path, method string, handler http.Handler)) InstrumentHandler(handler http.Handler, label string) http.Handler }
Metrics defines the interface that the server requires for recording HTTP handler metrics.
type Server ¶
type Server struct { Handler http.Handler DiagnosticHandler http.Handler // contains filtered or unexported fields }
Server represents an instance of OPA running in server mode.
func New ¶
func New() *Server
New returns a new Server.
func (*Server) Addrs ¶
Addrs returns a list of addresses that the server is listening on. If the server hasn't been started it will not return an address.
func (*Server) DiagnosticAddrs ¶
DiagnosticAddrs returns a list of addresses that the server is listening on for the read-only diagnostic API's (eg /health, /metrics, etc) If the server hasn't been started it will not return an address.
func (*Server) Init ¶
Init initializes the server. This function MUST be called before starting any loops from s.Listeners().
func (*Server) Listeners ¶
Listeners returns functions that listen and serve connections.
func (*Server) Shutdown ¶
Shutdown will attempt to gracefully shutdown each of the http servers currently in use by the OPA Server. If any exceed the deadline specified by the context an error will be returned.
func (*Server) WithAddresses ¶
WithAddresses sets the listening addresses that the server will bind to.
func (*Server) WithAuthentication ¶
func (s *Server) WithAuthentication(scheme AuthenticationScheme) *Server
WithAuthentication sets authentication scheme to use on the server.
func (*Server) WithAuthorization ¶
func (s *Server) WithAuthorization(scheme AuthorizationScheme) *Server
WithAuthorization sets authorization scheme to use on the server.
func (*Server) WithCertPool ¶
WithCertPool sets the server-side cert pool that the server will use.
func (*Server) WithCertificate ¶
func (s *Server) WithCertificate(cert *tls.Certificate) *Server
WithCertificate sets the server-side certificate that the server will use.
func (*Server) WithCompilerErrorLimit ¶
WithCompilerErrorLimit sets the limit on the number of compiler errors the server will allow.
func (*Server) WithDecisionIDFactory ¶
WithDecisionIDFactory sets a function on the server to generate decision IDs.
func (*Server) WithDecisionLogger ¶
WithDecisionLogger sets the decision logger used by the server. DEPRECATED. Use WithDecisionLoggerWithErr instead.
func (*Server) WithDecisionLoggerWithErr ¶
WithDecisionLoggerWithErr sets the decision logger used by the server.
func (*Server) WithDiagnosticAddresses ¶
WithDiagnosticAddresses sets the listening addresses that the server will bind to and *only* serve read-only diagnostic API's.
func (*Server) WithH2CEnabled ¶
WithH2CEnabled sets whether h2c ("HTTP/2 cleartext") is enabled for the http listener
func (*Server) WithManager ¶
WithManager sets the plugins manager used by the server.
func (*Server) WithMetrics ¶
WithMetrics sets the metrics provider used by the server.
func (*Server) WithPprofEnabled ¶
WithPprofEnabled sets whether pprof endpoints are enabled
func (*Server) WithRouter ¶
WithRouter sets the mux.Router to attach OPA's HTTP API routes onto. If a router is not supplied, the server will create it's own.
func (*Server) WithRuntime ¶
WithRuntime sets the runtime data to provide to the evaluation engine.
func (*Server) WithStore ¶
WithStore sets the storage used by the server.
Source Files ¶
buffer.go cache.go doc.go server.go
Directories ¶
Path | Synopsis |
---|---|
server/authorizer | Package authorizer provides authorization handlers to the server. |
server/identifier | Package identifier provides handlers for associating an identity with incoming requests. |
server/types | Package types contains request/response types and codes for the server. |
server/writer | Package writer contains utilities for writing responses in the server. |
- Version
- v0.27.1
- Published
- Mar 12, 2021
- Platform
- js/wasm
- Imports
- 38 packages
- Last checked
- 2 minutes ago –
Tools for package owners.