From 0343d1b73127d9fb756a3df8d6ba32e39e1370a1 Mon Sep 17 00:00:00 2001 From: Alex Luong Date: Tue, 27 Jan 2026 02:01:32 +0700 Subject: [PATCH 1/2] fix: idgen prefix without delimiter --- docs/pages/references/configuration.mdx | 16 ++++++++-------- internal/config/id_gen.go | 8 ++++---- internal/idgen/idgen.go | 2 +- internal/idgen/idgen_test.go | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/pages/references/configuration.mdx b/docs/pages/references/configuration.mdx index 0003569f2..ce799b38e 100644 --- a/docs/pages/references/configuration.mdx +++ b/docs/pages/references/configuration.mdx @@ -74,10 +74,10 @@ Global configurations are provided through env variables or a YAML file. ConfigM | `GCP_PUBSUB_SERVICE_ACCOUNT_CREDENTIALS` | JSON string or path to a file containing GCP service account credentials for Pub/Sub. Required if GCP Pub/Sub is the chosen MQ provider and not running in an environment with implicit credentials (e.g., GCE, GKE). | `nil` | Conditional | | `GIN_MODE` | Sets the Gin framework mode (e.g., 'debug', 'release', 'test'). See Gin documentation for details. | `release` | No | | `HTTP_USER_AGENT` | Custom HTTP User-Agent string for outgoing webhook deliveries. If unset, a default (OrganizationName/Version) is used. | `nil` | No | -| `IDGEN_DELIVERY_EVENT_PREFIX` | Prefix for delivery event IDs, prepended with underscore (e.g., 'dev_123'). Default: empty (no prefix) | `nil` | No | -| `IDGEN_DELIVERY_PREFIX` | Prefix for delivery IDs, prepended with underscore (e.g., 'dlv_123'). Default: empty (no prefix) | `nil` | No | -| `IDGEN_DESTINATION_PREFIX` | Prefix for destination IDs, prepended with underscore (e.g., 'dst_123'). Default: empty (no prefix) | `nil` | No | -| `IDGEN_EVENT_PREFIX` | Prefix for event IDs, prepended with underscore (e.g., 'evt_123'). Default: empty (no prefix) | `nil` | No | +| `IDGEN_DELIVERY_EVENT_PREFIX` | Prefix for delivery event IDs (e.g., 'dev_' produces 'dev_123'). Default: empty (no prefix) | `nil` | No | +| `IDGEN_DELIVERY_PREFIX` | Prefix for delivery IDs (e.g., 'dlv_' produces 'dlv_123'). Default: empty (no prefix) | `nil` | No | +| `IDGEN_DESTINATION_PREFIX` | Prefix for destination IDs (e.g., 'dst_' produces 'dst_123'). Default: empty (no prefix) | `nil` | No | +| `IDGEN_EVENT_PREFIX` | Prefix for event IDs (e.g., 'evt_' produces 'evt_123'). Default: empty (no prefix) | `nil` | No | | `IDGEN_TYPE` | ID generation type for all entities: uuidv4, uuidv7, nanoid. Default: uuidv4 | `uuidv4` | No | | `LOG_BATCH_SIZE` | Maximum number of log entries to batch together before writing to storage. | `1000` | No | | `LOG_BATCH_THRESHOLD_SECONDS` | Maximum time in seconds to buffer logs before flushing them to storage, if batch size is not reached. | `10` | No | @@ -270,16 +270,16 @@ gin_mode: "release" http_user_agent: "" idgen: - # Prefix for delivery event IDs, prepended with underscore (e.g., 'dev_123'). Default: empty (no prefix) + # Prefix for delivery event IDs (e.g., 'dev_' produces 'dev_123'). Default: empty (no prefix) delivery_event_prefix: "" - # Prefix for delivery IDs, prepended with underscore (e.g., 'dlv_123'). Default: empty (no prefix) + # Prefix for delivery IDs (e.g., 'dlv_' produces 'dlv_123'). Default: empty (no prefix) delivery_prefix: "" - # Prefix for destination IDs, prepended with underscore (e.g., 'dst_123'). Default: empty (no prefix) + # Prefix for destination IDs (e.g., 'dst_' produces 'dst_123'). Default: empty (no prefix) destination_prefix: "" - # Prefix for event IDs, prepended with underscore (e.g., 'evt_123'). Default: empty (no prefix) + # Prefix for event IDs (e.g., 'evt_' produces 'evt_123'). Default: empty (no prefix) event_prefix: "" # ID generation type for all entities: uuidv4, uuidv7, nanoid. Default: uuidv4 diff --git a/internal/config/id_gen.go b/internal/config/id_gen.go index 790b4c025..3837e3b93 100644 --- a/internal/config/id_gen.go +++ b/internal/config/id_gen.go @@ -3,8 +3,8 @@ package config // IDGenConfig is the configuration for ID generation type IDGenConfig struct { Type string `yaml:"type" env:"IDGEN_TYPE" desc:"ID generation type for all entities: uuidv4, uuidv7, nanoid. Default: uuidv4" required:"N"` - EventPrefix string `yaml:"event_prefix" env:"IDGEN_EVENT_PREFIX" desc:"Prefix for event IDs, prepended with underscore (e.g., 'evt_123'). Default: empty (no prefix)" required:"N"` - DestinationPrefix string `yaml:"destination_prefix" env:"IDGEN_DESTINATION_PREFIX" desc:"Prefix for destination IDs, prepended with underscore (e.g., 'dst_123'). Default: empty (no prefix)" required:"N"` - DeliveryPrefix string `yaml:"delivery_prefix" env:"IDGEN_DELIVERY_PREFIX" desc:"Prefix for delivery IDs, prepended with underscore (e.g., 'dlv_123'). Default: empty (no prefix)" required:"N"` - DeliveryEventPrefix string `yaml:"delivery_event_prefix" env:"IDGEN_DELIVERY_EVENT_PREFIX" desc:"Prefix for delivery event IDs, prepended with underscore (e.g., 'dev_123'). Default: empty (no prefix)" required:"N"` + EventPrefix string `yaml:"event_prefix" env:"IDGEN_EVENT_PREFIX" desc:"Prefix for event IDs (e.g., 'evt_' produces 'evt_123'). Default: empty (no prefix)" required:"N"` + DestinationPrefix string `yaml:"destination_prefix" env:"IDGEN_DESTINATION_PREFIX" desc:"Prefix for destination IDs (e.g., 'dst_' produces 'dst_123'). Default: empty (no prefix)" required:"N"` + DeliveryPrefix string `yaml:"delivery_prefix" env:"IDGEN_DELIVERY_PREFIX" desc:"Prefix for delivery IDs (e.g., 'dlv_' produces 'dlv_123'). Default: empty (no prefix)" required:"N"` + DeliveryEventPrefix string `yaml:"delivery_event_prefix" env:"IDGEN_DELIVERY_EVENT_PREFIX" desc:"Prefix for delivery event IDs (e.g., 'dev_' produces 'dev_123'). Default: empty (no prefix)" required:"N"` } diff --git a/internal/idgen/idgen.go b/internal/idgen/idgen.go index 894466f54..8159610c1 100644 --- a/internal/idgen/idgen.go +++ b/internal/idgen/idgen.go @@ -57,7 +57,7 @@ func (g *IDGenerator) Installation() string { func (g *IDGenerator) generate(prefix string) string { id := g.generator.generate() if prefix != "" { - return prefix + "_" + id + return prefix + id } return id } diff --git a/internal/idgen/idgen_test.go b/internal/idgen/idgen_test.go index 23c25431b..aad42feea 100644 --- a/internal/idgen/idgen_test.go +++ b/internal/idgen/idgen_test.go @@ -115,7 +115,7 @@ func TestEvent_Generate(t *testing.T) { { name: "uuidv4 with prefix", idType: "uuidv4", - prefix: "evt", + prefix: "evt_", validate: func(t *testing.T, id string) { if !strings.HasPrefix(id, "evt_") { t.Errorf("ID should have prefix 'evt_', got: %s", id) @@ -182,7 +182,7 @@ func TestEvent(t *testing.T) { t.Run("uses configured type and prefix", func(t *testing.T) { err := Configure(IDGenConfig{ Type: "uuidv4", - EventPrefix: "evt", + EventPrefix: "evt_", }) if err != nil { t.Fatalf("Configure() error = %v", err) From ea04c6aca143ec73b1defc8afa49961e160b9cfa Mon Sep 17 00:00:00 2001 From: Alex Luong Date: Tue, 27 Jan 2026 02:06:28 +0700 Subject: [PATCH 2/2] chore: .outpost.yaml.dev --- .outpost.yaml.dev | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.outpost.yaml.dev b/.outpost.yaml.dev index 087498f49..f4fbf1592 100644 --- a/.outpost.yaml.dev +++ b/.outpost.yaml.dev @@ -70,10 +70,10 @@ portal: # ID Generation idgen: type: "nanoid" - event_prefix: "evt" - destination_prefix: "des" - delivery_prefix: "dlv" - delivery_event_prefix: "dev" + event_prefix: "evt_" + destination_prefix: "des_" + delivery_prefix: "dlv_" + delivery_event_prefix: "dev_" # Concurrency publish_max_concurrency: 1