• Madelyn Olson's avatar
    Implemented module getchannels api and renamed channel keyspec (#10299) · 71204f96
    Madelyn Olson authored
    This implements the following main pieces of functionality:
    * Renames key spec "CHANNEL" to be "NOT_KEY", and update the documentation to
      indicate it's for cluster routing and not for any other key related purpose.
    * Add the getchannels-api, so that modules can now define commands that are subject to
      ACL channel permission checks. 
    * Add 4 new flags that describe how a module interacts with a command (SUBSCRIBE, PUBLISH,
      UNSUBSCRIBE, and PATTERN). They are all technically composable, however not sure how a
      command could both subscribe and unsubscribe from a command at once, but didn't see
      a reason to add explicit validation there.
    * Add two new module apis RM_ChannelAtPosWithFlags and RM_IsChannelsPositionRequest to
      duplicate the functionality provided by the keys position APIs.
    * The RM_ACLCheckChannelPermissions (only released in 7.0 RC1) was changed to take flags
      rather than a boolean literal.
    * The RM_ACLCheckKeyPermissions (only released in 7.0 RC1) was changed to take flags
      corresponding to keyspecs instead of custom permission flags. These keyspec flags mimic
      the flags for ACLCheckChannelPermissions.
    71204f96
redismodule.h 83.7 KB