Documentation
¶
Overview ¶
Package plugins defines APIs for source and destination plugins
Index ¶
- func DestinationPluginTestSuiteRunner(t *testing.T, p *DestinationPlugin, spec interface{}, ...)
- func SetDestinationManagedCqColumns(tables []*schema.Table)
- func TestSourcePluginSync(t *testing.T, plugin *SourcePlugin, spec specs.Source, ...)
- type ClientResource
- type DefaultReverseTransformer
- type DestinationClient
- type DestinationMetrics
- type DestinationPlugin
- func (p *DestinationPlugin) Close(ctx context.Context) error
- func (p *DestinationPlugin) DeleteStale(ctx context.Context, tables schema.Tables, sourceName string, ...) error
- func (p *DestinationPlugin) Init(ctx context.Context, logger zerolog.Logger, spec specs.Destination) error
- func (p *DestinationPlugin) Metrics() DestinationMetrics
- func (p *DestinationPlugin) Migrate(ctx context.Context, tables schema.Tables) error
- func (p *DestinationPlugin) Name() string
- func (p *DestinationPlugin) Read(ctx context.Context, table *schema.Table, sourceName string, ...) error
- func (p *DestinationPlugin) Version() string
- func (p *DestinationPlugin) Write(ctx context.Context, tables schema.Tables, sourceName string, ...) error
- type DestinationTestSuiteTests
- type NewDestinationClientFunc
- type SourceMetrics
- type SourceNewExecutionClientFunc
- type SourcePlugin
- func (p *SourcePlugin) GenerateSourcePluginDocs(dir string) error
- func (p *SourcePlugin) Metrics() SourceMetrics
- func (p *SourcePlugin) Name() string
- func (p *SourcePlugin) SetLogger(logger zerolog.Logger)
- func (p *SourcePlugin) Sync(ctx context.Context, spec specs.Source, res chan<- *schema.Resource) error
- func (p *SourcePlugin) Tables() schema.Tables
- func (p *SourcePlugin) Version() string
- type TableClientMetrics
- type TestDestinationMemDBClient
- func (c *TestDestinationMemDBClient) Close(context.Context) error
- func (c *TestDestinationMemDBClient) DeleteStale(ctx context.Context, tables schema.Tables, source string, syncTime time.Time) error
- func (c *TestDestinationMemDBClient) Initialize(_ context.Context, spec specs.Destination) error
- func (*TestDestinationMemDBClient) Metrics() DestinationMetrics
- func (c *TestDestinationMemDBClient) Migrate(_ context.Context, tables schema.Tables) error
- func (c *TestDestinationMemDBClient) Read(_ context.Context, table *schema.Table, source string, ...) error
- func (*TestDestinationMemDBClient) ReverseTransformValues(_ *schema.Table, values []interface{}) (schema.CQTypes, error)
- func (c *TestDestinationMemDBClient) Write(_ context.Context, tables schema.Tables, resources <-chan *ClientResource) error
- type TestSourcePluginOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DestinationPluginTestSuiteRunner ¶ added in v1.1.0
func DestinationPluginTestSuiteRunner(t *testing.T, p *DestinationPlugin, spec interface{}, tests DestinationTestSuiteTests)
func SetDestinationManagedCqColumns ¶ added in v0.13.0
Overwrites or adds the CQ columns that are managed by the destination plugins (_cq_sync_time, _cq_source_name).
func TestSourcePluginSync ¶ added in v0.0.4
func TestSourcePluginSync(t *testing.T, plugin *SourcePlugin, spec specs.Source, opts ...TestSourcePluginOption)
Types ¶
type ClientResource ¶ added in v1.1.0
type ClientResource struct { TableName string Data []interface{} }
type DefaultReverseTransformer ¶ added in v0.13.23
type DefaultReverseTransformer struct { }
func (*DefaultReverseTransformer) ReverseTransformValues ¶ added in v0.13.23
func (*DefaultReverseTransformer) ReverseTransformValues(table *schema.Table, values []interface{}) (schema.CQTypes, error)
DefaultReverseTransformer tries best effort to convert a slice of values to CQTypes based on the provided table columns.
type DestinationClient ¶ added in v0.2.3
type DestinationClient interface { schema.CQTypeTransformer ReverseTransformValues(table *schema.Table, values []interface{}) (schema.CQTypes, error) Migrate(ctx context.Context, tables schema.Tables) error Read(ctx context.Context, table *schema.Table, sourceName string, res chan<- []interface{}) error Write(ctx context.Context, tables schema.Tables, res <-chan *ClientResource) error Metrics() DestinationMetrics DeleteStale(ctx context.Context, tables schema.Tables, sourceName string, syncTime time.Time) error Close(ctx context.Context) error }
func NewTestDestinationMemDBClient ¶ added in v1.1.0
func NewTestDestinationMemDBClient(context.Context, zerolog.Logger, specs.Destination) (DestinationClient, error)
type DestinationMetrics ¶ added in v0.13.15
type DestinationPlugin ¶
type DestinationPlugin struct {
// contains filtered or unexported fields
}
func NewDestinationPlugin ¶ added in v0.2.3
func NewDestinationPlugin(name string, version string, newDestinationClient NewDestinationClientFunc) *DestinationPlugin
func (*DestinationPlugin) Close ¶ added in v0.11.4
func (p *DestinationPlugin) Close(ctx context.Context) error
func (*DestinationPlugin) DeleteStale ¶ added in v0.12.0
func (*DestinationPlugin) Init ¶ added in v0.12.0
func (p *DestinationPlugin) Init(ctx context.Context, logger zerolog.Logger, spec specs.Destination) error
we need lazy loading because we want to be able to initialize after
func (*DestinationPlugin) Metrics ¶ added in v0.13.15
func (p *DestinationPlugin) Metrics() DestinationMetrics
func (*DestinationPlugin) Migrate ¶ added in v0.0.4
we implement all DestinationClient functions so we can hook into pre-post behavior
func (*DestinationPlugin) Name ¶ added in v0.0.4
func (p *DestinationPlugin) Name() string
func (*DestinationPlugin) Version ¶ added in v0.0.4
func (p *DestinationPlugin) Version() string
type DestinationTestSuiteTests ¶ added in v1.1.0
type NewDestinationClientFunc ¶ added in v0.12.0
type NewDestinationClientFunc func(context.Context, zerolog.Logger, specs.Destination) (DestinationClient, error)
type SourceMetrics ¶ added in v0.13.15
type SourceMetrics struct {
TableClient map[string]map[string]*TableClientMetrics
}
func (*SourceMetrics) Equal ¶ added in v0.13.15
func (s *SourceMetrics) Equal(other *SourceMetrics) bool
Equal compares to stats. Mostly useful in testing
func (*SourceMetrics) TotalErrors ¶ added in v0.13.15
func (s *SourceMetrics) TotalErrors() uint64
func (*SourceMetrics) TotalPanics ¶ added in v0.13.15
func (s *SourceMetrics) TotalPanics() uint64
func (*SourceMetrics) TotalResources ¶ added in v0.13.15
func (s *SourceMetrics) TotalResources() uint64
type SourceNewExecutionClientFunc ¶ added in v0.0.4
type SourcePlugin ¶
type SourcePlugin struct {
// contains filtered or unexported fields
}
SourcePlugin is the base structure required to pass to sdk.serve We take a declarative approach to API here similar to Cobra
func NewSourcePlugin ¶ added in v0.0.4
func NewSourcePlugin(name string, version string, tables []*schema.Table, newExecutionClient SourceNewExecutionClientFunc) *SourcePlugin
NewSourcePlugin returns a new plugin with a given name, version, tables, newExecutionClient and additional options.
func (*SourcePlugin) GenerateSourcePluginDocs ¶ added in v0.6.4
func (p *SourcePlugin) GenerateSourcePluginDocs(dir string) error
GenerateSourcePluginDocs creates table documentation for the source plugin based on its list of tables
func (*SourcePlugin) Metrics ¶ added in v0.13.15
func (p *SourcePlugin) Metrics() SourceMetrics
func (*SourcePlugin) Name ¶
func (p *SourcePlugin) Name() string
Name return the name of this plugin
func (*SourcePlugin) SetLogger ¶ added in v0.0.4
func (p *SourcePlugin) SetLogger(logger zerolog.Logger)
func (*SourcePlugin) Sync ¶ added in v0.0.4
func (p *SourcePlugin) Sync(ctx context.Context, spec specs.Source, res chan<- *schema.Resource) error
Sync is syncing data from the requested tables in spec to the given channel
func (*SourcePlugin) Tables ¶
func (p *SourcePlugin) Tables() schema.Tables
Tables returns all supported tables by this source plugin
func (*SourcePlugin) Version ¶
func (p *SourcePlugin) Version() string
Version returns the version of this plugin
type TableClientMetrics ¶ added in v0.13.15
type TableClientMetrics struct { Resources uint64 Errors uint64 Panics uint64 StartTime time.Time EndTime time.Time }
func (*TableClientMetrics) Equal ¶ added in v0.13.15
func (s *TableClientMetrics) Equal(other *TableClientMetrics) bool
type TestDestinationMemDBClient ¶ added in v1.1.0
type TestDestinationMemDBClient struct { schema.DefaultTransformer // contains filtered or unexported fields }
TestDestinationMemDBClient is mostly used for testing.
func (*TestDestinationMemDBClient) Close ¶ added in v1.1.0
func (c *TestDestinationMemDBClient) Close(context.Context) error
func (*TestDestinationMemDBClient) DeleteStale ¶ added in v1.1.0
func (*TestDestinationMemDBClient) Initialize ¶ added in v1.1.0
func (c *TestDestinationMemDBClient) Initialize(_ context.Context, spec specs.Destination) error
func (*TestDestinationMemDBClient) Metrics ¶ added in v1.1.0
func (*TestDestinationMemDBClient) Metrics() DestinationMetrics
func (*TestDestinationMemDBClient) ReverseTransformValues ¶ added in v1.1.0
func (*TestDestinationMemDBClient) Write ¶ added in v1.1.0
func (c *TestDestinationMemDBClient) Write(_ context.Context, tables schema.Tables, resources <-chan *ClientResource) error
type TestSourcePluginOption ¶ added in v0.13.8
type TestSourcePluginOption func(*testSourcePluginOptions)
func WithTestSourcePluginNoParallel ¶ added in v0.13.8
func WithTestSourcePluginNoParallel() TestSourcePluginOption