v0.1.35: FifoQueue/ContentBasedDeduplication в whitelist (совместимость CLI v2)

This commit is contained in:
“Naeel”
2026-08-14 16:02:51 +04:00
parent 7f6e9308d5
commit fa237204f0
+6
View File
@@ -406,6 +406,7 @@ type QueueAttributes struct {
// - Query (form Attribute.N.Name) — в app/gosqs/queue_attributes.go; // - Query (form Attribute.N.Name) — в app/gosqs/queue_attributes.go;
// - JSON — в UnmarshalJSON ниже (стандартный парсер молча отбрасывает // - JSON — в UnmarshalJSON ниже (стандартный парсер молча отбрасывает
// неизвестные поля, поэтому проверка выполняется вручную). // неизвестные поля, поэтому проверка выполняется вручную).
//
// Policy/RedriveAllowPolicy — допустимы для совместимости, но не реализованы (no-op). // Policy/RedriveAllowPolicy — допустимы для совместимости, но не реализованы (no-op).
var AttrNameWhitelist = map[string]bool{ var AttrNameWhitelist = map[string]bool{
"DelaySeconds": true, "DelaySeconds": true,
@@ -416,6 +417,10 @@ var AttrNameWhitelist = map[string]bool{
"VisibilityTimeout": true, "VisibilityTimeout": true,
"RedrivePolicy": true, "RedrivePolicy": true,
"RedriveAllowPolicy": true, "RedriveAllowPolicy": true,
// FIFO-атрибуты: FifoQueue у нас выводится из суффикса .fifo имени очереди,
// но клиенты присылают эти атрибуты в CreateQueue — они допустимы (no-op).
"FifoQueue": true,
"ContentBasedDeduplication": true,
} }
// UnmarshalJSON — строгая разборка QueueAttributes для JSON-протокола. // UnmarshalJSON — строгая разборка QueueAttributes для JSON-протокола.
@@ -427,6 +432,7 @@ var AttrNameWhitelist = map[string]bool{
// любой атрибут — «неверное имя атрибута принято» из нагрузочного теста). // любой атрибут — «неверное имя атрибута принято» из нагрузочного теста).
// 3. Разбираем штатно: все известные поля попадают в структуру, вложенный // 3. Разбираем штатно: все известные поля попадают в структуру, вложенный
// RedrivePolicy использует собственный UnmarshalJSON. // RedrivePolicy использует собственный UnmarshalJSON.
//
// Ошибка приводит к TransformRequest=false → InvalidParameterValue в handler. // Ошибка приводит к TransformRequest=false → InvalidParameterValue в handler.
func (q *QueueAttributes) UnmarshalJSON(data []byte) error { func (q *QueueAttributes) UnmarshalJSON(data []byte) error {
var raw map[string]json.RawMessage var raw map[string]json.RawMessage