connectors

package
v0.21.0 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Connectors = make(map[string]Connector)

Connectors tracks all registered connector drivers.

Functions

func Register

func Register(name string, connector Connector)

Register tracks a connector driver.

Types

type Connector

type Connector interface {
	Spec() Spec

	ConsumeAsIterator(ctx context.Context, env *Env, source *Source) (FileIterator, error)
}

Connector is a driver for ingesting data from an external system.

type Env added in v0.15.0

type Env struct {
	RepoDriver string
	RepoDSN    string
}

Env contains contextual information for a source, such as the repo it came from and (in the future) secrets configured by the user.

type FileIterator added in v0.21.0

type FileIterator interface {
	// Close do cleanup and release resources
	Close() error
	// NextBatch returns a list of file downloaded from external sources
	// NextBatch cleanups file created in previous batch
	NextBatch(limit int) ([]string, error)
	// HasNext can be utlisied to check if iterator has more elements left
	HasNext() bool
}

FileIterator provides ways to iteratively ingest files downloaded from external sources Clients should call close once they are done with iterator to release any resources

func ConsumeAsIterator added in v0.21.0

func ConsumeAsIterator(ctx context.Context, env *Env, source *Source) (FileIterator, error)

type PropertySchema

type PropertySchema struct {
	Key         string
	Type        PropertySchemaType
	Required    bool
	DisplayName string
	Description string
	Placeholder string
	Hint        string
	Href        string
}

PropertySchema provides the schema for a property supported by a connector.

func (PropertySchema) ValidateType

func (ps PropertySchema) ValidateType(val any) bool

ValidateType checks that val has the correct type.

type PropertySchemaType

type PropertySchemaType int

PropertySchemaType is an enum of types supported for connector properties.

const (
	UnspecifiedPropertyType PropertySchemaType = iota
	StringPropertyType
	NumberPropertyType
	BooleanPropertyType
	InformationalPropertyType
)

type SamplePolicy

type SamplePolicy struct {
	Strategy string
	Sample   float32
	Limit    int
}

SamplePolicy tells the connector to only ingest a sample of data from the source. Support for it is currently not implemented.

type Source

type Source struct {
	Name          string
	Connector     string
	ExtractPolicy *runtimev1.Source_ExtractPolicy
	Properties    map[string]any
	Timeout       int32
}

Source represents a dataset to ingest using a specific connector (like a connector instance).

func (*Source) PropertiesEquals added in v0.13.0

func (s *Source) PropertiesEquals(o *Source) bool

func (*Source) Validate

func (s *Source) Validate() error

Validate checks the source's properties against its connector's spec.

type Spec

type Spec struct {
	DisplayName string
	Description string
	Properties  []PropertySchema
}

Spec provides metadata about a connector and the properties it supports.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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