From 12c67361ddaf8cdb218cd0df8eca0ed7ddf0fa23 Mon Sep 17 00:00:00 2001 From: Stephan D Date: Sat, 28 Feb 2026 20:56:26 +0100 Subject: [PATCH 1/2] refactored orchestrator and callbacks service to use pkg messsaging + envelope factory / handler --- api/edge/callbacks/config.dev.yml | 9 - api/edge/callbacks/config.yml | 8 - api/edge/callbacks/internal/config/module.go | 34 --- api/edge/callbacks/internal/config/service.go | 27 +-- api/edge/callbacks/internal/ingest/module.go | 17 +- api/edge/callbacks/internal/ingest/service.go | 228 ++++++++++-------- .../internal/server/internal/serverimp.go | 26 +- .../orchestrationv2/psvc/service_e2e_test.go | 15 +- .../orchestrationv2/psvc/status_publish.go | 114 ++------- .../paymentorchestrator/notification.go | 42 ++++ .../paymentorchestrator/processor.go | 51 ++++ .../paymentorchestrator/handler/interface.go | 9 + .../paymentorchestrator.go | 18 ++ api/pkg/model/payment_orchestrator_status.go | 29 +++ 14 files changed, 316 insertions(+), 311 deletions(-) create mode 100644 api/pkg/messaging/internal/notifications/paymentorchestrator/notification.go create mode 100644 api/pkg/messaging/internal/notifications/paymentorchestrator/processor.go create mode 100644 api/pkg/messaging/notifications/paymentorchestrator/handler/interface.go create mode 100644 api/pkg/messaging/notifications/paymentorchestrator/paymentorchestrator.go create mode 100644 api/pkg/model/payment_orchestrator_status.go diff --git a/api/edge/callbacks/config.dev.yml b/api/edge/callbacks/config.dev.yml index 0d1ae1b3..db6c7aa8 100644 --- a/api/edge/callbacks/config.dev.yml +++ b/api/edge/callbacks/config.dev.yml @@ -28,15 +28,6 @@ messaging: reconnect_wait: 5 buffer_size: 1024 -ingest: - stream: CALLBACKS - subject: callbacks.events - durable: callbacks-ingest - batch_size: 32 - fetch_timeout_ms: 2000 - idle_sleep_ms: 500 - - delivery: worker_concurrency: 8 worker_poll_ms: 200 diff --git a/api/edge/callbacks/config.yml b/api/edge/callbacks/config.yml index 39908990..4416619a 100644 --- a/api/edge/callbacks/config.yml +++ b/api/edge/callbacks/config.yml @@ -28,14 +28,6 @@ messaging: reconnect_wait: 5 buffer_size: 1024 -ingest: - stream: CALLBACKS - subject: callbacks.events - durable: callbacks-ingest - batch_size: 32 - fetch_timeout_ms: 2000 - idle_sleep_ms: 500 - delivery: worker_concurrency: 8 worker_poll_ms: 200 diff --git a/api/edge/callbacks/internal/config/module.go b/api/edge/callbacks/internal/config/module.go index 89d87929..6f50beb5 100644 --- a/api/edge/callbacks/internal/config/module.go +++ b/api/edge/callbacks/internal/config/module.go @@ -10,15 +10,6 @@ import ( const ( defaultShutdownTimeoutSeconds = 15 defaultMetricsAddress = ":9420" - defaultIngestStream = "CALLBACKS" - defaultIngestSubject = "callbacks.events" - defaultIngestDurable = "callbacks-ingest" - defaultIngestBatchSize = 32 - defaultIngestFetchTimeoutMS = 2000 - defaultIngestIdleSleepMS = 500 - defaultTaskCollection = "callback_tasks" - defaultInboxCollection = "callback_inbox" - defaultEndpointsCollection = "webhook_endpoints" defaultWorkerConcurrency = 8 defaultWorkerPollIntervalMS = 200 defaultLockTTLSeconds = 30 @@ -42,7 +33,6 @@ type Config struct { Metrics *MetricsConfig `yaml:"metrics"` Database *db.Config `yaml:"database"` Messaging *messaging.Config `yaml:"messaging"` - Ingest IngestConfig `yaml:"ingest"` Delivery DeliveryConfig `yaml:"delivery"` Security SecurityConfig `yaml:"security"` Secrets SecretsConfig `yaml:"secrets"` @@ -72,30 +62,6 @@ func (c *MetricsConfig) ListenAddress() string { return c.Address } -// IngestConfig configures JetStream ingestion. -type IngestConfig struct { - Stream string `yaml:"stream"` - Subject string `yaml:"subject"` - Durable string `yaml:"durable"` - BatchSize int `yaml:"batch_size"` - FetchTimeoutMS int `yaml:"fetch_timeout_ms"` - IdleSleepMS int `yaml:"idle_sleep_ms"` -} - -func (c *IngestConfig) FetchTimeout() time.Duration { - if c.FetchTimeoutMS <= 0 { - return time.Duration(defaultIngestFetchTimeoutMS) * time.Millisecond - } - return time.Duration(c.FetchTimeoutMS) * time.Millisecond -} - -func (c *IngestConfig) IdleSleep() time.Duration { - if c.IdleSleepMS <= 0 { - return time.Duration(defaultIngestIdleSleepMS) * time.Millisecond - } - return time.Duration(c.IdleSleepMS) * time.Millisecond -} - // DeliveryConfig controls dispatcher behavior. type DeliveryConfig struct { WorkerConcurrency int `yaml:"worker_concurrency"` diff --git a/api/edge/callbacks/internal/config/service.go b/api/edge/callbacks/internal/config/service.go index c6881f2d..88aa65fb 100644 --- a/api/edge/callbacks/internal/config/service.go +++ b/api/edge/callbacks/internal/config/service.go @@ -1,6 +1,7 @@ package config import ( + "bytes" "os" "strings" @@ -34,7 +35,9 @@ func (s *service) Load(path string) (*Config, error) { } cfg := &Config{} - if err := yaml.Unmarshal(data, cfg); err != nil { + decoder := yaml.NewDecoder(bytes.NewReader(data)) + decoder.KnownFields(true) + if err := decoder.Decode(cfg); err != nil { s.logger.Error("Failed to parse config yaml", zap.String("path", path), zap.Error(err)) return nil, merrors.InternalWrap(err, "failed to parse callbacks config") } @@ -58,25 +61,6 @@ func (s *service) applyDefaults(cfg *Config) { cfg.Metrics.Address = defaultMetricsAddress } - if strings.TrimSpace(cfg.Ingest.Stream) == "" { - cfg.Ingest.Stream = defaultIngestStream - } - if strings.TrimSpace(cfg.Ingest.Subject) == "" { - cfg.Ingest.Subject = defaultIngestSubject - } - if strings.TrimSpace(cfg.Ingest.Durable) == "" { - cfg.Ingest.Durable = defaultIngestDurable - } - if cfg.Ingest.BatchSize <= 0 { - cfg.Ingest.BatchSize = defaultIngestBatchSize - } - if cfg.Ingest.FetchTimeoutMS <= 0 { - cfg.Ingest.FetchTimeoutMS = defaultIngestFetchTimeoutMS - } - if cfg.Ingest.IdleSleepMS <= 0 { - cfg.Ingest.IdleSleepMS = defaultIngestIdleSleepMS - } - if cfg.Delivery.WorkerConcurrency <= 0 { cfg.Delivery.WorkerConcurrency = defaultWorkerConcurrency } @@ -139,9 +123,6 @@ func (s *service) validate(cfg *Config) error { if cfg.Delivery.MaxAttempts < 1 { return merrors.InvalidArgument("delivery.max_attempts must be > 0", "delivery.max_attempts") } - if cfg.Ingest.BatchSize < 1 { - return merrors.InvalidArgument("ingest.batch_size must be > 0", "ingest.batch_size") - } vaultAddress := strings.TrimSpace(cfg.Secrets.Vault.Address) vaultTokenEnv := strings.TrimSpace(cfg.Secrets.Vault.TokenEnv) vaultMountPath := strings.TrimSpace(cfg.Secrets.Vault.MountPath) diff --git a/api/edge/callbacks/internal/ingest/module.go b/api/edge/callbacks/internal/ingest/module.go index 4677c8fa..781c5594 100644 --- a/api/edge/callbacks/internal/ingest/module.go +++ b/api/edge/callbacks/internal/ingest/module.go @@ -4,10 +4,10 @@ import ( "context" "time" - "github.com/nats-io/nats.go" "github.com/tech/sendico/edge/callbacks/internal/events" "github.com/tech/sendico/edge/callbacks/internal/storage" "github.com/tech/sendico/edge/callbacks/internal/subscriptions" + mb "github.com/tech/sendico/pkg/messaging/broker" "github.com/tech/sendico/pkg/mlogger" ) @@ -16,21 +16,10 @@ type Observer interface { ObserveIngest(result string, duration time.Duration) } -// Config contains JetStream ingest settings. -type Config struct { - Stream string - Subject string - Durable string - BatchSize int - FetchTimeout time.Duration - IdleSleep time.Duration -} - // Dependencies configure the ingest service. type Dependencies struct { Logger mlogger.Logger - JetStream nats.JetStreamContext - Config Config + Broker mb.Broker Events events.Service Resolver subscriptions.Resolver InboxRepo storage.InboxRepo @@ -39,7 +28,7 @@ type Dependencies struct { Observer Observer } -// Service runs JetStream ingest workers. +// Service runs ingest workers. type Service interface { Start(ctx context.Context) Stop() diff --git a/api/edge/callbacks/internal/ingest/service.go b/api/edge/callbacks/internal/ingest/service.go index a352c74d..773eb831 100644 --- a/api/edge/callbacks/internal/ingest/service.go +++ b/api/edge/callbacks/internal/ingest/service.go @@ -2,59 +2,86 @@ package ingest import ( "context" + "encoding/json" "errors" "strings" "sync" "time" - "github.com/nats-io/nats.go" + "github.com/tech/sendico/edge/callbacks/internal/events" "github.com/tech/sendico/pkg/merrors" + pkgmsg "github.com/tech/sendico/pkg/messaging" + cons "github.com/tech/sendico/pkg/messaging/consumer" + me "github.com/tech/sendico/pkg/messaging/envelope" + pon "github.com/tech/sendico/pkg/messaging/notifications/paymentorchestrator" + np "github.com/tech/sendico/pkg/messaging/notifications/processor" "github.com/tech/sendico/pkg/mlogger" + "github.com/tech/sendico/pkg/model" "go.uber.org/zap" ) +const ( + loggerNameIngest = "ingest" + logFieldSubject = "subject" + + errBrokerRequired = "ingest: broker is required" + errEventsRequired = "ingest: events service is required" + errResolverRequired = "ingest: subscriptions resolver is required" + errInboxRepoRequired = "ingest: inbox repo is required" + errTaskRepoRequired = "ingest: task repo is required" + configFieldBroker = "broker" + configFieldEvents = "events" + configFieldResolver = "resolver" + configFieldInboxRepo = "inboxRepo" + configFieldTaskRepo = "taskRepo" + + logFailedStartConsumer = "Failed to start messaging consumer" + logIngestConsumerStarted = "Ingest consumer started" + logIngestConsumerStopped = "Ingest consumer stopped" + logIngestConsumerWarn = "Ingest consumer stopped with error" + + ingestResultOK = "ok" + ingestResultEmptyPayload = "empty_payload" + ingestResultInvalidEvent = "invalid_event" + ingestResultPayloadError = "payload_error" + ingestResultInboxError = "inbox_error" + ingestResultDuplicate = "duplicate" + ingestResultResolveError = "resolve_error" + ingestResultNoEndpoints = "no_endpoints" + ingestResultTaskError = "task_error" +) + type service struct { logger mlogger.Logger - js nats.JetStreamContext - cfg Config deps Dependencies + event model.NotificationEvent cancel context.CancelFunc wg sync.WaitGroup once sync.Once stop sync.Once + + mu sync.Mutex + consumer pkgmsg.Consumer + + processor np.EnvelopeProcessor } func newService(deps Dependencies) (Service, error) { - if deps.JetStream == nil { - return nil, merrors.InvalidArgument("ingest: jetstream context is required", "jetstream") + if deps.Broker == nil { + return nil, merrors.InvalidArgument(errBrokerRequired, configFieldBroker) } if deps.Events == nil { - return nil, merrors.InvalidArgument("ingest: events service is required", "events") + return nil, merrors.InvalidArgument(errEventsRequired, configFieldEvents) } if deps.Resolver == nil { - return nil, merrors.InvalidArgument("ingest: subscriptions resolver is required", "resolver") + return nil, merrors.InvalidArgument(errResolverRequired, configFieldResolver) } if deps.InboxRepo == nil { - return nil, merrors.InvalidArgument("ingest: inbox repo is required", "inboxRepo") + return nil, merrors.InvalidArgument(errInboxRepoRequired, configFieldInboxRepo) } if deps.TaskRepo == nil { - return nil, merrors.InvalidArgument("ingest: task repo is required", "taskRepo") - } - if strings.TrimSpace(deps.Config.Subject) == "" { - return nil, merrors.InvalidArgument("ingest: subject is required", "config.subject") - } - if strings.TrimSpace(deps.Config.Durable) == "" { - return nil, merrors.InvalidArgument("ingest: durable is required", "config.durable") - } - if deps.Config.BatchSize <= 0 { - deps.Config.BatchSize = 1 - } - if deps.Config.FetchTimeout <= 0 { - deps.Config.FetchTimeout = 2 * time.Second - } - if deps.Config.IdleSleep <= 0 { - deps.Config.IdleSleep = 500 * time.Millisecond + return nil, merrors.InvalidArgument(errTaskRepoRequired, configFieldTaskRepo) } logger := deps.Logger @@ -62,12 +89,14 @@ func newService(deps Dependencies) (Service, error) { logger = zap.NewNop() } - return &service{ - logger: logger.Named("ingest"), - js: deps.JetStream, - cfg: deps.Config, + svc := &service{ + logger: logger.Named(loggerNameIngest), deps: deps, - }, nil + } + svc.processor = pon.NewPaymentStatusUpdatedProcessor(svc.logger, svc.handlePaymentStatusUpdated) + svc.event = svc.processor.GetSubject() + + return svc, nil } func (s *service) Start(ctx context.Context) { @@ -91,114 +120,119 @@ func (s *service) Stop() { if s.cancel != nil { s.cancel() } + s.closeConsumer() s.wg.Wait() }) } func (s *service) run(ctx context.Context) { - subOpts := []nats.SubOpt{} - if stream := strings.TrimSpace(s.cfg.Stream); stream != "" { - subOpts = append(subOpts, nats.BindStream(stream)) - } - - sub, err := s.js.PullSubscribe(strings.TrimSpace(s.cfg.Subject), strings.TrimSpace(s.cfg.Durable), subOpts...) + consumer, err := cons.NewConsumer(s.logger, s.deps.Broker, s.event) if err != nil { - s.logger.Error("Failed to start JetStream subscription", zap.String("subject", s.cfg.Subject), zap.String("durable", s.cfg.Durable), zap.Error(err)) + s.logger.Error(logFailedStartConsumer, zap.String(logFieldSubject, s.event.ToString()), zap.Error(err)) return } + s.setConsumer(consumer) + defer s.closeConsumer() - s.logger.Info("Ingest consumer started", zap.String("subject", s.cfg.Subject), zap.String("durable", s.cfg.Durable), zap.Int("batch_size", s.cfg.BatchSize)) - - for { + s.logger.Info(logIngestConsumerStarted, zap.String(logFieldSubject, s.event.ToString())) + if err := consumer.ConsumeMessages(func(messageCtx context.Context, envelope me.Envelope) error { select { case <-ctx.Done(): - s.logger.Info("Ingest consumer stopped") - return + return ctx.Err() default: } + return s.processor.Process(messageCtx, envelope) + }); err != nil && !errors.Is(err, context.Canceled) { + s.logger.Warn(logIngestConsumerWarn, zap.String(logFieldSubject, s.event.ToString()), zap.Error(err)) + } + s.logger.Info(logIngestConsumerStopped, zap.String(logFieldSubject, s.event.ToString())) +} - msgs, err := sub.Fetch(s.cfg.BatchSize, nats.MaxWait(s.cfg.FetchTimeout)) - if err != nil { - if errors.Is(err, nats.ErrTimeout) { - time.Sleep(s.cfg.IdleSleep) - continue - } - if ctx.Err() != nil { - return - } - s.logger.Warn("Failed to fetch JetStream messages", zap.Error(err)) - time.Sleep(s.cfg.IdleSleep) - continue - } +func (s *service) setConsumer(consumer pkgmsg.Consumer) { + s.mu.Lock() + s.consumer = consumer + s.mu.Unlock() +} - for _, msg := range msgs { - s.handleMessage(ctx, msg) - } +func (s *service) closeConsumer() { + s.mu.Lock() + consumer := s.consumer + s.consumer = nil + s.mu.Unlock() + if consumer != nil { + consumer.Close() } } -func (s *service) handleMessage(ctx context.Context, msg *nats.Msg) { +func (s *service) handlePaymentStatusUpdated(ctx context.Context, msg *model.PaymentStatusUpdated) error { start := time.Now() - result := "ok" - nak := false + result := ingestResultOK defer func() { if s.deps.Observer != nil { s.deps.Observer.ObserveIngest(result, time.Since(start)) } - - var ackErr error - if nak { - ackErr = msg.Nak() - } else { - ackErr = msg.Ack() - } - if ackErr != nil { - s.logger.Warn("Failed to ack ingest message", zap.Bool("nak", nak), zap.Error(ackErr)) - } }() - envelope, err := s.deps.Events.Parse(msg.Data) - if err != nil { - result = "invalid_event" - nak = false - return + if msg == nil { + result = ingestResultEmptyPayload + return nil + } + if strings.TrimSpace(msg.EventID) == "" || strings.TrimSpace(msg.ClientID) == "" || msg.OccurredAt.IsZero() { + result = ingestResultInvalidEvent + return nil } - inserted, err := s.deps.InboxRepo.TryInsert(ctx, envelope.EventID, envelope.ClientID, envelope.Type, time.Now().UTC()) + eventType := strings.TrimSpace(msg.Type) + if eventType == "" { + eventType = model.PaymentStatusUpdatedType + } + + data, err := json.Marshal(msg.Data) if err != nil { - result = "inbox_error" - nak = true - return + result = ingestResultPayloadError + return err + } + + parsed := &events.Envelope{ + EventID: strings.TrimSpace(msg.EventID), + Type: eventType, + ClientID: strings.TrimSpace(msg.ClientID), + OccurredAt: msg.OccurredAt.UTC(), + PublishedAt: msg.PublishedAt.UTC(), + Data: data, + } + + inserted, err := s.deps.InboxRepo.TryInsert(ctx, parsed.EventID, parsed.ClientID, parsed.Type, time.Now().UTC()) + if err != nil { + result = ingestResultInboxError + return err } if !inserted { - result = "duplicate" - nak = false - return + result = ingestResultDuplicate + return nil } - endpoints, err := s.deps.Resolver.Resolve(ctx, envelope.ClientID, envelope.Type) + endpoints, err := s.deps.Resolver.Resolve(ctx, parsed.ClientID, parsed.Type) if err != nil { - result = "resolve_error" - nak = true - return + result = ingestResultResolveError + return err } if len(endpoints) == 0 { - result = "no_endpoints" - nak = false - return + result = ingestResultNoEndpoints + return nil } - payload, err := s.deps.Events.BuildPayload(ctx, envelope) + payload, err := s.deps.Events.BuildPayload(ctx, parsed) if err != nil { - result = "payload_error" - nak = true - return + result = ingestResultPayloadError + return err } - if err := s.deps.TaskRepo.UpsertTasks(ctx, envelope.EventID, endpoints, payload, s.deps.TaskDefaults, time.Now().UTC()); err != nil { - result = "task_error" - nak = true - return + if err := s.deps.TaskRepo.UpsertTasks(ctx, parsed.EventID, endpoints, payload, s.deps.TaskDefaults, time.Now().UTC()); err != nil { + result = ingestResultTaskError + return err } + + return nil } diff --git a/api/edge/callbacks/internal/server/internal/serverimp.go b/api/edge/callbacks/internal/server/internal/serverimp.go index 2c3ec752..75f8fff7 100644 --- a/api/edge/callbacks/internal/server/internal/serverimp.go +++ b/api/edge/callbacks/internal/server/internal/serverimp.go @@ -4,7 +4,6 @@ import ( "context" "time" - "github.com/nats-io/nats.go" "github.com/tech/sendico/edge/callbacks/internal/config" "github.com/tech/sendico/edge/callbacks/internal/delivery" "github.com/tech/sendico/edge/callbacks/internal/events" @@ -18,7 +17,6 @@ import ( "github.com/tech/sendico/edge/callbacks/internal/subscriptions" "github.com/tech/sendico/pkg/api/routers/health" "github.com/tech/sendico/pkg/db" - "github.com/tech/sendico/pkg/merrors" msg "github.com/tech/sendico/pkg/messaging" "github.com/tech/sendico/pkg/mlogger" "github.com/tech/sendico/pkg/vault/kv" @@ -27,10 +25,6 @@ import ( const defaultShutdownTimeout = 15 * time.Second -type jetStreamProvider interface { - JetStream() nats.JetStreamContext -} - func Create(logger mlogger.Logger, file string, debug bool) (*Imp, error) { return &Imp{ logger: logger.Named("server"), @@ -118,23 +112,9 @@ func (i *Imp) Start() error { } i.broker = broker - jsProvider, ok := broker.(jetStreamProvider) - if !ok || jsProvider.JetStream() == nil { - i.shutdownRuntime(context.Background()) - return merrors.Internal("callbacks: messaging broker does not provide JetStream") - } - ingestSvc, err := ingest.New(ingest.Dependencies{ - Logger: i.logger, - JetStream: jsProvider.JetStream(), - Config: ingest.Config{ - Stream: cfg.Ingest.Stream, - Subject: cfg.Ingest.Subject, - Durable: cfg.Ingest.Durable, - BatchSize: cfg.Ingest.BatchSize, - FetchTimeout: cfg.Ingest.FetchTimeout(), - IdleSleep: cfg.Ingest.IdleSleep(), - }, + Logger: i.logger, + Broker: broker, Events: eventSvc, Resolver: resolver, InboxRepo: repo.Inbox(), @@ -176,8 +156,6 @@ func (i *Imp) Start() error { i.opServer.SetStatus(health.SSRunning) i.logger.Info("Callbacks service ready", - zap.String("subject", cfg.Ingest.Subject), - zap.String("stream", cfg.Ingest.Stream), zap.Int("workers", cfg.Delivery.WorkerConcurrency), ) diff --git a/api/payments/orchestrator/internal/service/orchestrationv2/psvc/service_e2e_test.go b/api/payments/orchestrator/internal/service/orchestrationv2/psvc/service_e2e_test.go index 68e8f821..0d74c6e9 100644 --- a/api/payments/orchestrator/internal/service/orchestrationv2/psvc/service_e2e_test.go +++ b/api/payments/orchestrator/internal/service/orchestrationv2/psvc/service_e2e_test.go @@ -128,7 +128,7 @@ func TestExecutePayment_PublishesStatusUpdates(t *testing.T) { if strings.TrimSpace(outer.EventID) == "" { t.Fatalf("expected non-empty event_id at %d", i) } - if got, want := outer.Type, paymentStatusEventType; got != want { + if got, want := outer.Type, pm.PaymentStatusUpdatedType; got != want { t.Fatalf("event type mismatch at %d: got=%q want=%q", i, got, want) } @@ -423,9 +423,16 @@ func (p *capturingProducer) SendMessage(envelope menv.Envelope) error { if envelope == nil { return nil } - data, err := envelope.Serialize() - if err != nil { - return err + data := envelope.GetData() + if len(data) == 0 { + serialized, err := envelope.Serialize() + if err != nil { + return err + } + data = envelope.GetData() + if len(data) == 0 { + data = serialized + } } p.mu.Lock() p.items = append(p.items, capturedMessage{ diff --git a/api/payments/orchestrator/internal/service/orchestrationv2/psvc/status_publish.go b/api/payments/orchestrator/internal/service/orchestrationv2/psvc/status_publish.go index 34b0670d..1b334b98 100644 --- a/api/payments/orchestrator/internal/service/orchestrationv2/psvc/status_publish.go +++ b/api/payments/orchestrator/internal/service/orchestrationv2/psvc/status_publish.go @@ -2,25 +2,19 @@ package psvc import ( "context" - "encoding/json" "strconv" "strings" "time" - "github.com/google/uuid" "github.com/tech/sendico/payments/orchestrator/internal/service/orchestrationv2/agg" - "github.com/tech/sendico/pkg/merrors" msg "github.com/tech/sendico/pkg/messaging" - me "github.com/tech/sendico/pkg/messaging/envelope" + pon "github.com/tech/sendico/pkg/messaging/notifications/paymentorchestrator" "github.com/tech/sendico/pkg/mlogger" "github.com/tech/sendico/pkg/model" - nm "github.com/tech/sendico/pkg/model/notification" - "github.com/tech/sendico/pkg/mservice" "go.uber.org/zap" ) const ( - paymentStatusEventType = "payment.status.updated" paymentStatusEventSender = "payments.orchestrator.v2" ) @@ -47,36 +41,6 @@ type brokerPaymentStatusPublisher struct { producer msg.Producer } -type callbackEventEnvelope struct { - EventID string `json:"event_id"` - Type string `json:"type"` - ClientID string `json:"client_id"` - OccurredAt time.Time `json:"occurred_at"` - PublishedAt time.Time `json:"published_at,omitempty"` - Data json.RawMessage `json:"data"` -} - -type paymentStatusEventData struct { - OrganizationRef string `json:"organization_ref"` - PaymentRef string `json:"payment_ref"` - QuotationRef string `json:"quotation_ref"` - ClientPaymentRef string `json:"client_payment_ref,omitempty"` - IdempotencyKey string `json:"idempotency_key,omitempty"` - State string `json:"state"` - PreviousState string `json:"previous_state,omitempty"` - Version uint64 `json:"version"` - IsTerminal bool `json:"is_terminal"` - Event string `json:"event"` -} - -type rawEnvelope struct { - timestamp time.Time - messageID uuid.UUID - data []byte - sender string - signature model.NotificationEvent -} - func newPaymentStatusPublisher(logger mlogger.Logger, producer msg.Producer) paymentStatusPublisher { if producer == nil { return noopPaymentStatusPublisher{} @@ -114,42 +78,27 @@ func (p *brokerPaymentStatusPublisher) Publish(_ context.Context, in paymentStat eventName = "state_changed" } - body, err := json.Marshal(paymentStatusEventData{ - OrganizationRef: payment.OrganizationRef.Hex(), - PaymentRef: paymentRef, - QuotationRef: strings.TrimSpace(payment.QuotationRef), - ClientPaymentRef: strings.TrimSpace(payment.ClientPaymentRef), - IdempotencyKey: strings.TrimSpace(payment.IdempotencyKey), - State: string(in.CurrentState), - PreviousState: normalizePreviousState(in.PreviousState, in.CurrentState), - Version: payment.Version, - IsTerminal: isTerminalState(in.CurrentState), - Event: eventName, - }) - if err != nil { - return merrors.InternalWrap(err, "payment status publish: marshal body failed") - } - - message, err := json.Marshal(callbackEventEnvelope{ + message := &model.PaymentStatusUpdated{ EventID: buildPaymentStatusEventID(paymentRef, payment.Version, in.CurrentState), - Type: paymentStatusEventType, + Type: model.PaymentStatusUpdatedType, ClientID: payment.OrganizationRef.Hex(), OccurredAt: occurredAt, PublishedAt: time.Now().UTC(), - Data: body, - }) - if err != nil { - return merrors.InternalWrap(err, "payment status publish: marshal envelope failed") + Data: model.PaymentStatusUpdatedData{ + OrganizationRef: payment.OrganizationRef.Hex(), + PaymentRef: paymentRef, + QuotationRef: strings.TrimSpace(payment.QuotationRef), + ClientPaymentRef: strings.TrimSpace(payment.ClientPaymentRef), + IdempotencyKey: strings.TrimSpace(payment.IdempotencyKey), + State: string(in.CurrentState), + PreviousState: normalizePreviousState(in.PreviousState, in.CurrentState), + Version: payment.Version, + IsTerminal: isTerminalState(in.CurrentState), + Event: eventName, + }, } - signature := model.NewNotification(mservice.PaymentOrchestrator, nm.NAUpdated) - envelope := &rawEnvelope{ - timestamp: occurredAt, - messageID: uuid.New(), - data: message, - sender: paymentStatusEventSender, - signature: signature, - } + envelope := pon.PaymentStatusUpdated(paymentStatusEventSender, message) if err := p.producer.SendMessage(envelope); err != nil { return err @@ -176,34 +125,3 @@ func isTerminalState(state agg.State) bool { func buildPaymentStatusEventID(paymentRef string, version uint64, state agg.State) string { return paymentRef + ":" + strconv.FormatUint(version, 10) + ":" + string(state) } - -func (e *rawEnvelope) Serialize() ([]byte, error) { - return append([]byte(nil), e.data...), nil -} - -func (e *rawEnvelope) GetTimeStamp() time.Time { - return e.timestamp -} - -func (e *rawEnvelope) GetMessageId() uuid.UUID { - return e.messageID -} - -func (e *rawEnvelope) GetData() []byte { - return append([]byte(nil), e.data...) -} - -func (e *rawEnvelope) GetSender() string { - return e.sender -} - -func (e *rawEnvelope) GetSignature() model.NotificationEvent { - return e.signature -} - -func (e *rawEnvelope) Wrap(data []byte) ([]byte, error) { - e.data = append([]byte(nil), data...) - return e.Serialize() -} - -var _ me.Envelope = (*rawEnvelope)(nil) diff --git a/api/pkg/messaging/internal/notifications/paymentorchestrator/notification.go b/api/pkg/messaging/internal/notifications/paymentorchestrator/notification.go new file mode 100644 index 00000000..4dee8798 --- /dev/null +++ b/api/pkg/messaging/internal/notifications/paymentorchestrator/notification.go @@ -0,0 +1,42 @@ +package notifications + +import ( + "encoding/json" + "strings" + + messaging "github.com/tech/sendico/pkg/messaging/envelope" + "github.com/tech/sendico/pkg/model" + nm "github.com/tech/sendico/pkg/model/notification" + "github.com/tech/sendico/pkg/mservice" +) + +type PaymentStatusUpdatedNotification struct { + messaging.Envelope + payload model.PaymentStatusUpdated +} + +func (psn *PaymentStatusUpdatedNotification) Serialize() ([]byte, error) { + data, err := json.Marshal(psn.payload) + if err != nil { + return nil, err + } + return psn.Envelope.Wrap(data) +} + +func paymentStatusUpdatedEvent() model.NotificationEvent { + return model.NewNotification(mservice.PaymentOrchestrator, nm.NAUpdated) +} + +func NewPaymentStatusUpdatedEnvelope(sender string, status *model.PaymentStatusUpdated) messaging.Envelope { + payload := model.PaymentStatusUpdated{} + if status != nil { + payload = *status + } + if strings.TrimSpace(payload.Type) == "" { + payload.Type = model.PaymentStatusUpdatedType + } + return &PaymentStatusUpdatedNotification{ + Envelope: messaging.CreateEnvelope(sender, paymentStatusUpdatedEvent()), + payload: payload, + } +} diff --git a/api/pkg/messaging/internal/notifications/paymentorchestrator/processor.go b/api/pkg/messaging/internal/notifications/paymentorchestrator/processor.go new file mode 100644 index 00000000..4bf5a784 --- /dev/null +++ b/api/pkg/messaging/internal/notifications/paymentorchestrator/processor.go @@ -0,0 +1,51 @@ +package notifications + +import ( + "context" + "encoding/json" + "strings" + + me "github.com/tech/sendico/pkg/messaging/envelope" + ch "github.com/tech/sendico/pkg/messaging/notifications/paymentorchestrator/handler" + np "github.com/tech/sendico/pkg/messaging/notifications/processor" + "github.com/tech/sendico/pkg/mlogger" + "github.com/tech/sendico/pkg/model" + "go.uber.org/zap" +) + +type PaymentStatusUpdatedProcessor struct { + logger mlogger.Logger + handler ch.PaymentStatusUpdatedHandler + event model.NotificationEvent +} + +func (p *PaymentStatusUpdatedProcessor) Process(ctx context.Context, envelope me.Envelope) error { + var msg model.PaymentStatusUpdated + if err := json.Unmarshal(envelope.GetData(), &msg); err != nil { + p.logger.Warn("Failed to decode payment status updated envelope", zap.Error(err), zap.String("topic", p.event.ToString())) + return err + } + if strings.TrimSpace(msg.Type) == "" { + msg.Type = model.PaymentStatusUpdatedType + } + if p.handler == nil { + p.logger.Warn("Payment status updated handler is not configured", zap.String("topic", p.event.ToString())) + return nil + } + return p.handler(ctx, &msg) +} + +func (p *PaymentStatusUpdatedProcessor) GetSubject() model.NotificationEvent { + return p.event +} + +func NewPaymentStatusUpdatedProcessor(logger mlogger.Logger, handler ch.PaymentStatusUpdatedHandler) np.EnvelopeProcessor { + if logger != nil { + logger = logger.Named("payment_status_updated_processor") + } + return &PaymentStatusUpdatedProcessor{ + logger: logger, + handler: handler, + event: paymentStatusUpdatedEvent(), + } +} diff --git a/api/pkg/messaging/notifications/paymentorchestrator/handler/interface.go b/api/pkg/messaging/notifications/paymentorchestrator/handler/interface.go new file mode 100644 index 00000000..f00a1279 --- /dev/null +++ b/api/pkg/messaging/notifications/paymentorchestrator/handler/interface.go @@ -0,0 +1,9 @@ +package notifications + +import ( + "context" + + "github.com/tech/sendico/pkg/model" +) + +type PaymentStatusUpdatedHandler = func(context.Context, *model.PaymentStatusUpdated) error diff --git a/api/pkg/messaging/notifications/paymentorchestrator/paymentorchestrator.go b/api/pkg/messaging/notifications/paymentorchestrator/paymentorchestrator.go new file mode 100644 index 00000000..e8f29f00 --- /dev/null +++ b/api/pkg/messaging/notifications/paymentorchestrator/paymentorchestrator.go @@ -0,0 +1,18 @@ +package notifications + +import ( + messaging "github.com/tech/sendico/pkg/messaging/envelope" + pinternal "github.com/tech/sendico/pkg/messaging/internal/notifications/paymentorchestrator" + ch "github.com/tech/sendico/pkg/messaging/notifications/paymentorchestrator/handler" + np "github.com/tech/sendico/pkg/messaging/notifications/processor" + "github.com/tech/sendico/pkg/mlogger" + "github.com/tech/sendico/pkg/model" +) + +func PaymentStatusUpdated(sender string, status *model.PaymentStatusUpdated) messaging.Envelope { + return pinternal.NewPaymentStatusUpdatedEnvelope(sender, status) +} + +func NewPaymentStatusUpdatedProcessor(logger mlogger.Logger, handler ch.PaymentStatusUpdatedHandler) np.EnvelopeProcessor { + return pinternal.NewPaymentStatusUpdatedProcessor(logger, handler) +} diff --git a/api/pkg/model/payment_orchestrator_status.go b/api/pkg/model/payment_orchestrator_status.go new file mode 100644 index 00000000..eb27271d --- /dev/null +++ b/api/pkg/model/payment_orchestrator_status.go @@ -0,0 +1,29 @@ +package model + +import "time" + +const ( + PaymentStatusUpdatedType = "payment.status.updated" +) + +type PaymentStatusUpdated struct { + EventID string `json:"event_id,omitempty"` + Type string `json:"type,omitempty"` + ClientID string `json:"client_id,omitempty"` + OccurredAt time.Time `json:"occurred_at,omitempty"` + PublishedAt time.Time `json:"published_at,omitempty"` + Data PaymentStatusUpdatedData `json:"data"` +} + +type PaymentStatusUpdatedData struct { + OrganizationRef string `json:"organization_ref,omitempty"` + PaymentRef string `json:"payment_ref,omitempty"` + QuotationRef string `json:"quotation_ref,omitempty"` + ClientPaymentRef string `json:"client_payment_ref,omitempty"` + IdempotencyKey string `json:"idempotency_key,omitempty"` + State string `json:"state,omitempty"` + PreviousState string `json:"previous_state,omitempty"` + Version uint64 `json:"version,omitempty"` + IsTerminal bool `json:"is_terminal"` + Event string `json:"event,omitempty"` +} From 598510f4871ffb7fff4c44346009f29a2089ac9a Mon Sep 17 00:00:00 2001 From: Stephan D Date: Sat, 28 Feb 2026 21:01:39 +0100 Subject: [PATCH 2/2] versions bump --- api/billing/documents/go.mod | 2 +- api/billing/documents/go.sum | 4 ++-- api/billing/fees/go.mod | 2 +- api/billing/fees/go.sum | 4 ++-- api/discovery/go.mod | 2 +- api/discovery/go.sum | 4 ++-- api/edge/bff/go.mod | 2 +- api/edge/bff/go.sum | 4 ++-- api/edge/callbacks/go.mod | 4 ++-- api/edge/callbacks/go.sum | 4 ++-- api/fx/ingestor/go.mod | 2 +- api/fx/ingestor/go.sum | 4 ++-- api/fx/oracle/go.mod | 2 +- api/fx/oracle/go.sum | 4 ++-- api/gateway/chain/go.mod | 2 +- api/gateway/chain/go.sum | 4 ++-- api/gateway/mntx/go.mod | 2 +- api/gateway/mntx/go.sum | 4 ++-- api/gateway/tgsettle/go.mod | 2 +- api/gateway/tgsettle/go.sum | 4 ++-- api/gateway/tron/go.mod | 2 +- api/gateway/tron/go.sum | 4 ++-- api/ledger/go.mod | 2 +- api/ledger/go.sum | 4 ++-- api/notification/go.mod | 2 +- api/notification/go.sum | 4 ++-- api/payments/methods/go.mod | 2 +- api/payments/methods/go.sum | 4 ++-- api/payments/orchestrator/go.mod | 2 +- api/payments/orchestrator/go.sum | 4 ++-- api/payments/quotation/go.mod | 2 +- api/payments/quotation/go.sum | 4 ++-- api/payments/storage/go.mod | 2 +- api/payments/storage/go.sum | 4 ++-- api/pkg/go.mod | 2 +- api/pkg/go.sum | 4 ++-- 36 files changed, 55 insertions(+), 55 deletions(-) diff --git a/api/billing/documents/go.mod b/api/billing/documents/go.mod index 94516a9d..d2b97783 100644 --- a/api/billing/documents/go.mod +++ b/api/billing/documents/go.mod @@ -53,7 +53,7 @@ require ( github.com/nats-io/nuid v1.0.1 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect diff --git a/api/billing/documents/go.sum b/api/billing/documents/go.sum index be78b778..0c29597b 100644 --- a/api/billing/documents/go.sum +++ b/api/billing/documents/go.sum @@ -158,8 +158,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= diff --git a/api/billing/fees/go.mod b/api/billing/fees/go.mod index 17de5f1f..9321cd73 100644 --- a/api/billing/fees/go.mod +++ b/api/billing/fees/go.mod @@ -38,7 +38,7 @@ require ( github.com/prometheus/client_golang v1.23.2 github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect diff --git a/api/billing/fees/go.sum b/api/billing/fees/go.sum index 7d39e38b..5261ce70 100644 --- a/api/billing/fees/go.sum +++ b/api/billing/fees/go.sum @@ -113,8 +113,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= diff --git a/api/discovery/go.mod b/api/discovery/go.mod index d33fbe8a..68a328a5 100644 --- a/api/discovery/go.mod +++ b/api/discovery/go.mod @@ -30,7 +30,7 @@ require ( github.com/nats-io/nuid v1.0.1 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect diff --git a/api/discovery/go.sum b/api/discovery/go.sum index 7d39e38b..5261ce70 100644 --- a/api/discovery/go.sum +++ b/api/discovery/go.sum @@ -113,8 +113,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= diff --git a/api/edge/bff/go.mod b/api/edge/bff/go.mod index c6323393..6ab832be 100644 --- a/api/edge/bff/go.mod +++ b/api/edge/bff/go.mod @@ -119,7 +119,7 @@ require ( github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/segmentio/asm v1.2.1 // indirect github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect diff --git a/api/edge/bff/go.sum b/api/edge/bff/go.sum index fac4f003..1ae4cd27 100644 --- a/api/edge/bff/go.sum +++ b/api/edge/bff/go.sum @@ -204,8 +204,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0= diff --git a/api/edge/callbacks/go.mod b/api/edge/callbacks/go.mod index f8d007ed..155dc881 100644 --- a/api/edge/callbacks/go.mod +++ b/api/edge/callbacks/go.mod @@ -6,7 +6,6 @@ replace github.com/tech/sendico/pkg => ../../pkg require ( github.com/go-chi/chi/v5 v5.2.5 - github.com/nats-io/nats.go v1.49.0 github.com/prometheus/client_golang v1.23.2 github.com/tech/sendico/pkg v0.1.0 go.mongodb.org/mongo-driver/v2 v2.5.0 @@ -40,11 +39,12 @@ require ( github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/nats-io/nats.go v1.49.0 // indirect github.com/nats-io/nkeys v0.4.15 // indirect github.com/nats-io/nuid v1.0.1 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect diff --git a/api/edge/callbacks/go.sum b/api/edge/callbacks/go.sum index d41ab1be..441b3374 100644 --- a/api/edge/callbacks/go.sum +++ b/api/edge/callbacks/go.sum @@ -144,8 +144,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= diff --git a/api/fx/ingestor/go.mod b/api/fx/ingestor/go.mod index ab7af2cd..78fb2b5c 100644 --- a/api/fx/ingestor/go.mod +++ b/api/fx/ingestor/go.mod @@ -35,7 +35,7 @@ require ( github.com/nats-io/nuid v1.0.1 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect diff --git a/api/fx/ingestor/go.sum b/api/fx/ingestor/go.sum index 7d39e38b..5261ce70 100644 --- a/api/fx/ingestor/go.sum +++ b/api/fx/ingestor/go.sum @@ -113,8 +113,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= diff --git a/api/fx/oracle/go.mod b/api/fx/oracle/go.mod index 0f2bca44..cabd9832 100644 --- a/api/fx/oracle/go.mod +++ b/api/fx/oracle/go.mod @@ -36,7 +36,7 @@ require ( github.com/nats-io/nuid v1.0.1 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect diff --git a/api/fx/oracle/go.sum b/api/fx/oracle/go.sum index 7d39e38b..5261ce70 100644 --- a/api/fx/oracle/go.sum +++ b/api/fx/oracle/go.sum @@ -113,8 +113,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= diff --git a/api/gateway/chain/go.mod b/api/gateway/chain/go.mod index b65c0ab9..88bc8b62 100644 --- a/api/gateway/chain/go.mod +++ b/api/gateway/chain/go.mod @@ -67,7 +67,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/supranational/blst v0.3.16 // indirect diff --git a/api/gateway/chain/go.sum b/api/gateway/chain/go.sum index 58fe594e..3a59ac90 100644 --- a/api/gateway/chain/go.sum +++ b/api/gateway/chain/go.sum @@ -236,8 +236,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= diff --git a/api/gateway/mntx/go.mod b/api/gateway/mntx/go.mod index 542ea30d..ac269ba6 100644 --- a/api/gateway/mntx/go.mod +++ b/api/gateway/mntx/go.mod @@ -37,7 +37,7 @@ require ( github.com/nats-io/nkeys v0.4.15 // indirect github.com/nats-io/nuid v1.0.1 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/tklauser/go-sysconf v0.3.16 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect diff --git a/api/gateway/mntx/go.sum b/api/gateway/mntx/go.sum index 3cf47150..bd4681c8 100644 --- a/api/gateway/mntx/go.sum +++ b/api/gateway/mntx/go.sum @@ -113,8 +113,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= diff --git a/api/gateway/tgsettle/go.mod b/api/gateway/tgsettle/go.mod index 39280fb5..37efef2d 100644 --- a/api/gateway/tgsettle/go.mod +++ b/api/gateway/tgsettle/go.mod @@ -36,7 +36,7 @@ require ( github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect diff --git a/api/gateway/tgsettle/go.sum b/api/gateway/tgsettle/go.sum index 7d39e38b..5261ce70 100644 --- a/api/gateway/tgsettle/go.sum +++ b/api/gateway/tgsettle/go.sum @@ -113,8 +113,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= diff --git a/api/gateway/tron/go.mod b/api/gateway/tron/go.mod index 8576a3cf..a9b8f264 100644 --- a/api/gateway/tron/go.mod +++ b/api/gateway/tron/go.mod @@ -74,7 +74,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/rjeczalik/notify v0.9.3 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect diff --git a/api/gateway/tron/go.sum b/api/gateway/tron/go.sum index 84f6a8a8..02a57d7c 100644 --- a/api/gateway/tron/go.sum +++ b/api/gateway/tron/go.sum @@ -247,8 +247,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rjeczalik/notify v0.9.3 h1:6rJAzHTGKXGj76sbRgDiDcYj/HniypXmSJo1SWakZeY= github.com/rjeczalik/notify v0.9.3/go.mod h1:gF3zSOrafR9DQEWSE8TjfI9NkooDxbyT4UgRGKZA0lc= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= diff --git a/api/ledger/go.mod b/api/ledger/go.mod index dbc7aa60..e4a69f9a 100644 --- a/api/ledger/go.mod +++ b/api/ledger/go.mod @@ -37,7 +37,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect diff --git a/api/ledger/go.sum b/api/ledger/go.sum index c5c99dfc..3b8c1a60 100644 --- a/api/ledger/go.sum +++ b/api/ledger/go.sum @@ -113,8 +113,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= diff --git a/api/notification/go.mod b/api/notification/go.mod index 85268022..7f91fce1 100644 --- a/api/notification/go.mod +++ b/api/notification/go.mod @@ -37,7 +37,7 @@ require ( github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/sendgrid/rest v2.6.9+incompatible // indirect github.com/toorop/go-dkim v0.0.0-20250226130143-9025cce95817 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect diff --git a/api/notification/go.sum b/api/notification/go.sum index d2c6ea29..bb2b51eb 100644 --- a/api/notification/go.sum +++ b/api/notification/go.sum @@ -119,8 +119,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/sendgrid/rest v2.6.9+incompatible h1:1EyIcsNdn9KIisLW50MKwmSRSK+ekueiEMJ7NEoxJo0= diff --git a/api/payments/methods/go.mod b/api/payments/methods/go.mod index 0d82a7de..4d8a408b 100644 --- a/api/payments/methods/go.mod +++ b/api/payments/methods/go.mod @@ -36,7 +36,7 @@ require ( github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect diff --git a/api/payments/methods/go.sum b/api/payments/methods/go.sum index c5c99dfc..3b8c1a60 100644 --- a/api/payments/methods/go.sum +++ b/api/payments/methods/go.sum @@ -113,8 +113,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= diff --git a/api/payments/orchestrator/go.mod b/api/payments/orchestrator/go.mod index 5d0ad7ab..8552be8d 100644 --- a/api/payments/orchestrator/go.mod +++ b/api/payments/orchestrator/go.mod @@ -51,7 +51,7 @@ require ( github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect diff --git a/api/payments/orchestrator/go.sum b/api/payments/orchestrator/go.sum index 525536be..a6249880 100644 --- a/api/payments/orchestrator/go.sum +++ b/api/payments/orchestrator/go.sum @@ -113,8 +113,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= diff --git a/api/payments/quotation/go.mod b/api/payments/quotation/go.mod index 627049e0..f2c3d419 100644 --- a/api/payments/quotation/go.mod +++ b/api/payments/quotation/go.mod @@ -50,7 +50,7 @@ require ( github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect diff --git a/api/payments/quotation/go.sum b/api/payments/quotation/go.sum index 7a3326e4..5647034c 100644 --- a/api/payments/quotation/go.sum +++ b/api/payments/quotation/go.sum @@ -113,8 +113,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= diff --git a/api/payments/storage/go.mod b/api/payments/storage/go.mod index b495c1b2..b800a9fa 100644 --- a/api/payments/storage/go.mod +++ b/api/payments/storage/go.mod @@ -28,7 +28,7 @@ require ( github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.2.0 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect diff --git a/api/payments/storage/go.sum b/api/payments/storage/go.sum index d49735fa..236417bb 100644 --- a/api/payments/storage/go.sum +++ b/api/payments/storage/go.sum @@ -107,8 +107,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= diff --git a/api/pkg/go.mod b/api/pkg/go.mod index fcb75f09..f76f2486 100644 --- a/api/pkg/go.mod +++ b/api/pkg/go.mod @@ -86,7 +86,7 @@ require ( github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.0 // indirect + github.com/prometheus/procfs v0.20.1 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect diff --git a/api/pkg/go.sum b/api/pkg/go.sum index 85cd3d70..694424dd 100644 --- a/api/pkg/go.sum +++ b/api/pkg/go.sum @@ -193,8 +193,8 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk=