Special variables

_users

Setting this variable is required for Raider to run.

It should contain a list of dictionaries with the user credentials. For now only usernames and passwords are evaluated, but in future it will be used for other arbitrary user related information. This data gets converted into a UserStore object which provides a dictionary-like structure with User objects inside.

Example:

(setv _users
   [{:username "user1"
     :password "s3cr3tP4ssWrd1"}
    {:username "user2"
     :password "s3cr3tP4ssWrd2"}])

_authentication

This variable is required for Raider to run.

It should contain all of the authentication stages in Flow objects. You can define those stages separately as variables like in the tutorial, and include them all at the end in the _authentication variable.

Example:

(setv _authentication
      [initialization
       login
       multi_factor
       #_ /])

Where each item in the list is a Flow object, and might look like this:

(setv initialization
      (Flow
        :name "initialization"
        :request (Request
                   :method "GET"
                   :path "about")
        :outputs [csrf_token session_id]
        :operations [(Print csrf_token session_id)
                     (Http
                       :status 200
                       :action
                       (NextStage "login")
                       :otherwise
                       (Error "Cannot initialize session"))]))

_base_url

This variable is optional.

Setting base_url will enable a shortcut for writing new Request objects. When enabled, the Requests can be created using :path instead of :url

_functions

This variable is optional.

It works similarly to the _authentication variable, but it includes only the Flows which don’t affect the authentication process.