From c71bbd497f188cd9ae00c8581db4e0b6d33559e6 Mon Sep 17 00:00:00 2001 From: jochen Date: Tue, 22 Sep 2026 02:03:23 +0200 Subject: [PATCH] =?UTF-8?q?redis:=20INFO=20is=20allowed=20back=20=E2=80=94?= =?UTF-8?q?=20client=20libraries=20ask=20it=20at=20connect,=20and=20it=20r?= =?UTF-8?q?eads=20nothing=20a=20consumer=20keeps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/redis/client.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/redis/client.ts b/modules/redis/client.ts index 7ca6744..93a355d 100644 --- a/modules/redis/client.ts +++ b/modules/redis/client.ts @@ -102,10 +102,11 @@ export class RedisClient { * Minus the dangerous category: a key pattern confines commands that name keys, and FLUSHALL, * FLUSHDB, CONFIG, SHUTDOWN and the rest of `@dangerous` name none — with `+@all` alone a * consumer scoped to its own keys could still wipe the server (novox/hq issue 080). KEYS goes - * with them; SCAN stays, and is what a consumer should use anyway. + * with them; SCAN stays, and is what a consumer should use anyway. INFO comes back: it is in the + * category, reads nothing a consumer keeps, and several client libraries ask it at connect. */ async createAclUser(username: string, password: string, keyspacePrefix: string): Promise { - await this.command("ACL", "SETUSER", username, "reset", "on", `>${password}`, `~${keyspacePrefix}:*`, "+@all", "-@dangerous"); + await this.command("ACL", "SETUSER", username, "reset", "on", `>${password}`, `~${keyspacePrefix}:*`, "+@all", "-@dangerous", "+info"); } async deleteAclUser(username: string): Promise {