diff --git a/decode/decode.go b/decode/decode.go index 5fa6914..b0a1874 100644 --- a/decode/decode.go +++ b/decode/decode.go @@ -15,6 +15,9 @@ var reservedFields = []string{ "prefix", "postfix", "decoder_msg_type", + "timestamp", + "hostname", + "rawlog", } func stringInSlice(s string, slice []string) bool { diff --git a/decode/decode_test.go b/decode/decode_test.go index ba00fc9..0b3a28f 100644 --- a/decode/decode_test.go +++ b/decode/decode_test.go @@ -65,6 +65,19 @@ func TestKayveeDecoding(t *testing.T) { }, ExpectedError: nil, }, + Spec{ + Title: "Reserved fields are respected", + Input: `prefix {"a":"b","prefix":"no-override","postfix":"no-override",` + + `"decoder_msg_type":"no-override","timestamp":"no-override",` + + `"hostname":"no-override","rawlog":"no-override"} postfix`, + ExpectedOutput: map[string]interface{}{ + "prefix": "prefix ", + "postfix": " postfix", + "a": "b", + "decoder_msg_type": "Kayvee", + }, + ExpectedError: nil, + }, Spec{ Title: "Returns NonKayveeError if not JSON in body", Input: `prefix { postfix`,