From fa237204f0a24d9377e5007075a8b04dd2e77bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Fri, 14 Aug 2026 16:02:51 +0400 Subject: [PATCH] =?UTF-8?q?v0.1.35:=20FifoQueue/ContentBasedDeduplication?= =?UTF-8?q?=20=D0=B2=20whitelist=20(=D1=81=D0=BE=D0=B2=D0=BC=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D1=8C=20CLI=20v2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/requests.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/models/requests.go b/app/models/requests.go index f71e133..a1c4d8e 100644 --- a/app/models/requests.go +++ b/app/models/requests.go @@ -406,6 +406,7 @@ type QueueAttributes struct { // - Query (form Attribute.N.Name) — в app/gosqs/queue_attributes.go; // - JSON — в UnmarshalJSON ниже (стандартный парсер молча отбрасывает // неизвестные поля, поэтому проверка выполняется вручную). +// // Policy/RedriveAllowPolicy — допустимы для совместимости, но не реализованы (no-op). var AttrNameWhitelist = map[string]bool{ "DelaySeconds": true, @@ -416,6 +417,10 @@ var AttrNameWhitelist = map[string]bool{ "VisibilityTimeout": true, "RedrivePolicy": true, "RedriveAllowPolicy": true, + // FIFO-атрибуты: FifoQueue у нас выводится из суффикса .fifo имени очереди, + // но клиенты присылают эти атрибуты в CreateQueue — они допустимы (no-op). + "FifoQueue": true, + "ContentBasedDeduplication": true, } // UnmarshalJSON — строгая разборка QueueAttributes для JSON-протокола. @@ -427,6 +432,7 @@ var AttrNameWhitelist = map[string]bool{ // любой атрибут — «неверное имя атрибута принято» из нагрузочного теста). // 3. Разбираем штатно: все известные поля попадают в структуру, вложенный // RedrivePolicy использует собственный UnmarshalJSON. +// // Ошибка приводит к TransformRequest=false → InvalidParameterValue в handler. func (q *QueueAttributes) UnmarshalJSON(data []byte) error { var raw map[string]json.RawMessage