mirror of
https://github.com/hanzo-fi/payments.git
synced 2026-10-30 20:31:20 +00:00
* Manage configuration of polling period in connectors manager and enable override via env variables * Treat connector validation errors as http 4xx * Perform strict config validation only if connector being loaded for install or update * Add flags to configure notification outbox schedules * Only configure outbox schedule creation in worker * Improve manager config validation test coverage
128 lines
4.1 KiB
Go
128 lines
4.1 KiB
Go
package testserver
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/formancehq/go-libs/v3/bun/bunconnect"
|
|
"github.com/formancehq/go-libs/v3/otlp"
|
|
"github.com/formancehq/go-libs/v3/otlp/otlpmetrics"
|
|
"github.com/formancehq/go-libs/v3/profiling"
|
|
"github.com/formancehq/go-libs/v3/publish"
|
|
"github.com/formancehq/go-libs/v3/service"
|
|
"github.com/formancehq/go-libs/v3/temporal"
|
|
"github.com/formancehq/payments/cmd"
|
|
)
|
|
|
|
func Flags(command string, serverID string, configuration Configuration) []string {
|
|
if configuration.OutboxPollingInterval < time.Second {
|
|
configuration.OutboxPollingInterval = time.Second
|
|
}
|
|
|
|
args := []string{
|
|
command,
|
|
"--" + cmd.ListenFlag, ":0",
|
|
"--" + bunconnect.PostgresURIFlag, configuration.PostgresConfiguration.DatabaseSourceName,
|
|
"--" + cmd.ConfigEncryptionKeyFlag, "dummyval",
|
|
"--" + temporal.TemporalAddressFlag, configuration.TemporalAddress,
|
|
"--" + temporal.TemporalNamespaceFlag, configuration.TemporalNamespace,
|
|
"--" + temporal.TemporalInitSearchAttributesFlag, fmt.Sprintf("stack=%s", configuration.Stack),
|
|
"--" + cmd.StackFlag, configuration.Stack,
|
|
"--" + profiling.ProfilerEnableFlag + "=false",
|
|
}
|
|
|
|
if command == "worker" {
|
|
args = append(args, "--"+cmd.OutboxPollingIntervalFlag+fmt.Sprintf("=%s", configuration.OutboxPollingInterval))
|
|
if configuration.SkipOutboxScheduleCreation {
|
|
args = append(args, "--"+cmd.SkipOutboxScheduleCreationFlag+"=true")
|
|
}
|
|
}
|
|
|
|
if configuration.PostgresConfiguration.MaxIdleConns != 0 {
|
|
args = append(
|
|
args,
|
|
"--"+bunconnect.PostgresMaxIdleConnsFlag,
|
|
fmt.Sprint(configuration.PostgresConfiguration.MaxIdleConns),
|
|
)
|
|
}
|
|
if configuration.PostgresConfiguration.MaxOpenConns != 0 {
|
|
args = append(
|
|
args,
|
|
"--"+bunconnect.PostgresMaxOpenConnsFlag,
|
|
fmt.Sprint(configuration.PostgresConfiguration.MaxOpenConns),
|
|
)
|
|
}
|
|
if configuration.PostgresConfiguration.ConnMaxIdleTime != 0 {
|
|
args = append(
|
|
args,
|
|
"--"+bunconnect.PostgresConnMaxIdleTimeFlag,
|
|
fmt.Sprint(configuration.PostgresConfiguration.ConnMaxIdleTime),
|
|
)
|
|
}
|
|
if configuration.NatsURL != "" {
|
|
args = append(
|
|
args,
|
|
"--"+publish.PublisherNatsEnabledFlag,
|
|
"--"+publish.PublisherNatsURLFlag, configuration.NatsURL,
|
|
"--"+publish.PublisherTopicMappingFlag, fmt.Sprintf("*:%s", serverID),
|
|
)
|
|
}
|
|
if configuration.OTLPConfig != nil {
|
|
if configuration.OTLPConfig.Metrics != nil {
|
|
args = append(
|
|
args,
|
|
"--"+otlpmetrics.OtelMetricsExporterFlag, configuration.OTLPConfig.Metrics.Exporter,
|
|
)
|
|
if configuration.OTLPConfig.Metrics.KeepInMemory {
|
|
args = append(
|
|
args,
|
|
"--"+otlpmetrics.OtelMetricsKeepInMemoryFlag,
|
|
)
|
|
}
|
|
if configuration.OTLPConfig.Metrics.OTLPConfig != nil {
|
|
args = append(
|
|
args,
|
|
"--"+otlpmetrics.OtelMetricsExporterOTLPEndpointFlag, configuration.OTLPConfig.Metrics.OTLPConfig.Endpoint,
|
|
"--"+otlpmetrics.OtelMetricsExporterOTLPModeFlag, configuration.OTLPConfig.Metrics.OTLPConfig.Mode,
|
|
)
|
|
if configuration.OTLPConfig.Metrics.OTLPConfig.Insecure {
|
|
args = append(args, "--"+otlpmetrics.OtelMetricsExporterOTLPInsecureFlag)
|
|
}
|
|
}
|
|
if configuration.OTLPConfig.Metrics.RuntimeMetrics {
|
|
args = append(args, "--"+otlpmetrics.OtelMetricsRuntimeFlag)
|
|
}
|
|
if configuration.OTLPConfig.Metrics.MinimumReadMemStatsInterval != 0 {
|
|
args = append(
|
|
args,
|
|
"--"+otlpmetrics.OtelMetricsRuntimeMinimumReadMemStatsIntervalFlag,
|
|
configuration.OTLPConfig.Metrics.MinimumReadMemStatsInterval.String(),
|
|
)
|
|
}
|
|
if configuration.OTLPConfig.Metrics.PushInterval != 0 {
|
|
args = append(
|
|
args,
|
|
"--"+otlpmetrics.OtelMetricsExporterPushIntervalFlag,
|
|
configuration.OTLPConfig.Metrics.PushInterval.String(),
|
|
)
|
|
}
|
|
if len(configuration.OTLPConfig.Metrics.ResourceAttributes) > 0 {
|
|
args = append(
|
|
args,
|
|
"--"+otlp.OtelResourceAttributesFlag,
|
|
strings.Join(configuration.OTLPConfig.Metrics.ResourceAttributes, ","),
|
|
)
|
|
}
|
|
}
|
|
if configuration.OTLPConfig.BaseConfig.ServiceName != "" {
|
|
args = append(args, "--"+otlp.OtelServiceNameFlag, configuration.OTLPConfig.BaseConfig.ServiceName)
|
|
}
|
|
}
|
|
|
|
if configuration.Debug {
|
|
args = append(args, "--"+service.DebugFlag)
|
|
}
|
|
return args
|
|
}
|