Files
releases/runtime/runtime.go
Johan Fylling a179a24c48 v1 API
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>
2024-12-12 15:27:34 +01:00

41 lines
1.3 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 runtime
import (
"context"
"github.com/open-policy-agent/opa/plugins"
v1 "github.com/open-policy-agent/opa/v1/runtime"
)
// RegisterPlugin registers a plugin factory with the runtime
// package. When the runtime is created, the factories are used to parse
// plugin configuration and instantiate plugins. If no configuration is
// provided, plugins are not instantiated. This function is idempotent.
func RegisterPlugin(name string, factory plugins.Factory) {
v1.RegisterPlugin(name, factory)
}
// Params stores the configuration for an OPA instance.
type Params = v1.Params
// LoggingConfig stores the configuration for OPA's logging behaviour.
type LoggingConfig = v1.LoggingConfig
// NewParams returns a new Params object.
func NewParams() Params {
return v1.NewParams()
}
// Runtime represents a single OPA instance.
type Runtime = v1.Runtime
// NewRuntime returns a new Runtime object initialized with params. Clients must
// call StartServer() or StartREPL() to start the runtime in either mode.
func NewRuntime(ctx context.Context, params Params) (*Runtime, error) {
return v1.NewRuntime(ctx, params)
}