redis/tests/modules
Shaya Potter 6e993a5dfa
Add RM_SetContextUser to support acl validation in RM_Call (and scripts) (#10966)
Adds a number of user management/ACL validaiton/command execution functions to improve a
Redis module's ability to enforce ACLs correctly and easily.

* RM_SetContextUser - sets a RedisModuleUser on the context, which RM_Call will use to both
  validate ACLs (if requested and set) as well as assign to the client so that scripts executed via
  RM_Call will have proper ACL validation.
* RM_SetModuleUserACLString - Enables one to pass an entire ACL string, not just a single OP
  and have it applied to the user
* RM_GetModuleUserACLString - returns a stringified version of the user's ACL (same format as dump
  and list).  Contains an optimization to cache the stringified version until the underlying ACL is modified.
* Slightly re-purpose the "C" flag to RM_Call from just being about ACL check before calling the
  command, to actually running the command with the right user, so that it also affects commands
  inside EVAL scripts. see #11231
2022-09-22 16:29:00 +03:00
..
Makefile Add RM_SetContextUser to support acl validation in RM_Call (and scripts) (#10966) 2022-09-22 16:29:00 +03:00
aclcheck.c Allow specifying ACL reason for module log entry (#10559) 2022-04-11 22:16:17 -07:00
auth.c Add module API for redacting command arguments (#10425) 2022-03-15 18:21:13 -07:00
basics.c Avoid using unsafe C functions (#10932) 2022-07-18 10:56:26 +03:00
blockedclient.c Fix crash on RM_Call with script mode. (#10886) 2022-06-21 10:01:13 +03:00
blockonbackground.c Modules: Mark all APIs non-experimental (#9983) 2021-12-30 12:17:22 +02:00
blockonkeys.c XREADGROUP: Unblock client if stream is deleted (#10306) 2022-03-08 17:10:36 +02:00
cmdintrospection.c Repurpose redisCommandArg's name as the unique ID (#11051) 2022-08-18 15:09:36 +03:00
commandfilter.c Modules: Mark all APIs non-experimental (#9983) 2021-12-30 12:17:22 +02:00
datatype.c Adding module api for processing commands during busy jobs and allow flagging the commands that should be handled at this status (#9963) 2022-01-20 09:05:53 +02:00
datatype2.c Use const char pointer in redismodule.h as far as possible (#10064) 2022-01-18 15:55:20 +02:00
defragtest.c Build TLS as a loadable module 2022-08-23 12:37:56 +03:00
eventloop.c delete obsolete REDISMODULE_EXPERIMENTAL_API define in module demos (#10527) 2022-04-05 08:21:41 +03:00
fork.c Fix race in module fork kill test (#10717) 2022-05-12 20:10:38 +03:00
getchannels.c Implemented module getchannels api and renamed channel keyspec (#10299) 2022-02-22 11:00:03 +02:00
getkeys.c Handle key-spec flags with modules (#10237) 2022-02-08 10:01:35 +02:00
hash.c Sort out the mess around writable replicas and lookupKeyRead/Write (#9572) 2021-11-28 11:26:28 +02:00
hooks.c Modules: Add REDISMODULE_EVENT_CONFIG (#10311) 2022-03-07 17:37:57 +02:00
infotest.c Escape unsafe field name characters in INFO. (#8492) 2021-02-15 17:08:53 +02:00
keyspace_events.c Fix replication inconsistency on modules that uses key space notifications (#10969) 2022-08-18 10:16:32 +03:00
keyspecs.c Fixed SET and BITFIELD commands being wrongly marked movablekeys (#10837) 2022-06-12 08:22:18 +03:00
list.c Sort out the mess around writable replicas and lookupKeyRead/Write (#9572) 2021-11-28 11:26:28 +02:00
mallocsize.c Add RM_MallocSizeString, RM_MallocSizeDict (#10542) 2022-04-17 08:31:57 +03:00
misc.c Add missing REDISMODULE_CLIENTINFO_INITIALIZER (#10885) 2022-06-27 08:29:05 +03:00
moduleconfigs.c Bug fixes for enum configs with overlapping bit flags (module API) (#10661) 2022-05-09 13:36:53 +03:00
moduleconfigstwo.c Module Configurations (#10285) 2022-03-30 15:47:06 +03:00
propagate.c sub-command support for ACL CAT and COMMAND LIST. redisCommand always stores fullname (#10127) 2022-01-23 10:05:06 +02:00
publish.c Add RM_PublishMessageShard (#10543) 2022-04-17 15:43:22 +03:00
reply.c Add RM_ReplyWithBigNumber module API (#9639) 2021-10-25 11:31:20 +03:00
scan.c Replace deprecated REDISMODULE_POSTPONED_ARRAY_LEN in module tests and examples (#9677) 2021-10-25 12:00:43 +03:00
stream.c Sort out the mess around writable replicas and lookupKeyRead/Write (#9572) 2021-11-28 11:26:28 +02:00
subcommands.c Fix regression not aborting transaction on error, and re-edit some error responses (#10612) 2022-04-25 13:08:13 +03:00
test_lazyfree.c Sort out the mess around writable replicas and lookupKeyRead/Write (#9572) 2021-11-28 11:26:28 +02:00
testrdb.c Sort out the mess around writable replicas and lookupKeyRead/Write (#9572) 2021-11-28 11:26:28 +02:00
timer.c Modules: Mark all APIs non-experimental (#9983) 2021-12-30 12:17:22 +02:00
usercall.c Add RM_SetContextUser to support acl validation in RM_Call (and scripts) (#10966) 2022-09-22 16:29:00 +03:00
zset.c Sort out the mess around writable replicas and lookupKeyRead/Write (#9572) 2021-11-28 11:26:28 +02:00