anchor.diff:          For security reasons, you should not expose this port to the internet.
           Firewall it if needed.
         '';
  +    };
  +    jmxRoles = mkOption {
  +      default = [];
  +      description = ''
  +        Roles that are allowed to access the JMX (e.g. nodetool)
  +      '';
  +      type = types.listOf (types.submodule {
  +        options = {
  +          username = mkOption {
  +            type = types.string;
  +            description = "Username for JMX";
  +          };
  +          password = mkOption {
  +            type = types.string;
  +            description = "Password for JMX";
  +          };
  +        };
  +      });
       };
     };
   
  
positive.code:         { assertion = (cfg.maxHeapSize == null) == (cfg.heapNewSize == null);
            message = "If you set either of maxHeapSize or heapNewSize you have to set both";
          }
        ];
      users = mkIf (cfg.user == defaultUser) {
        extraUsers."${defaultUser}" =
  
negative.code:         after = [ "network.target" ];
          environment =
            { CASSANDRA_CONF = "${cassandraEtc}";
              JVM_OPTS = builtins.concatStringsSep " " fullJvmOptions;
              MAX_HEAP_SIZE = toString cfg.maxHeapSize;
              HEAP_NEWSIZE = toString cfg.heapNewSize;
              MALLOC_ARENA_MAX = toString cfg.mallocArenaMax;
  