target

package
v0.7.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 19, 2021 License: MPL-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultTargetHostSetTableName = "target_host_set"
)

Variables

This section is empty.

Functions

func GetOpts added in v0.7.0

func GetOpts(opt ...Option) options

GetOpts - iterate the inbound Options and return a struct

func Register added in v0.7.0

func Register(s subtypes.Subtype, af AllocFunc, vf VetFunc, vclf VetCredentialLibrariesFunc, prefix string)

Register registers repository hooks and the prefixes for a provided Subtype. Register panics if the subtype has already been registered or if any of the prefixes are associated with another subtype.

func SubtypeFromId

func SubtypeFromId(id string) subtypes.Subtype

SubtypeFromId returns the Subtype from the provided id if the id's prefix was registered with a Subtype. Otherwise Unknown is returned.

func SubtypeFromType

func SubtypeFromType(t string) subtypes.Subtype

SubtypeFromType returns the Subtype from the provided string or if no Subtype was registered with that string Unknown is returned.

Types

type AllocFunc added in v0.7.0

type AllocFunc func() Target

AllocFunc is a function that creates an in-memory Target.

type Cloneable

type Cloneable interface {
	Clone() Target
}

Cloneable provides a cloning interface

type CredentialLibrary added in v0.4.0

type CredentialLibrary struct {
	*store.CredentialLibrary
	// contains filtered or unexported fields
}

A CredentialLibrary is a CredentialSource that represents the relationship between a target and a credential library.

func NewCredentialLibrary added in v0.4.0

func NewCredentialLibrary(targetId, credentialLibraryId string, purpose credential.Purpose) (*CredentialLibrary, error)

NewCredentialLibrary creates a new in memory CredentialLibrary representing the relationship between targetId and credentialLibraryId.

func TestCredentialLibrary added in v0.4.0

func TestCredentialLibrary(t *testing.T, conn *db.DB, targetId, libraryId string) *CredentialLibrary

TestCredentialLibrary creates a CredentialLibrary for targetId and libraryId with the credential purpose of application.

func TestNewCredentialLibrary added in v0.7.0

func TestNewCredentialLibrary(targetId, credentialLibraryId string, purpose credential.Purpose) *CredentialLibrary

TestNewCredentialLibrary creates a new in memory CredentialLibrary representing the relationship between targetId and credentialLibraryId with the given purpose.

func (*CredentialLibrary) SetTableName added in v0.4.0

func (t *CredentialLibrary) SetTableName(n string)

SetTableName sets the table name.

func (*CredentialLibrary) TableName added in v0.4.0

func (t *CredentialLibrary) TableName() string

TableName returns the table name.

type CredentialSource added in v0.5.0

type CredentialSource interface {
	CredentialStoreId() string
	Id() string
	CredentialPurpose() credential.Purpose
	TargetId() string
}

CredentialSource is an interface that can be implemented by both a library and a singular credential.

type HostSource added in v0.5.0

type HostSource interface {
	HostCatalogId() string
	Id() string
}

HostSource is an interface that can be implemented by both a set and a singular host.

type Option

type Option func(*options)

Option - how Options are passed as arguments

func WithCredentialLibraries added in v0.4.0

func WithCredentialLibraries(cl []*CredentialLibrary) Option

WithCredentialLibraries provides an option for providing a list of credential libraries.

func WithDefaultPort

func WithDefaultPort(p uint32) Option

WithDefaultPort provides an option to specify the default target port.

func WithDescription

func WithDescription(desc string) Option

WithDescription provides an optional description

func WithHostSources added in v0.5.0

func WithHostSources(hs []string) Option

WithHostSources provides an option for providing a list of host source ids

func WithLimit

func WithLimit(limit int) Option

WithLimit provides an option to provide a limit. Intentionally allowing negative integers. If WithLimit < 0, then unlimited results are returned. If WithLimit == 0, then default limits are used for results.

func WithName

func WithName(name string) Option

WithName provides an option to search by a friendly name

func WithPublicId

func WithPublicId(id string) Option

WithPublicId provides an optional public id

func WithScopeId

func WithScopeId(scopeId string) Option

WithScopeId provides an option to search by a scope id

func WithScopeIds added in v0.1.5

func WithScopeIds(scopeIds []string) Option

WithScopeId provides an option to search by multiple scope id

func WithScopeName added in v0.1.1

func WithScopeName(scopeName string) Option

WithScopeId provides an option to search by a scope name

func WithSessionConnectionLimit

func WithSessionConnectionLimit(limit int32) Option

func WithSessionMaxSeconds

func WithSessionMaxSeconds(dur uint32) Option

func WithType added in v0.7.0

func WithType(t subtypes.Subtype) Option

WithType provides an option to search by a target type

func WithUserId

func WithUserId(userId string) Option

WithUserId provides an option to search by a user public id

func WithWorkerFilter added in v0.1.5

func WithWorkerFilter(filter string) Option

WithWorkerFilter provides an optional worker filter

type Repository

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

Repository is the target database repository

func NewRepository

func NewRepository(r db.Reader, w db.Writer, kms *kms.Kms, opt ...Option) (*Repository, error)

NewRepository creates a new target Repository. Supports the options: WithLimit which sets a default limit on results returned by repo operations.

func (*Repository) AddTargetCredentialSources added in v0.5.0

func (r *Repository) AddTargetCredentialSources(ctx context.Context, targetId string, targetVersion uint32, cls []*CredentialLibrary, _ ...Option) (Target, []HostSource, []CredentialSource, error)

AddTargetCredentialSources adds the cIds to the targetId in the repository. The target and the list of credential sources attached to the target, after cIds are added, will be returned on success. The targetVersion must match the current version of the targetId in the repository.

func (*Repository) AddTargetHostSources added in v0.5.0

func (r *Repository) AddTargetHostSources(ctx context.Context, targetId string, targetVersion uint32, hostSourceIds []string, _ ...Option) (Target, []HostSource, []CredentialSource, error)

AddTargetHostSources provides the ability to add host sources (hostSourceIds) to a target (targetId). The target's current db version must match the targetVersion or an error will be returned. The target and a list of current host source ids will be returned on success. Zero is not a valid value for the WithVersion option and will return an error.

func (*Repository) CreateTarget added in v0.7.0

func (r *Repository) CreateTarget(ctx context.Context, target Target, opt ...Option) (Target, []HostSource, []CredentialSource, error)

CreateTarget inserts into the repository and returns the new Target with its list of host sets and credential libraries. WithPublicId is the only supported option.

func (*Repository) DeleteTarget

func (r *Repository) DeleteTarget(ctx context.Context, publicId string, _ ...Option) (int, error)

DeleteTarget will delete a target from the repository.

func (*Repository) DeleteTargetCredentialSources added in v0.5.0

func (r *Repository) DeleteTargetCredentialSources(ctx context.Context, targetId string, targetVersion uint32, cls []*CredentialLibrary, _ ...Option) (int, error)

DeleteTargetCredentialSources deletes credential sources from a target in the repository. The target's current db version must match the targetVersion or an error will be returned.

func (*Repository) DeleteTargetHostSources added in v0.5.0

func (r *Repository) DeleteTargetHostSources(ctx context.Context, targetId string, targetVersion uint32, hostSourceIds []string, _ ...Option) (int, error)

DeleteTargeHostSources deletes host sources from a target (targetId). The target's current db version must match the targetVersion or an error will be returned. Zero is not a valid value for the WithVersion option and will return an error.

func (*Repository) ListTargets

func (r *Repository) ListTargets(ctx context.Context, opt ...Option) ([]Target, error)

ListTargets in targets in a scope. Supports the WithScopeId, WithLimit, WithType options.

func (*Repository) LookupTarget

func (r *Repository) LookupTarget(ctx context.Context, publicIdOrName string, opt ...Option) (Target, []HostSource, []CredentialSource, error)

LookupTarget will look up a target in the repository and return the target with its host source ids and credential source ids. If the target is not found, it will return nil, nil, nil, nil. No options are currently supported.

func (*Repository) SetTargetCredentialSources added in v0.5.0

func (r *Repository) SetTargetCredentialSources(ctx context.Context, targetId string, targetVersion uint32, cls []*CredentialLibrary, _ ...Option) ([]HostSource, []CredentialSource, int, error)

SetTargetCredentialSources will set the target's credential sources. Set will add and/or delete credential sources as need to reconcile the existing credential sources with the request. If clIds is empty, all the credential sources will be cleared from the target.

func (*Repository) SetTargetHostSources added in v0.5.0

func (r *Repository) SetTargetHostSources(ctx context.Context, targetId string, targetVersion uint32, hostSourceIds []string, _ ...Option) ([]HostSource, []CredentialSource, int, error)

SetTargetHostSources will set the target's host sources. Set add and/or delete target host sources as need to reconcile the existing sets with the sets requested. If hostSourceIds is empty, the target host sources will be cleared. Zero is not a valid value for the WithVersion option and will return an error.

func (*Repository) UpdateTarget added in v0.7.0

func (r *Repository) UpdateTarget(ctx context.Context, target Target, version uint32, fieldMaskPaths []string, _ ...Option) (Target, []HostSource, []CredentialSource, int, error)

UpdateTarget will update a target in the repository and return the written target. fieldMaskPaths provides field_mask.proto paths for fields that should be updated. Fields will be set to NULL if the field is a zero value and included in fieldMask. Name, Description, and WorkerFilter are the only updatable fields. If no updatable fields are included in the fieldMaskPaths, then an error is returned.

type Target

type Target interface {
	GetPublicId() string
	GetScopeId() string
	GetDefaultPort() uint32
	GetName() string
	GetDescription() string
	GetVersion() uint32
	GetType() subtypes.Subtype
	GetCreateTime() *timestamp.Timestamp
	GetUpdateTime() *timestamp.Timestamp
	GetSessionMaxSeconds() uint32
	GetSessionConnectionLimit() int32
	GetWorkerFilter() string
	Clone() Target
	SetPublicId(context.Context, string) error
	SetScopeId(string)
	SetName(string)
	SetDescription(string)
	SetVersion(uint32)
	SetDefaultPort(uint32)
	SetCreateTime(*timestamp.Timestamp)
	SetUpdateTime(*timestamp.Timestamp)
	SetSessionMaxSeconds(uint32)
	SetSessionConnectionLimit(int32)
	SetWorkerFilter(string)
	Oplog(op oplog.OpType) oplog.Metadata
}

Target is a commmon interface for all target subtypes

type TargetHostSet

type TargetHostSet struct {
	*store.TargetHostSet
	// contains filtered or unexported fields
}

func NewTargetHostSet

func NewTargetHostSet(targetId, hostSetId string, _ ...Option) (*TargetHostSet, error)

NewTargetHostSet creates a new in memory target host set. No options are currently supported.

func (*TargetHostSet) Clone

func (t *TargetHostSet) Clone() interface{}

Clone creates a clone of the target host set

func (*TargetHostSet) SetTableName

func (t *TargetHostSet) SetTableName(n string)

SetTableName sets the tablename and satisfies the ReplayableMessage interface. If the caller attempts to set the name to "" the name will be reset to the default name.

func (*TargetHostSet) TableName

func (t *TargetHostSet) TableName() string

TableName returns the tablename to override the default gorm table name

func (*TargetHostSet) VetForWrite

func (t *TargetHostSet) VetForWrite(ctx context.Context, _ db.Reader, opType db.OpType, _ ...db.Option) error

VetForWrite implements db.VetForWrite() interface and validates the target host set before it's written.

type TargetLibrary added in v0.4.0

type TargetLibrary struct {
	*store.CredentialLibrary
	StoreId string
}

A TargetLibrary represents the relationship between a target and a credential library and includes the id of the credential store that the library is a part of and the library's name and description.

It implements the target.CredentialSource interface.

func (*TargetLibrary) CredentialPurpose added in v0.5.0

func (ts *TargetLibrary) CredentialPurpose() credential.Purpose

CredentialPurpose returns the purpose of the credential

func (*TargetLibrary) CredentialStoreId added in v0.5.0

func (ts *TargetLibrary) CredentialStoreId() string

CredentialStoreId returns the ID of the store containing the library

func (*TargetLibrary) Id added in v0.5.0

func (ts *TargetLibrary) Id() string

Id returns the ID of the library

func (*TargetLibrary) TableName added in v0.4.0

func (ts *TargetLibrary) TableName() string

TableName returns the tablename to override the default gorm table name

func (*TargetLibrary) TargetId added in v0.5.0

func (ts *TargetLibrary) TargetId() string

TargetId returns the target linked to this credential source

type TargetSet

type TargetSet struct {
	*hostStore.Set
}

TargetSet is returned from most repo operations as the target's host set.

func (*TargetSet) HostCatalogId added in v0.5.0

func (ts *TargetSet) HostCatalogId() string

HostCatalogId returns the ID of the catalog containing the set

func (*TargetSet) Id added in v0.5.0

func (ts *TargetSet) Id() string

Id returns the ID of the host set

func (*TargetSet) TableName

func (ts *TargetSet) TableName() string

TableName returns the tablename to override the default gorm table name

type VetCredentialLibrariesFunc added in v0.7.0

type VetCredentialLibrariesFunc func(context.Context, []*CredentialLibrary) error

VetCredentialLibrariesFunc is a function that checks the given CredentialLibraries to ensure that they are valid for a Target subtype.

type VetFunc added in v0.7.0

type VetFunc func(context.Context, Target) error

VetFunc is a function that checks the given Target to ensure it can be used by the Repository.

Directories

Path Synopsis
Package targettest provides a test target subtype for use by the target package.
Package targettest provides a test target subtype for use by the target package.
tcp
Package tcp provides a Target subtype for a TCP Target.
Package tcp provides a Target subtype for a TCP Target.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL