actions

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2022 License: MIT Imports: 34 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ActionFuncs = map[string]map[string]map[string]Action{
	constants.ActionFuncsCommandCp: {
		constants.ActionFuncsSubCommandSnapshot: {

			"oracle-oracle":            Action{FnAction: RunOracleOracleSnapshot, ActionCfg: &OraOraSnapConfig{}, FnSetupCfg: SetupCpOraOraSnap},
			"oracle-s3":                Action{FnAction: RunOracleS3Snapshot, ActionCfg: &OraS3SnapConfig{}, FnSetupCfg: SetupCpOraS3Snap},
			"oracle-snowflake":         Action{FnAction: RunSnowflakeSnapshot, ActionCfg: &OraSnowflakeSnapConfig{}, FnSetupCfg: SetupCpOraSnowflakeSnap},
			"oracle-sqlserver":         Action{FnAction: RunDsnSnapshot, ActionCfg: &DsnSnapConfig{}, FnSetupCfg: SetupCpDsnSnap},
			"sqlserver-sqlserver":      Action{FnAction: RunDsnSnapshot, ActionCfg: &DsnSnapConfig{}, FnSetupCfg: SetupCpDsnSnap},
			"sqlserver-s3":             Action{FnAction: RunDsnS3Snapshot, ActionCfg: &DsnS3SnapConfig{}, FnSetupCfg: SetupCpDsnS3Snap},
			"sqlserver-snowflake":      Action{FnAction: RunDsnSnowflakeSnapshot, ActionCfg: &DsnSnowflakeSnapConfig{}, FnSetupCfg: SetupCpDsnSnowflakeSnap},
			"sqlserver-oracle":         Action{FnAction: RunDsnSnapshot, ActionCfg: &DsnSnapConfig{}, FnSetupCfg: SetupCpDsnSnap},
			"odbc+sqlserver-s3":        Action{FnAction: RunDsnS3Snapshot, ActionCfg: &DsnS3SnapConfig{}, FnSetupCfg: SetupCpDsnS3Snap},
			"odbc+sqlserver-snowflake": Action{FnAction: RunDsnSnowflakeSnapshot, ActionCfg: &DsnSnowflakeSnapConfig{}, FnSetupCfg: SetupCpDsnSnowflakeSnap},
			"s3-snowflake":             Action{FnAction: RunS3SnowflakeSnapshot, ActionCfg: &S3SnowflakeSnapConfig{}, FnSetupCfg: SetupCpS3SnowflakeSnap},
			"s3-stdout":                Action{FnAction: RunS3StdoutSnapshot, ActionCfg: &S3StdoutSnapConfig{}, FnSetupCfg: SetupCpS3StdoutSnap},
			"netezza-s3":               Action{FnAction: RunDsnS3Snapshot, ActionCfg: &DsnS3SnapConfig{}, FnSetupCfg: SetupCpDsnS3Snap},
			"netezza-snowflake":        Action{FnAction: RunDsnSnowflakeSnapshot, ActionCfg: &DsnSnowflakeSnapConfig{}, FnSetupCfg: SetupCpDsnSnowflakeSnap},
		},
		constants.ActionFuncsSubCommandDelta: {

			"oracle-oracle":    Action{FnAction: RunOracleOracleDelta, ActionCfg: &OraOraDeltaConfig{}, FnSetupCfg: SetupCpOraOraDelta},
			"oracle-snowflake": Action{FnAction: RunSnowflakeDelta, ActionCfg: &OraSnowflakeDeltaConfig{}, FnSetupCfg: SetupCpOraSnowflakeDelta},
			"oracle-s3":        Action{FnAction: RunOracleS3Delta, ActionCfg: &OraS3DeltaConfig{}, FnSetupCfg: SetupCpOraS3Delta},

			"sqlserver-s3":        Action{FnAction: RunDsnS3Delta, ActionCfg: &DsnS3DeltaConfig{}, FnSetupCfg: SetupCpDsnS3Delta},
			"sqlserver-snowflake": Action{FnAction: RunDsnSnowflakeDelta, ActionCfg: &DsnSnowflakeDeltaConfig{}, FnSetupCfg: SetupCpDsnSnowflakeDelta},

			"odbc+sqlserver-s3":        Action{FnAction: RunDsnS3Delta, ActionCfg: &DsnS3DeltaConfig{}, FnSetupCfg: SetupCpDsnS3Delta},
			"odbc+sqlserver-snowflake": Action{FnAction: RunDsnSnowflakeDelta, ActionCfg: &DsnSnowflakeDeltaConfig{}, FnSetupCfg: SetupCpDsnSnowflakeDelta},
			"s3-snowflake":             Action{FnAction: RunS3SnowflakeDelta, ActionCfg: &S3SnowflakeDeltaConfig{}, FnSetupCfg: SetupCpS3SnowflakeDelta},
		},
		constants.ActionFuncsSubCommandMeta: {

			"oracle-snowflake":         Action{FnAction: RunTableToSnowflakeDDL, ActionCfg: &TableToSnowTableDDLConfig{}, FnSetupCfg: SetupCpMetaToSnowflake},
			"sqlserver-snowflake":      Action{FnAction: RunTableToSnowflakeDDL, ActionCfg: &TableToSnowTableDDLConfig{}, FnSetupCfg: SetupCpMetaToSnowflake},
			"netezza-snowflake":        Action{FnAction: RunTableToSnowflakeDDL, ActionCfg: &TableToSnowTableDDLConfig{}, FnSetupCfg: SetupCpMetaToSnowflake},
			"odbc+sqlserver-snowflake": Action{FnAction: RunTableToSnowflakeDDL, ActionCfg: &TableToSnowTableDDLConfig{}, FnSetupCfg: SetupCpMetaToSnowflake},
		},
	},
	constants.ActionFuncsCommandSync: {
		constants.ActionFuncsSubCommandBatch: {

			"oracle-oracle":    Action{FnAction: RunOracleOracleSync, ActionCfg: &SyncOracleOracleConfig{}, FnSetupCfg: SetupOracleToOracleSync},
			"oracle-snowflake": Action{FnAction: RunOracleSnowflakeSync, ActionCfg: &SyncOracleSnowflakeConfig{}, FnSetupCfg: SetupOracleToSnowflakeSync},
		},
		constants.ActionFuncsSubCommandEvents: {

			"oracle-oracle":    Action{FnAction: RunCqnOracleSync, ActionCfg: &SyncCqnOracleConfig{}, FnSetupCfg: SetupCqnToOracleSync},
			"oracle-snowflake": Action{FnAction: RunCqnSnowflakeSync, ActionCfg: &SyncCqnSnowflakeConfig{}, FnSetupCfg: SetupCqnToSnowflakeSync},
		},
	},
}

ActionFuncs is a register of all supported actions. Note that keys in the final map[string]Action are used to validate DSN-type database connections before they are added. See RunConnectionAdd().

Functions

func ActionLauncher

func ActionLauncher(
	cfg interface{},
	fnActionGetter func(sourceType string, targetType string) (Action, error),
	sourceType string,
	targetType string) error

ActionLauncher will: 1) call the function fnActionGetter to find the Action{} based on the sourceType and targetType strings supplied. 2) Once it has the Action{}, it calls setup function Action.FnSetupCfg() to populate Action.ActionCfg{}. 3) Then it can start the action by calling Action.FnAction(). TODO: consider moving use of fnActionGetter out to the caller such that the caller supplies a fn(void) to call all

preconfigured ready to go.

func GetHandlerHealth

func GetHandlerHealth(log logger.Logger) func(w http.ResponseWriter, r *http.Request)

func GetHandlerStopServer

func GetHandlerStopServer(log logger.Logger, chanStop chan string) func(w http.ResponseWriter, r *http.Request)

func GetHandlerTransformLaunch

func GetHandlerTransformLaunch(log logger.Logger, allTransformInfo *transform.SafeMapTransformInfo, c ConnectionLoader, statsDumpFrequencySeconds int) func(w http.ResponseWriter, r *http.Request)

func GetHandlerTransformList

func GetHandlerTransformList(log logger.Logger, allTransformInfo *transform.SafeMapTransformInfo) func(w http.ResponseWriter, r *http.Request)

func GetHandlerTransformStats

func GetHandlerTransformStats(log logger.Logger, allTransformInfo *transform.SafeMapTransformInfo) func(w http.ResponseWriter, r *http.Request)

func GetHandlerTransformStatus

func GetHandlerTransformStatus(log logger.Logger, allTransformInfo *transform.SafeMapTransformInfo) func(w http.ResponseWriter, r *http.Request)

func GetHandlerTransformStop

func GetHandlerTransformStop(log logger.Logger, allTransformInfo *transform.SafeMapTransformInfo) func(w http.ResponseWriter, r *http.Request)

func GetSupportedCpDeltaConnectionTypes

func GetSupportedCpDeltaConnectionTypes() string

func GetSupportedCpMetaConnectionTypes

func GetSupportedCpMetaConnectionTypes() string

func GetSupportedCpSnapConnectionTypes

func GetSupportedCpSnapConnectionTypes() string

func GetSupportedOdbcConnectionTypes

func GetSupportedOdbcConnectionTypes() string

func IsSupportedConnectionType

func IsSupportedConnectionType(schema string) bool

IsSupportedConnectionType returns true is the connection type is found in the list of ActionFuncs, else false.

func RunConnectionAdd

func RunConnectionAdd(cfg *ConnectionConfig) error

func RunConnectionRemove

func RunConnectionRemove(cfg *ConnectionConfig) error

func RunCqnOracleSync

func RunCqnOracleSync(cfg interface{}) error

func RunCqnSnowflakeSync

func RunCqnSnowflakeSync(cfg interface{}) error

func RunCreateStage

func RunCreateStage(cfg *CreateStageConfig) error

func RunDefaultAdd

func RunDefaultAdd(cfg *DefaultAddConfig) error

RunDefaultAdd adds key+value to the given config file. If cfg.Force is not set then it return an error when the key exists. Lazy creation of the config file is supported it does not exist. Create only when setting the value after testing if it exists.

func RunDefaultRemove

func RunDefaultRemove(cfg *DefaultRemoveConfig) error

RunDefaultRemove removes a key from the given config file.

func RunDemoCleanup

func RunDemoCleanup(cfg *DemoCleanupConfig) error

func RunDemoFullSetup

func RunDemoFullSetup(cfg *DemoSetupConfig) error

func RunDiff

func RunDiff(cfg *DiffConfig) error

func RunDsnS3Delta

func RunDsnS3Delta(cfg interface{}) error

func RunDsnS3Snapshot

func RunDsnS3Snapshot(cfg interface{}) error

func RunDsnSnapshot

func RunDsnSnapshot(cfg interface{}) error

func RunDsnSnowflakeDelta

func RunDsnSnowflakeDelta(cfg interface{}) error

RunSnowflakeDelta will extract data from source Oracle database table into CSV gzipped files. Copy the files to S3 staging area and load them into Snowflake. The input table name and file name prefix are case sensitive. The logical connection name is used to find connection credentials in environment variables by naming convention.

func RunDsnSnowflakeSnapshot

func RunDsnSnowflakeSnapshot(cfg interface{}) error

func RunOracleOracleDelta

func RunOracleOracleDelta(cfg interface{}) error

func RunOracleOracleSnapshot

func RunOracleOracleSnapshot(cfg interface{}) error

func RunOracleOracleSync

func RunOracleOracleSync(cfg interface{}) error

func RunOracleS3Delta

func RunOracleS3Delta(cfg interface{}) error

func RunOracleS3Snapshot

func RunOracleS3Snapshot(cfg interface{}) error

func RunOracleSnowflakeSync

func RunOracleSnowflakeSync(cfg interface{}) error

func RunPipeFromFile

func RunPipeFromFile(pipe *PipeConfig, web *WebServerConfig) error

func RunQuery

func RunQuery(cfg *QueryConfig) error

func RunS3SnowflakeDelta

func RunS3SnowflakeDelta(cfg interface{}) error

func RunS3SnowflakeSnapshot

func RunS3SnowflakeSnapshot(cfg interface{}) error

func RunS3StdoutSnapshot

func RunS3StdoutSnapshot(cfg interface{}) error

func RunSnowflakeDelta

func RunSnowflakeDelta(cfg interface{}) error

RunSnowflakeDelta will extract data from source Oracle database table into CSV gzipped files. Copy the files to S3 staging area and load them into Snowflake. The input table name and file name prefix are case sensitive. The logical connection name is used to find connection credentials in environment variables by naming convention.

func RunSnowflakeSnapshot

func RunSnowflakeSnapshot(cfg interface{}) error

func RunTableToSnowflakeDDL

func RunTableToSnowflakeDDL(cfg interface{}) error

OracleTableToSnowflakeDDLFunc returns a function that will do ths work of: 1) Read Oracle schema.table definition and generate equivalent Snowflake table creation statement. It prints the DDL to STDOUT.

func RunWebServer

func RunWebServer(web *WebServerConfig) error

func SetupCpDsnS3Delta

func SetupCpDsnS3Delta(genericCfg interface{}, actionCfg interface{}) error

SetupCpDsnS3Delta copies values from genericCfg to actionCfg ready for a Oracle to S3 action.

func SetupCpDsnS3Snap

func SetupCpDsnS3Snap(genericCfg interface{}, actionCfg interface{}) error

SetupCpOraS3Snap copies values from genericCfg to actionCfg ready for a Odbc to S3 action.

func SetupCpDsnSnap

func SetupCpDsnSnap(genericCfg interface{}, actionCfg interface{}) error

SetupCpDsnSnap copies values from genericCfg to actionCfg ready for Oracle to Oracle snapshot action.

func SetupCpDsnSnowflakeDelta

func SetupCpDsnSnowflakeDelta(genericCfg interface{}, actionCfg interface{}) error

SetupCpDsnSnowflakeDelta copies values from genericCfg to actionCfg ready for a Snowflake Delta action.

func SetupCpDsnSnowflakeSnap

func SetupCpDsnSnowflakeSnap(genericCfg interface{}, actionCfg interface{}) error

SetupCpDsnSnowflakeSnap copies values from genericCfg to actionCfg ready for a Oracle to Snowflake Snapshot action.

func SetupCpMetaToSnowflake

func SetupCpMetaToSnowflake(genericCfg interface{}, actionCfg interface{}) error

SetupCpMetaToSnowflake copies required properties from genericCfg to actionCfg of type TableToSnowTableDDLConfig ready to execute RunTableToSnowflakeDDL().

func SetupCpOraOraDelta

func SetupCpOraOraDelta(genericCfg interface{}, actionCfg interface{}) error

SetupCpOraOraSnap copies values from genericCfg to actionCfg ready for Oracle to Oracle snapshot action.

func SetupCpOraOraSnap

func SetupCpOraOraSnap(genericCfg interface{}, actionCfg interface{}) error

SetupCpOraOraSnap copies values from genericCfg to actionCfg ready for Oracle to Oracle snapshot action.

func SetupCpOraS3Delta

func SetupCpOraS3Delta(genericCfg interface{}, actionCfg interface{}) error

SetupCpOraS3Snap copies values from genericCfg to actionCfg ready for a Oracle to S3 action.

func SetupCpOraS3Snap

func SetupCpOraS3Snap(genericCfg interface{}, actionCfg interface{}) error

SetupCpOraS3Snap copies values from genericCfg to actionCfg ready for a Oracle to S3 action.

func SetupCpOraSnowflakeDelta

func SetupCpOraSnowflakeDelta(genericCfg interface{}, actionCfg interface{}) error

SetupCpOraSnowflakeDelta copies values from genericCfg to actionCfg ready for a Snowflake Delta action.

func SetupCpOraSnowflakeSnap

func SetupCpOraSnowflakeSnap(genericCfg interface{}, actionCfg interface{}) error

SetupCpOraSnowflakeSnap copies values from genericCfg to actionCfg ready for a Oracle to Snowflake Snapshot action.

func SetupCpS3SnowflakeDelta

func SetupCpS3SnowflakeDelta(genericCfg interface{}, actionCfg interface{}) error

func SetupCpS3SnowflakeSnap

func SetupCpS3SnowflakeSnap(genericCfg interface{}, actionCfg interface{}) error

SetupCpS3SnowflakeSnap copies values from genericCfg to actionCfg ready for a S3 to Snowflake Snapshot action.

func SetupCpS3StdoutSnap

func SetupCpS3StdoutSnap(genericCfg interface{}, actionCfg interface{}) error

SetupCpS3SnowflakeSnap copies values from genericCfg to actionCfg ready for a S3 to Snowflake Snapshot action.

func SetupCqnToOracleSync

func SetupCqnToOracleSync(genericCfg interface{}, actionCfg interface{}) error

func SetupCqnToSnowflakeSync

func SetupCqnToSnowflakeSync(genericCfg interface{}, actionCfg interface{}) error

func SetupOracleToOracleSync

func SetupOracleToOracleSync(genericCfg interface{}, actionCfg interface{}) error

func SetupOracleToSnowflakeSync

func SetupOracleToSnowflakeSync(genericCfg interface{}, actionCfg interface{}) error

Types

type Action

type Action struct {
	FnAction   func(actionCfg interface{}) error                         // the function to execute the action
	ActionCfg  interface{}                                               // the config struct to pass to the FnAction
	FnSetupCfg func(genericCfg interface{}, actionCfg interface{}) error // the function to convert generic cfg to action-specific config for the FnAction
}

func GetCpDeltaAction

func GetCpDeltaAction(sourceType string, targetType string) (Action, error)

GetCpDeltaAction returns the "cp delta" Action based on sourceType and targetTypes supplied.

func GetCpMetaAction

func GetCpMetaAction(sourceType string, targetType string) (Action, error)

GetCpMetaAction returns the "cp meta" Action based on sourceType and targetTypes supplied.

func GetCpSnapAction

func GetCpSnapAction(sourceType string, targetType string) (Action, error)

GetCpSnapAction returns the "cp snap" Action based on sourceType and targetTypes supplied.

func GetSyncBatchAction

func GetSyncBatchAction(sourceType string, targetType string) (Action, error)

GetSyncBatchAction returns the "sync" Action based on sourceType and targetTypes supplied.

func GetSyncEventsAction

func GetSyncEventsAction(sourceType string, targetType string) (Action, error)

GetSyncBatchAction returns the "sync" Action based on sourceType and targetTypes supplied.

type ConnectionConfig

type ConnectionConfig struct {
	ConfigFile        ConnectionGetterSetter
	LogicalName       string
	Type              string
	ConnDetails       ConnectionValidator // interface{} // type in (DsnConnectionDetails, OracleConnectionDetails, SnowflakeConnectionDetails, NetezzaConnectionDetails)
	Force             bool
	MustUseOdbcScheme bool
}

type ConnectionGetterSetter

type ConnectionGetterSetter interface {
	Get(key string, out interface{}) error
	Set(key string, val interface{}) error
	Delete(key string) error
}

type ConnectionHandler

type ConnectionHandler interface {
	GetConnectionType(connectionName string) (connectionType string, err error)
	GetConnectionDetails(connectionName string) (connectionDetails *shared.ConnectionDetails, err error)
}

type ConnectionLoader

type ConnectionLoader interface {
	LoadConnection(connectionName string) (shared.ConnectionDetails, error)
}

type ConnectionObject

type ConnectionObject struct {
	ConnectionObject string `errorTxt:"<connection>.[<schema>.]<table or view>" mandatory:"yes"`
	// contains filtered or unexported fields
}

ConnectionObject should be constructed with public property ConnectionObject set using format: <connection>[.<schema>].<object>

func (*ConnectionObject) GetConnectionName

func (c *ConnectionObject) GetConnectionName() string

func (*ConnectionObject) GetObject

func (c *ConnectionObject) GetObject() string

type ConnectionTypesFilter

type ConnectionTypesFilter func(subcommand, subCommandFilter, srcType, srcTypePrefix string) (retval bool)

type ConnectionValidator

type ConnectionValidator interface {
	Parse() error
	GetMap(m map[string]string) map[string]string
	GetScheme() (string, error)
}

type CpConfig

type CpConfig struct {
	// Connections
	SrcAndTgtConnections
	// Generic
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	// Snowflake common
	SnowStageName     string `errorTxt:"Snowflake stage" mandatory:"yes"`
	BucketRegion      string `errorTxt:"s3 region" mandatory:"yes"`
	BucketName        string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix      string `errorTxt:"s3 prefix"`
	CsvFileNamePrefix string `errorTxt:"csv file name prefix" mandatory:"yes"`
	CsvRegexp         string `errorTxt:"csv file regexp filter"`
	CsvHeaderFields   string `errorTxt:"csv header fields"`
	CsvMaxFileRows    string `errorTxt:"csv max file rows"`
	CsvMaxFileBytes   string `errorTxt:"csv max file bytes"`
	// Delta action specific
	SQLBatchDriverField    string `errorTxt:"source driver field" mandatory:"yes"`
	SQLBatchStartSequence  int    `errorTxt:"SQL batch start sequence (number)" mandatory:"yes"`
	SQLBatchStartDateTime  string `errorTxt:"SQL batch start date-time" mandatory:"yes"`
	SQLBatchSizeSeconds    string `errorTxt:"SQL batch size seconds"`
	SQLBatchSize           string `errorTxt:"SQL batch size days"`
	SQLPrimaryKeyFieldsCsv string `errorTxt:"primary key fields CSV"`
	// Metadata action specific
	ExecuteDDL bool
	// Oracle-Oracle action specific
	CommitBatchSize string
	ExecBatchSize   string
	// Target specific
	AppendTarget bool
}

type CreateStageConfig

type CreateStageConfig struct {
	// Connections
	Connections    ConnectionHandler
	SourceString   ConnectionObject
	TgtConnDetails *shared.ConnectionDetails
	// Richard 2020021 - commented old specific config:
	// SnowConnDetails rdbms.SnowflakeConnectionDetails
	// Generic
	LogLevel         string `errorTxt:"log level" mandatory:"yes"`
	ExecuteDDL       bool
	StackDumpOnPanic bool
	StageName        string `errorTxt:"Snowflake stage" mandatory:"yes"`
	S3Url            string `errorTxt:"AWS S3 URL" mandatory:"yes"`
	S3Key            string `errorTxt:"AWS S3 access key" mandatory:"yes"`
	S3Secret         string `errorTxt:"AWS S3 secret key" mandatory:"yes"`
}

type DefaultAddConfig

type DefaultAddConfig struct {
	ConfigFile *config.File `errorTxt:"config-file" mandatory:"yes"`
	Key        string       `errorTxt:"key" mandatory:"yes"`
	Value      string       `errorTxt:"value" mandatory:"yes"`
	Force      bool
}

type DefaultRemoveConfig

type DefaultRemoveConfig struct {
	ConfigFile *config.File `errorTxt:"config-file" mandatory:"yes"`
	Key        string       `errorTxt:"key" mandatory:"yes"`
}

type DemoCleanupConfig

type DemoCleanupConfig struct {
	LogLevel         string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic bool
	ExecuteDDL       bool
	SourceString     ConnectionObject
	TargetString     ConnectionObject
	SrcConnDetails   *shared.ConnectionDetails
	TgtConnDetails   *shared.ConnectionDetails
	OraConnDetails   *shared.DsnConnectionDetails
	SnowConnDetails  *shared.DsnConnectionDetails
	OraSchemaTable   rdbms.SchemaTable // reused for Snowflake table.
	SnowStageName    string            `errorTxt:"Snowflake stage name" mandatory:"yes"`
}

type DemoSetupConfig

type DemoSetupConfig struct {
	LogLevel         string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic bool
	ExecuteDDL       bool
	OraSchemaTable   rdbms.SchemaTable // reused for Snowflake table.
	SourceString     ConnectionObject
	TargetString     ConnectionObject
	SrcConnDetails   *shared.ConnectionDetails
	TgtConnDetails   *shared.ConnectionDetails
	OraConnDetails   *shared.DsnConnectionDetails
	SnowConnDetails  *shared.DsnConnectionDetails
	SnowStageName    string `errorTxt:"Snowflake stage name" mandatory:"yes"`
	SnowS3Url        string `errorTxt:"Snowflake stage S3 URL" mandatory:"yes"`
	SnowS3Key        string `errorTxt:"S3 access key for Snowflake stage" mandatory:"yes"`
	SnowS3Secret     string `errorTxt:"S3 secret key for Snowflake stage" mandatory:"yes"`
}

type DiffConfig

type DiffConfig struct {
	SrcAndTgtConnections
	SrcConnDetails            *shared.ConnectionDetails
	TgtConnDetails            *shared.ConnectionDetails
	SrcSchemaTable            rdbms.SchemaTable
	TgtSchemaTable            rdbms.SchemaTable
	SQLPrimaryKeyFieldsCsv    string `errorTxt:"primary key fields CSV" mandatory:"yes"`
	AbortAfterNumRecords      int
	OutputAllDiffFields       bool
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type DsnS3DeltaConfig

type DsnS3DeltaConfig struct {
	SourceConnection          string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection          string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcDsnSchemaTable         rdbms.SchemaTable
	SrcConnDetails            *shared.ConnectionDetails
	TgtConnDetails            *shared.ConnectionDetails
	CsvFileNamePrefix         string `errorTxt:"csv file name prefix" mandatory:"yes"`
	CsvHeaderFields           string `errorTxt:"csv header fields"`
	CsvMaxFileRows            string `errorTxt:"csv max file rows"`
	CsvMaxFileBytes           string `errorTxt:"csv max file bytes"`
	RepeatInterval            int    `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
	// Delta
	SQLBatchDriverField   string `errorTxt:"source date field" mandatory:"yes"`
	SQLBatchStartDateTime string `errorTxt:"SQL batch start date-time" mandatory:"yes"`
	SQLBatchStartSequence string `errorTxt:"SQL batch start sequence (number)" mandatory:"yes"`
	SQLBatchSizeSeconds   string `errorTxt:"SQL batch size seconds"`
	SQLBatchSize          string `errorTxt:"SQL batch size days"`
}

type DsnS3SnapConfig

type DsnS3SnapConfig struct {
	SourceConnection          string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection          string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcSchemaTable            rdbms.SchemaTable
	SrcConnDetails            *shared.ConnectionDetails
	TgtConnDetails            *shared.ConnectionDetails
	CsvFileNamePrefix         string `errorTxt:"csv file name prefix" mandatory:"yes"`
	CsvHeaderFields           string `errorTxt:"csv header fields"`
	CsvMaxFileRows            string `errorTxt:"csv max file rows"`
	CsvMaxFileBytes           string `errorTxt:"csv max file bytes"`
	RepeatInterval            int    `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type DsnSnapConfig

type DsnSnapConfig struct {
	SourceConnection          string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection          string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcConnDetails            *shared.ConnectionDetails
	TgtConnDetails            *shared.ConnectionDetails
	SrcSchemaTable            rdbms.SchemaTable
	TgtSchemaTable            rdbms.SchemaTable
	AppendTarget              bool
	CommitBatchSize           string
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type DsnSnowflakeDeltaConfig

type DsnSnowflakeDeltaConfig struct {
	SourceConnection string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection string `errorTxt:"target <connection>" mandatory:"yes"`
	DsnSchemaTable   rdbms.SchemaTable
	SrcConnDetails   *shared.ConnectionDetails
	TgtConnDetails   *shared.ConnectionDetails
	// Richard 2020021 - commented old specific config:
	// OraConnDetails    shared.OracleConnectionDetails
	// SnowConnDetails   rdbms.SnowflakeConnectionDetails
	SnowTableName     string `errorTxt:"Snowflake [schema.]table" mandatory:"yes"`
	SnowStageName     string `errorTxt:"Snowflake stage" mandatory:"yes"`
	BucketRegion      string `errorTxt:"s3 region" mandatory:"yes"`
	BucketName        string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix      string `errorTxt:"s3 prefix"`
	CsvFileNamePrefix string `errorTxt:"csv file name prefix" mandatory:"yes"`
	CsvHeaderFields   string `errorTxt:"csv header fields"`
	CsvMaxFileRows    string `errorTxt:"csv max file rows"`
	CsvMaxFileBytes   string `errorTxt:"csv max file bytes"`
	// Generic
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
	// Delta
	SQLPrimaryKeyFieldsCsv string `errorTxt:"primary key fields CSV" mandatory:"yes"`
	SQLBatchDriverField    string `errorTxt:"source date field" mandatory:"yes"`
	SQLBatchStartDateTime  string `errorTxt:"SQL batch start date-time" mandatory:"yes"`
	SQLBatchStartSequence  string `errorTxt:"SQL batch start sequence (number)" mandatory:"yes"`
	SQLBatchSizeSeconds    string `errorTxt:"SQL batch size seconds"`
	SQLBatchSize           string `errorTxt:"SQL batch size days"`
}

type DsnSnowflakeSnapConfig

type DsnSnowflakeSnapConfig struct {
	SourceConnection          string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection          string `errorTxt:"target <connection>" mandatory:"yes"`
	DsnSchemaTable            rdbms.SchemaTable
	SrcConnDetails            *shared.ConnectionDetails
	TgtConnDetails            *shared.ConnectionDetails
	SnowTableName             string `errorTxt:"Snowflake [schema.]table" mandatory:"yes"`
	SnowStageName             string `errorTxt:"Snowflake stage" mandatory:"yes"`
	BucketRegion              string `errorTxt:"s3 region" mandatory:"yes"`
	BucketName                string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix              string `errorTxt:"s3 prefix"`
	CsvFileNamePrefix         string `errorTxt:"csv file name prefix"`
	CsvHeaderFields           string `errorTxt:"csv header fields"`
	CsvMaxFileRows            string `errorTxt:"csv max file rows"`
	CsvMaxFileBytes           string `errorTxt:"csv max file bytes"`
	AppendTarget              bool
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type OraOraDeltaConfig

type OraOraDeltaConfig struct {
	SourceConnection  string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection  string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcOraSchemaTable rdbms.SchemaTable
	TgtOraSchemaTable rdbms.SchemaTable
	SrcConnDetails    *shared.ConnectionDetails
	TgtConnDetails    *shared.ConnectionDetails
	// Richard 2020021 - commented old specific config:
	// TgtOraConnDetails shared.OracleConnectionDetails
	// SrcOraConnDetails shared.OracleConnectionDetails
	CommitBatchSize string
	ExecBatchSize   string
	// General
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
	// Delta
	SQLPrimaryKeyFieldsCsv string `errorTxt:"primary key fields CSV" mandatory:"yes"`
	SQLBatchDriverField    string `errorTxt:"source driver field" mandatory:"yes"`
	SQLBatchStartSequence  string `errorTxt:"SQL batch start sequence (number)" mandatory:"yes"`
	SQLBatchStartDateTime  string `errorTxt:"SQL batch start date-time" mandatory:"yes"`
}

type OraOraSnapConfig

type OraOraSnapConfig struct {
	SourceConnection  string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection  string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcOraSchemaTable rdbms.SchemaTable
	TgtOraSchemaTable rdbms.SchemaTable
	SrcConnDetails    *shared.ConnectionDetails
	TgtConnDetails    *shared.ConnectionDetails
	// Richard 2020021 - commented old specific config:
	// SrcOraConnDetails         shared.OracleConnectionDetails
	// TgtOraConnDetails         shared.OracleConnectionDetails
	AppendTarget              bool
	CommitBatchSize           string
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type OraS3DeltaConfig

type OraS3DeltaConfig struct {
	SourceConnection  string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection  string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcOraSchemaTable rdbms.SchemaTable
	SrcConnDetails    *shared.ConnectionDetails
	TgtConnDetails    *shared.ConnectionDetails
	// Richard 2020021 - commented old specific config:
	// SrcOraConnDetails         shared.OracleConnectionDetails
	// TgtS3Bucket               s3.AwsS3Bucket
	CsvFileNamePrefix         string `errorTxt:"csv file name prefix" mandatory:"yes"`
	CsvHeaderFields           string `errorTxt:"csv header fields"`
	CsvMaxFileRows            string `errorTxt:"csv max file rows"`
	CsvMaxFileBytes           string `errorTxt:"csv max file bytes"`
	RepeatInterval            int    `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
	// Delta
	SQLBatchDriverField   string `errorTxt:"source date field" mandatory:"yes"`
	SQLBatchStartDateTime string `errorTxt:"SQL batch start date-time" mandatory:"yes"`
	SQLBatchStartSequence string `errorTxt:"SQL batch start sequence (number)" mandatory:"yes"`
	SQLBatchSizeSeconds   string `errorTxt:"SQL batch size seconds"`
	SQLBatchSize          string `errorTxt:"SQL batch size days"`
}

type OraS3SnapConfig

type OraS3SnapConfig struct {
	SourceConnection          string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection          string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcOraSchemaTable         rdbms.SchemaTable
	SrcConnDetails            *shared.ConnectionDetails
	TgtConnDetails            *shared.ConnectionDetails
	CsvFileNamePrefix         string `errorTxt:"csv file name prefix" mandatory:"yes"`
	CsvHeaderFields           string `errorTxt:"csv header fields"`
	CsvMaxFileRows            string `errorTxt:"csv max file rows"`
	CsvMaxFileBytes           string `errorTxt:"csv max file bytes"`
	RepeatInterval            int    `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type OraSchemaTrigger

type OraSchemaTrigger struct {
	SchemaTrigger string `errorTxt:"[schema.]trigger" mandatory:"yes"`
}

type OraSnowflakeDeltaConfig

type OraSnowflakeDeltaConfig struct {
	SourceConnection string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection string `errorTxt:"target <connection>" mandatory:"yes"`
	OraSchemaTable   rdbms.SchemaTable
	SrcConnDetails   *shared.ConnectionDetails
	TgtConnDetails   *shared.ConnectionDetails
	// Richard 2020021 - commented old specific config:
	// OraConnDetails    shared.OracleConnectionDetails
	// SnowConnDetails   rdbms.SnowflakeConnectionDetails
	SnowTableName     string `errorTxt:"Snowflake [schema.]table" mandatory:"yes"`
	SnowStageName     string `errorTxt:"Snowflake stage" mandatory:"yes"`
	BucketRegion      string `errorTxt:"s3 region" mandatory:"yes"`
	BucketName        string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix      string `errorTxt:"s3 prefix"`
	CsvFileNamePrefix string `errorTxt:"csv file name prefix" mandatory:"yes"`
	CsvHeaderFields   string `errorTxt:"csv header fields"`
	CsvMaxFileRows    string `errorTxt:"csv max file rows"`
	CsvMaxFileBytes   string `errorTxt:"csv max file bytes"`
	// Generic
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
	// Delta
	SQLPrimaryKeyFieldsCsv string `errorTxt:"primary key fields CSV" mandatory:"yes"`
	SQLBatchDriverField    string `errorTxt:"source date field" mandatory:"yes"`
	SQLBatchStartDateTime  string `errorTxt:"SQL batch start date-time" mandatory:"yes"`
	SQLBatchStartSequence  string `errorTxt:"SQL batch start sequence (number)" mandatory:"yes"`
	SQLBatchSizeSeconds    string `errorTxt:"SQL batch size seconds"`
	SQLBatchSize           string `errorTxt:"SQL batch size days"`
}

type OraSnowflakeSnapConfig

type OraSnowflakeSnapConfig struct {
	SourceConnection          string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection          string `errorTxt:"target <connection>" mandatory:"yes"`
	OraSchemaTable            rdbms.SchemaTable
	SrcConnDetails            *shared.ConnectionDetails
	TgtConnDetails            *shared.ConnectionDetails
	SnowTableName             string `errorTxt:"Snowflake [schema.]table" mandatory:"yes"`
	SnowStageName             string `errorTxt:"Snowflake stage" mandatory:"yes"`
	BucketRegion              string `errorTxt:"s3 region" mandatory:"yes"`
	BucketName                string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix              string `errorTxt:"s3 prefix"`
	CsvFileNamePrefix         string `errorTxt:"csv file name prefix"`
	CsvHeaderFields           string `errorTxt:"csv header fields"`
	CsvMaxFileRows            string `errorTxt:"csv max file rows"`
	CsvMaxFileBytes           string `errorTxt:"csv max file bytes"`
	AppendTarget              bool
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type PipeConfig

type PipeConfig struct {
	TransformFile             string
	Connections               ConnectionLoader
	WithWebService            bool `errorTxt:"with-server" mandatory:"no"`
	LogLevel                  string
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type QueryConfig

type QueryConfig struct {
	Connections      ConnectionLoader
	SourceString     ConnectionObject
	Query            string
	PrintHeader      bool
	DryRun           bool
	LogLevel         string
	StackDumpOnPanic bool
}

type ResponseSimple

type ResponseSimple struct {
	ServerStatus WebServerResponse `json:"status"`
}

type ResponseTransformLaunch

type ResponseTransformLaunch struct {
	Status      WebServerResponse `json:"status"`
	Message     string            `json:"message"`
	TransformId string            `json:"pipeId"`
}

type ResponseTransformList

type ResponseTransformList struct {
	Status        WebServerResponse   `json:"status"`
	TransformList []TransformListItem `json:"pipes"`
}

type ResponseTransformStats

type ResponseTransformStats struct {
	Status       WebServerResponse `json:"status"`
	Message      string            `json:"message"`
	StatsSummary interface{}       `json:"pipeStats"`
}

type ResponseTransformStatus

type ResponseTransformStatus struct {
	Status          WebServerResponse         `json:"status"`
	Message         string                    `json:"message"`
	TransformStatus transform.TransformStatus `json:"pipeStatus"`
}

type ResponseTransformStop

type ResponseTransformStop struct {
	Status      WebServerResponse `json:"status"`
	Message     string            `json:"message"`
	TransformId string            `json:"pipeId"`
}

type S3SnowflakeDeltaConfig

type S3SnowflakeDeltaConfig struct {
	SrcConnDetails    *shared.ConnectionDetails
	TgtConnDetails    *shared.ConnectionDetails
	SourceConnection  string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection  string `errorTxt:"target <connection>" mandatory:"yes"`
	SnowTableName     string `errorTxt:"Snowflake [schema.]table" mandatory:"yes"`
	SnowStageName     string `errorTxt:"Snowflake stage" mandatory:"yes"`
	BucketRegion      string `errorTxt:"s3 region" mandatory:"yes"`
	BucketName        string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix      string `errorTxt:"s3 prefix"`
	CsvFileNamePrefix string `errorTxt:"table-files name prefix (differs from bucket prefix)" mandatory:"yes"`
	CsvRegexp         string `errorTxt:"table-files regexp filter"`
	// Generic
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
	// Delta
	SQLPrimaryKeyFieldsCsv string `errorTxt:"primary key fields CSV" mandatory:"yes"`
	SQLBatchDriverField    string `errorTxt:"source date field" mandatory:"yes"`
	SQLBatchStartDateTime  string `errorTxt:"SQL batch start date-time" mandatory:"yes"`
	SQLBatchStartSequence  string `errorTxt:"SQL batch start sequence (number)" mandatory:"yes"`
}

type S3SnowflakeSnapConfig

type S3SnowflakeSnapConfig struct {
	SourceConnection          string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection          string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcConnDetails            *shared.ConnectionDetails
	TgtConnDetails            *shared.ConnectionDetails
	SnowTableName             string `errorTxt:"Snowflake [schema.]table" mandatory:"yes"`
	SnowStageName             string `errorTxt:"Snowflake stage" mandatory:"yes"`
	BucketRegion              string `errorTxt:"s3 region" mandatory:"yes"`
	BucketName                string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix              string `errorTxt:"s3 prefix"`
	CsvFileNamePrefix         string `errorTxt:"table-files name prefix (differs from bucket prefix)" mandatory:"yes"`
	CsvRegexp                 string `errorTxt:"table-files regexp filter"`
	AppendTarget              bool
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type S3StdoutSnapConfig

type S3StdoutSnapConfig struct {
	SourceConnection  string `errorTxt:"source <connection>" mandatory:"yes"`
	SrcConnDetails    *shared.ConnectionDetails
	BucketRegion      string `errorTxt:"s3 region" mandatory:"yes"`
	BucketName        string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix      string `errorTxt:"s3 prefix"`
	CsvFileNamePrefix string `errorTxt:"table-files name prefix (differs from bucket prefix)"`
	CsvRegexp         string `errorTxt:"table-files regexp filter"`
	LogLevel          string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic  bool
}

type SrcAndTgtConnections

type SrcAndTgtConnections struct {
	Connections  ConnectionHandler
	SourceString ConnectionObject
	TargetString ConnectionObject
}

type StageDDLConfig

type StageDDLConfig struct {
	LogLevel string
}

type SyncConfig

type SyncConfig struct {
	// Connections
	SrcAndTgtConnections
	// Generic
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	StatsDumpFrequencySeconds int
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	// Sync Specific
	SQLPrimaryKeyFieldsCsv             string
	SQLTargetTableOriginRowIdFieldName string
	CommitBatchSize                    int
	TxtBatchNumRows                    int
	// Snowflake Specific
	SnowTableName     string `errorTxt:"Snowflake [schema.]table" mandatory:"yes"`
	SnowStageName     string `errorTxt:"Snowflake stage" mandatory:"yes"`
	BucketRegion      string `errorTxt:"s3 region" mandatory:"yes"`
	BucketName        string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix      string `errorTxt:"s3 prefix"`
	CsvFileNamePrefix string `errorTxt:"csv file name prefix" mandatory:"yes"`
	CsvHeaderFields   string `errorTxt:"csv header fields"`
	CsvMaxFileRows    int    `errorTxt:"csv max file rows"`
	CsvMaxFileBytes   int    `errorTxt:"csv max file bytes"`
}

type SyncCqnOracleConfig

type SyncCqnOracleConfig struct {
	SourceConnection string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcConnDetails   *shared.ConnectionDetails
	TgtConnDetails   *shared.ConnectionDetails
	// Richard 2020021 - commented old specific config:
	// SrcOraConnDetails                  shared.OracleConnectionDetails
	// TgtOraConnDetails                  shared.OracleConnectionDetails
	SrcOraSchemaTable                  rdbms.SchemaTable
	TgtOraSchemaTable                  rdbms.SchemaTable
	SQLPrimaryKeyFieldsCsv             string `errorTxt:"primary key fields CSV for the source table" mandatory:"yes"`
	SQLTargetTableOriginRowIdFieldName string `errorTxt:"target table rowId field storing Oracle rowId values from the origin table" mandatory:"yes"`
	CommitBatchSize                    int
	// TxtBatchNumRows - not used since Oracle uses array binding.
	// Generic.
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type SyncCqnSnowflakeConfig

type SyncCqnSnowflakeConfig struct {
	SourceConnection string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcConnDetails   *shared.ConnectionDetails
	TgtConnDetails   *shared.ConnectionDetails
	// Richard 2020021 - commented old specific config:
	// SrcOraConnDetails                  shared.OracleConnectionDetails
	// TgtSnowConnDetails                 rdbms.SnowflakeConnectionDetails
	SrcOraSchemaTable                  rdbms.SchemaTable
	TgtSnowSchemaTable                 rdbms.SchemaTable
	SQLPrimaryKeyFieldsCsv             string `errorTxt:"primary key fields CSV for the source table" mandatory:"yes"`
	SQLTargetTableOriginRowIdFieldName string `errorTxt:"target table rowId field storing Oracle rowId values from the origin table" mandatory:"yes"`
	// Snowflake specific.
	SnowStageName     string `errorTxt:"Snowflake stage" mandatory:"yes"`
	BucketName        string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix      string `errorTxt:"s3 prefix"`
	BucketRegion      string `errorTxt:"s3 region" mandatory:"yes"`
	CsvFileNamePrefix string `errorTxt:"csv file name prefix"`
	CsvHeaderFields   string `errorTxt:"csv header fields"`
	CsvMaxFileBytes   int    `errorTxt:"csv max file bytes"`
	CsvMaxFileRows    int    `errorTxt:"csv max file rows"`
	// Generic.
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type SyncOracleOracleConfig

type SyncOracleOracleConfig struct {
	SrcConnDetails            *shared.ConnectionDetails
	TgtConnDetails            *shared.ConnectionDetails
	SrcSchemaTable            rdbms.SchemaTable
	TgtSchemaTable            rdbms.SchemaTable
	SQLPrimaryKeyFieldsCsv    string `errorTxt:"primary key fields CSV" mandatory:"yes"`
	CommitBatchSize           int
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type SyncOracleSnowflakeConfig

type SyncOracleSnowflakeConfig struct {
	SourceConnection string `errorTxt:"source <connection>" mandatory:"yes"`
	TargetConnection string `errorTxt:"target <connection>" mandatory:"yes"`
	SrcConnDetails   *shared.ConnectionDetails
	TgtConnDetails   *shared.ConnectionDetails
	// Richard 2020021 - commented old specific config:
	// SrcOraConnDetails  shared.OracleConnectionDetails
	// TgtSnowConnDetails rdbms.SnowflakeConnectionDetails
	SrcOraSchemaTable  rdbms.SchemaTable
	TgtSnowSchemaTable rdbms.SchemaTable
	// Sync specific.
	SQLPrimaryKeyFieldsCsv string `errorTxt:"primary key fields CSV" mandatory:"yes"`
	// Snowflake specific.
	SnowStageName     string `errorTxt:"Snowflake stage" mandatory:"yes"`
	BucketName        string `errorTxt:"s3 bucket" mandatory:"yes"`
	BucketPrefix      string `errorTxt:"s3 prefix"`
	BucketRegion      string `errorTxt:"s3 region" mandatory:"yes"`
	CsvFileNamePrefix string `errorTxt:"csv file name prefix"`
	// Richard 20190927: we use the source table columns instead of header fields:
	//   CsvHeaderFields   string `errorTxt:"csv header fields"`
	CsvMaxFileBytes int `errorTxt:"csv max file bytes"`
	CsvMaxFileRows  int `errorTxt:"csv max file rows"`
	// Generic
	RepeatInterval            int `errorTxt:"repeat interval"`
	ExportConfigType          string
	ExportIncludeConnections  bool
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	StackDumpOnPanic          bool
	StatsDumpFrequencySeconds int
}

type TableToSnowTableDDLConfig

type TableToSnowTableDDLConfig struct {
	SrcSchemaTable   rdbms.SchemaTable
	SnowSchemaTable  rdbms.SchemaTable
	SrcConnDetails   *shared.ConnectionDetails
	TgtConnDetails   *shared.ConnectionDetails
	ExecuteDDL       bool
	LogLevel         string
	StackDumpOnPanic bool
}

type TransformListItem

type TransformListItem struct {
	TransformId          string           `json:"pipeId"`
	TransformDescription string           `json:"pipeDescription"`
	TransformStatus      transform.Status `json:"pipeStatus"`
}

type TriggerDDLConfig

type TriggerDDLConfig struct {
	LogLevel       string
	SchemaTable    rdbms.SchemaTable `errorTxt:"[schema.]table" mandatory:"yes"`
	SchemaTrigger  OraSchemaTrigger  `errorTxt:"[schema.]trigger" mandatory:"yes"`
	DateColumnName string            `errorTxt:"DATE column name" mandatory:"yes"`
}

type WebServerConfig

type WebServerConfig struct {
	LogLevel                  string `errorTxt:"log level" mandatory:"yes"`
	Scheme                    string `errorTxt:"scheme" mandatory:"no"`
	Addr                      net.IP `errorTxt:"address" mandatory:"no"`
	Port                      int    `errorTxt:"log level" mandatory:"no"`
	Connections               ConnectionLoader
	StatsDumpFrequencySeconds int
	StackDumpOnPanic          bool
}

type WebServerResponse

type WebServerResponse uint32
const (
	Okay WebServerResponse = iota + 1
	Error
)

func (WebServerResponse) MarshalJSON

func (w WebServerResponse) MarshalJSON() ([]byte, error)

Jump to

Keyboard shortcuts

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