vault: github.com/hashicorp/vault/sdk/plugin Index | Files | Directories

package plugin

import "github.com/hashicorp/vault/sdk/plugin"

Index

Package Files

backend.go grpc_backend.go grpc_backend_client.go grpc_backend_server.go grpc_storage.go grpc_system.go logger.go middleware.go plugin.go serve.go

Constants

const BackendPluginName = "backend"

BackendPluginName is the name of the plugin that can be dispensed from the plugin server.

Variables

var ErrClientInMetadataMode = errors.New("plugin client can not perform action while in metadata mode")
var ErrPluginShutdown = errors.New("plugin is shut down")
var ErrServerInMetadataMode = errors.New("plugin server can not perform action while in metadata mode")

func NewBackend Uses

func NewBackend(ctx context.Context, pluginName string, pluginType consts.PluginType, sys pluginutil.LookRunnerUtil, conf *logical.BackendConfig, isMetadataMode bool) (logical.Backend, error)

NewBackend will return an instance of an RPC-based client implementation of the backend for external plugins, or a concrete implementation of the backend if it is a builtin backend. The backend is returned as a logical.Backend interface. The isMetadataMode param determines whether the plugin should run in metadata mode.

func NewPluginClient Uses

func NewPluginClient(ctx context.Context, sys pluginutil.RunnerUtil, pluginRunner *pluginutil.PluginRunner, logger log.Logger, isMetadataMode bool) (logical.Backend, error)

func Serve Uses

func Serve(opts *ServeOpts) error

Serve is a helper function used to serve a backend plugin. This should be ran on the plugin's main process.

type BackendPluginClient Uses

type BackendPluginClient struct {
    sync.Mutex

    logical.Backend
    // contains filtered or unexported fields
}

BackendPluginClient is a wrapper around backendPluginClient that also contains its plugin.Client instance. It's primarily used to cleanly kill the client on Cleanup()

func (*BackendPluginClient) Cleanup Uses

func (b *BackendPluginClient) Cleanup(ctx context.Context)

Cleanup calls the RPC client's Cleanup() func and also calls the go-plugin's client Kill() func

type GRPCBackendPlugin Uses

type GRPCBackendPlugin struct {
    Factory      logical.Factory
    MetadataMode bool
    Logger       log.Logger

    // Embeding this will disable the netRPC protocol
    plugin.NetRPCUnsupportedPlugin
}

GRPCBackendPlugin is the plugin.Plugin implementation that only supports GRPC transport

func (*GRPCBackendPlugin) GRPCClient Uses

func (b *GRPCBackendPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)

func (GRPCBackendPlugin) GRPCServer Uses

func (b GRPCBackendPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error

type GRPCStorageClient Uses

type GRPCStorageClient struct {
    // contains filtered or unexported fields
}

GRPCStorageClient is an implementation of logical.Storage that communicates over RPC.

func (*GRPCStorageClient) Delete Uses

func (s *GRPCStorageClient) Delete(ctx context.Context, key string) error

func (*GRPCStorageClient) Get Uses

func (s *GRPCStorageClient) Get(ctx context.Context, key string) (*logical.StorageEntry, error)

func (*GRPCStorageClient) List Uses

func (s *GRPCStorageClient) List(ctx context.Context, prefix string) ([]string, error)

func (*GRPCStorageClient) Put Uses

func (s *GRPCStorageClient) Put(ctx context.Context, entry *logical.StorageEntry) error

type GRPCStorageServer Uses

type GRPCStorageServer struct {
    // contains filtered or unexported fields
}

StorageServer is a net/rpc compatible structure for serving

func (*GRPCStorageServer) Delete Uses

func (s *GRPCStorageServer) Delete(ctx context.Context, args *pb.StorageDeleteArgs) (*pb.StorageDeleteReply, error)

func (*GRPCStorageServer) Get Uses

func (s *GRPCStorageServer) Get(ctx context.Context, args *pb.StorageGetArgs) (*pb.StorageGetReply, error)

func (*GRPCStorageServer) List Uses

func (s *GRPCStorageServer) List(ctx context.Context, args *pb.StorageListArgs) (*pb.StorageListReply, error)

func (*GRPCStorageServer) Put Uses

func (s *GRPCStorageServer) Put(ctx context.Context, args *pb.StoragePutArgs) (*pb.StoragePutReply, error)

type LoggerArgs Uses

type LoggerArgs struct {
    Level int
    Msg   string
    Args  []interface{}
}

type LoggerReply Uses

type LoggerReply struct {
    IsTrue bool
    Error  error
}

LoggerReply contains the RPC reply. Not all fields may be used for a particular RPC call.

type LoggerServer Uses

type LoggerServer struct {
    // contains filtered or unexported fields
}

func (*LoggerServer) Debug Uses

func (l *LoggerServer) Debug(args *LoggerArgs, _ *struct{}) error

func (*LoggerServer) Error Uses

func (l *LoggerServer) Error(args *LoggerArgs, reply *LoggerReply) error

func (*LoggerServer) Info Uses

func (l *LoggerServer) Info(args *LoggerArgs, _ *struct{}) error

func (*LoggerServer) IsDebug Uses

func (l *LoggerServer) IsDebug(args interface{}, reply *LoggerReply) error

func (*LoggerServer) IsInfo Uses

func (l *LoggerServer) IsInfo(args interface{}, reply *LoggerReply) error

func (*LoggerServer) IsTrace Uses

func (l *LoggerServer) IsTrace(args interface{}, reply *LoggerReply) error

func (*LoggerServer) IsWarn Uses

func (l *LoggerServer) IsWarn(args interface{}, reply *LoggerReply) error

func (*LoggerServer) Log Uses

func (l *LoggerServer) Log(args *LoggerArgs, _ *struct{}) error

func (*LoggerServer) SetLevel Uses

func (l *LoggerServer) SetLevel(args int, _ *struct{}) error

func (*LoggerServer) Trace Uses

func (l *LoggerServer) Trace(args *LoggerArgs, _ *struct{}) error

func (*LoggerServer) Warn Uses

func (l *LoggerServer) Warn(args *LoggerArgs, reply *LoggerReply) error

type NOOPStorage Uses

type NOOPStorage struct{}

NOOPStorage is used to deny access to the storage interface while running a backend plugin in metadata mode.

func (*NOOPStorage) Delete Uses

func (s *NOOPStorage) Delete(_ context.Context, key string) error

func (*NOOPStorage) Get Uses

func (s *NOOPStorage) Get(_ context.Context, key string) (*logical.StorageEntry, error)

func (*NOOPStorage) List Uses

func (s *NOOPStorage) List(_ context.Context, prefix string) ([]string, error)

func (*NOOPStorage) Put Uses

func (s *NOOPStorage) Put(_ context.Context, entry *logical.StorageEntry) error

type ServeOpts Uses

type ServeOpts struct {
    BackendFactoryFunc logical.Factory
    TLSProviderFunc    TLSProviderFunc
    Logger             log.Logger
}

type TLSProviderFunc Uses

type TLSProviderFunc func() (*tls.Config, error)

Directories

PathSynopsis
mock
pb

Package plugin imports 22 packages (graph) and is imported by 5 packages. Updated 2019-07-22. Refresh now. Tools for package owners.