diff --git a/pkg/config/settings.go b/pkg/config/settings.go index b48cbcd1..e637f869 100644 --- a/pkg/config/settings.go +++ b/pkg/config/settings.go @@ -155,6 +155,20 @@ var keyValidators = map[string]configValidator{ "2.6-IV0", ) }, + "message.timestamp.after.max.ms": func(v string) bool { + intVal, err := strconv.ParseInt(v, 10, 64) + if err != nil { + return false + } + return intVal >= 0 + }, + "message.timestamp.before.max.ms": func(v string) bool { + intVal, err := strconv.ParseInt(v, 10, 64) + if err != nil { + return false + } + return intVal >= 0 + }, "message.timestamp.difference.max.ms": func(v string) bool { intVal, err := strconv.ParseInt(v, 10, 64) if err != nil { diff --git a/pkg/config/settings_test.go b/pkg/config/settings_test.go index f9d48812..1c91d42a 100644 --- a/pkg/config/settings_test.go +++ b/pkg/config/settings_test.go @@ -72,6 +72,14 @@ func TestValidateSettings(t *testing.T) { }, expError: true, }, + { + description: "message timestamp bounds", + settings: TopicSettings{ + "message.timestamp.after.max.ms": 9223372036854775807, + "message.timestamp.before.max.ms": "86400000", + }, + expError: false, + }, { description: "non-matching string", settings: TopicSettings{