mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-12 19:32:48 -06:00
e03ac2f200
- Bump golangci-lint -> 2.6.2 - Fix all `deprecatedComment` "notices should be in a dedicated paragraph, separated from the rest" reports - Enable `appendCombine` and fix all "appendCombine: can combine chain of X appends into one" notices - Enable `preferFprint` and fix the few reported issues - Fix various issues reported only once or twice, like `zeroByteRepeat` Signed-off-by: Anders Eknert <anders.eknert@apple.com>
247 lines
9.0 KiB
Go
247 lines
9.0 KiB
Go
// Copyright 2016 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 types contains request/response types and codes for the server.
|
|
package types
|
|
|
|
import (
|
|
"github.com/open-policy-agent/opa/ast"
|
|
"github.com/open-policy-agent/opa/topdown"
|
|
v1 "github.com/open-policy-agent/opa/v1/server/types"
|
|
)
|
|
|
|
// Error codes returned by OPA's REST API.
|
|
const (
|
|
CodeInternal = v1.CodeInternal
|
|
CodeEvaluation = v1.CodeEvaluation
|
|
CodeUnauthorized = v1.CodeUnauthorized
|
|
CodeInvalidParameter = v1.CodeInvalidParameter
|
|
CodeInvalidOperation = v1.CodeInvalidOperation
|
|
CodeResourceNotFound = v1.CodeResourceNotFound
|
|
CodeResourceConflict = v1.CodeResourceConflict
|
|
CodeUndefinedDocument = v1.CodeUndefinedDocument
|
|
)
|
|
|
|
// ErrorV1 models an error response sent to the client.
|
|
type ErrorV1 = v1.ErrorV1
|
|
|
|
// NewErrorV1 returns a new ErrorV1 object.
|
|
func NewErrorV1(code, f string, a ...any) *ErrorV1 {
|
|
return v1.NewErrorV1(code, f, a...)
|
|
}
|
|
|
|
// Messages included in error responses.
|
|
const (
|
|
MsgCompileModuleError = v1.MsgCompileModuleError
|
|
MsgParseQueryError = v1.MsgParseQueryError
|
|
MsgCompileQueryError = v1.MsgCompileQueryError
|
|
MsgEvaluationError = v1.MsgEvaluationError
|
|
MsgUnauthorizedUndefinedError = v1.MsgUnauthorizedUndefinedError
|
|
MsgUnauthorizedError = v1.MsgUnauthorizedError
|
|
MsgUndefinedError = v1.MsgUndefinedError
|
|
MsgMissingError = v1.MsgMissingError
|
|
MsgFoundUndefinedError = v1.MsgFoundUndefinedError
|
|
MsgPluginConfigError = v1.MsgPluginConfigError
|
|
MsgDecodingLimitError = v1.MsgDecodingLimitError
|
|
MsgDecodingGzipLimitError = v1.MsgDecodingGzipLimitError
|
|
)
|
|
|
|
// PatchV1 models a single patch operation against a document.
|
|
type PatchV1 = v1.PatchV1
|
|
|
|
// PolicyListResponseV1 models the response message for the Policy API list operation.
|
|
type PolicyListResponseV1 = v1.PolicyListResponseV1
|
|
|
|
// PolicyGetResponseV1 models the response message for the Policy API get operation.
|
|
type PolicyGetResponseV1 = v1.PolicyGetResponseV1
|
|
|
|
// PolicyPutResponseV1 models the response message for the Policy API put operation.
|
|
type PolicyPutResponseV1 = v1.PolicyPutResponseV1
|
|
|
|
// PolicyDeleteResponseV1 models the response message for the Policy API delete operation.
|
|
type PolicyDeleteResponseV1 = v1.PolicyDeleteResponseV1
|
|
|
|
// PolicyV1 models a policy module in OPA.
|
|
type PolicyV1 = v1.PolicyV1
|
|
|
|
// ProvenanceV1 models a collection of build/version information.
|
|
type ProvenanceV1 = v1.ProvenanceV1
|
|
|
|
// ProvenanceBundleV1 models a bundle at some point in time
|
|
type ProvenanceBundleV1 = v1.ProvenanceBundleV1
|
|
|
|
// DataRequestV1 models the request message for Data API POST operations.
|
|
type DataRequestV1 = v1.DataRequestV1
|
|
|
|
// DataResponseV1 models the response message for Data API read operations.
|
|
type DataResponseV1 = v1.DataResponseV1
|
|
|
|
// Warning models DataResponse warnings
|
|
type Warning = v1.Warning
|
|
|
|
// Warning Codes
|
|
const CodeAPIUsageWarn = v1.CodeAPIUsageWarn
|
|
|
|
// Warning Messages
|
|
const MsgInputKeyMissing = v1.MsgInputKeyMissing
|
|
|
|
// NewWarning returns a new Warning object
|
|
func NewWarning(code, message string) *Warning {
|
|
return v1.NewWarning(code, message)
|
|
}
|
|
|
|
// MetricsV1 models a collection of performance metrics.
|
|
type MetricsV1 = v1.MetricsV1
|
|
|
|
// QueryResponseV1 models the response message for Query API operations.
|
|
type QueryResponseV1 = v1.QueryResponseV1
|
|
|
|
// AdhocQueryResultSetV1 models the result of a Query API query.
|
|
type AdhocQueryResultSetV1 = v1.AdhocQueryResultSetV1
|
|
|
|
// ExplainModeV1 defines supported values for the "explain" query parameter.
|
|
type ExplainModeV1 = v1.ExplainModeV1
|
|
|
|
// Explanation mode enumeration.
|
|
const (
|
|
ExplainOffV1 ExplainModeV1 = v1.ExplainOffV1
|
|
ExplainFullV1 ExplainModeV1 = v1.ExplainFullV1
|
|
ExplainNotesV1 ExplainModeV1 = v1.ExplainNotesV1
|
|
ExplainFailsV1 ExplainModeV1 = v1.ExplainFailsV1
|
|
ExplainDebugV1 ExplainModeV1 = v1.ExplainDebugV1
|
|
)
|
|
|
|
// TraceV1 models the trace result returned for queries that include the
|
|
// "explain" parameter.
|
|
type TraceV1 = v1.TraceV1
|
|
|
|
// TraceV1Raw models the trace result returned for queries that include the
|
|
// "explain" parameter. The trace is modelled as series of trace events that
|
|
// identify the expression, local term bindings, query hierarchy, etc.
|
|
type TraceV1Raw = v1.TraceV1Raw
|
|
|
|
// TraceV1Pretty models the trace result returned for queries that include the "explain"
|
|
// parameter. The trace is modelled as a human readable array of strings representing the
|
|
// evaluation of the query.
|
|
type TraceV1Pretty = v1.TraceV1Pretty
|
|
|
|
// NewTraceV1 returns a new TraceV1 object.
|
|
func NewTraceV1(trace []*topdown.Event, pretty bool) (result TraceV1, err error) {
|
|
return v1.NewTraceV1(trace, pretty)
|
|
}
|
|
|
|
// TraceEventV1 represents a step in the query evaluation process.
|
|
type TraceEventV1 = v1.TraceEventV1
|
|
|
|
// BindingsV1 represents a set of term bindings.
|
|
type BindingsV1 = v1.BindingsV1
|
|
|
|
// BindingV1 represents a single term binding.
|
|
type BindingV1 = v1.BindingV1
|
|
|
|
// NewBindingsV1 returns a new BindingsV1 object.
|
|
func NewBindingsV1(locals *ast.ValueMap) (result []*BindingV1) {
|
|
return v1.NewBindingsV1(locals)
|
|
}
|
|
|
|
// CompileRequestV1 models the request message for Compile API operations.
|
|
type CompileRequestV1 = v1.CompileRequestV1
|
|
|
|
// CompileResponseV1 models the response message for Compile API operations.
|
|
type CompileResponseV1 = v1.CompileResponseV1
|
|
|
|
// PartialEvaluationResultV1 represents the output of partial evaluation and is
|
|
// included in Compile API responses.
|
|
type PartialEvaluationResultV1 = v1.PartialEvaluationResultV1
|
|
|
|
// QueryRequestV1 models the request message for Query API operations.
|
|
type QueryRequestV1 = v1.QueryRequestV1
|
|
|
|
// ConfigResponseV1 models the response message for Config API operations.
|
|
type ConfigResponseV1 = v1.ConfigResponseV1
|
|
|
|
// StatusResponseV1 models the response message for Status API (pull) operations.
|
|
type StatusResponseV1 = v1.StatusResponseV1
|
|
|
|
// HealthResponseV1 models the response message for Health API operations.
|
|
type HealthResponseV1 = v1.HealthResponseV1
|
|
|
|
const (
|
|
// ParamQueryV1 defines the name of the HTTP URL parameter that specifies
|
|
// values for the request query.
|
|
ParamQueryV1 = v1.ParamQueryV1
|
|
|
|
// ParamInputV1 defines the name of the HTTP URL parameter that specifies
|
|
// values for the "input" document.
|
|
ParamInputV1 = v1.ParamInputV1
|
|
|
|
// ParamPrettyV1 defines the name of the HTTP URL parameter that indicates
|
|
// the client wants to receive a pretty-printed version of the response.
|
|
ParamPrettyV1 = v1.ParamPrettyV1
|
|
|
|
// ParamExplainV1 defines the name of the HTTP URL parameter that indicates the
|
|
// client wants to receive explanations in addition to the result.
|
|
ParamExplainV1 = v1.ParamExplainV1
|
|
|
|
// ParamMetricsV1 defines the name of the HTTP URL parameter that indicates
|
|
// the client wants to receive performance metrics in addition to the
|
|
// result.
|
|
ParamMetricsV1 = v1.ParamMetricsV1
|
|
|
|
// ParamInstrumentV1 defines the name of the HTTP URL parameter that
|
|
// indicates the client wants to receive instrumentation data for
|
|
// diagnosing performance issues.
|
|
ParamInstrumentV1 = v1.ParamInstrumentV1
|
|
|
|
// ParamProvenanceV1 defines the name of the HTTP URL parameter that indicates
|
|
// the client wants build and version information in addition to the result.
|
|
ParamProvenanceV1 = v1.ParamProvenanceV1
|
|
|
|
// ParamBundleActivationV1 defines the name of the HTTP URL parameter that
|
|
// indicates the client wants to include bundle activation in the results
|
|
// of the health API.
|
|
//
|
|
// Deprecated: Use ParamBundlesActivationV1 instead.
|
|
ParamBundleActivationV1 = v1.ParamBundleActivationV1
|
|
|
|
// ParamBundlesActivationV1 defines the name of the HTTP URL parameter that
|
|
// indicates the client wants to include bundle activation in the results
|
|
// of the health API.
|
|
ParamBundlesActivationV1 = v1.ParamBundlesActivationV1
|
|
|
|
// ParamPluginsV1 defines the name of the HTTP URL parameter that
|
|
// indicates the client wants to include bundle status in the results
|
|
// of the health API.
|
|
ParamPluginsV1 = v1.ParamPluginsV1
|
|
|
|
// ParamExcludePluginV1 defines the name of the HTTP URL parameter that
|
|
// indicates the client wants to exclude plugin status in the results
|
|
// of the health API for the specified plugin(s)
|
|
ParamExcludePluginV1 = v1.ParamExcludePluginV1
|
|
|
|
// ParamStrictBuiltinErrors names the HTTP URL parameter that indicates the client
|
|
// wants built-in function errors to be treated as fatal.
|
|
ParamStrictBuiltinErrors = v1.ParamStrictBuiltinErrors
|
|
)
|
|
|
|
// BadRequestErr represents an error condition raised if the caller passes
|
|
// invalid parameters.
|
|
type BadRequestErr = v1.BadRequestErr
|
|
|
|
// BadPatchOperationErr returns BadRequestErr indicating the patch operation was
|
|
// invalid.
|
|
func BadPatchOperationErr(op string) error {
|
|
return v1.BadPatchOperationErr(op)
|
|
}
|
|
|
|
// BadPatchPathErr returns BadRequestErr indicating the patch path was invalid.
|
|
func BadPatchPathErr(path string) error {
|
|
return v1.BadPatchPathErr(path)
|
|
}
|
|
|
|
// IsBadRequest returns true if err is a BadRequestErr.
|
|
func IsBadRequest(err error) bool {
|
|
return v1.IsBadRequest(err)
|
|
}
|