{
  "meta": {
    "$_GET": [
      {
        "type": "text",
        "name": "sort"
      },
      {
        "type": "text",
        "name": "dir"
      },
      {
        "type": "text",
        "name": "filter"
      }
    ]
  },
  "exec": {
    "steps": [
      {
        "name": "",
        "module": "auth",
        "action": "restrict",
        "options": {
          "provider": "auth",
          "permissions": [
            "Administrator"
          ],
          "loginUrl": "/",
          "forbiddenUrl": "/"
        }
      },
      {
        "name": "query",
        "module": "dbconnector",
        "action": "select",
        "options": {
          "connection": "authdb",
          "sql": {
            "type": "select",
            "columns": [
              {
                "table": "users",
                "column": "id"
              },
              {
                "table": "users",
                "column": "firstname"
              },
              {
                "table": "users",
                "column": "lastname"
              },
              {
                "table": "users",
                "column": "email"
              },
              {
                "table": "users",
                "column": "validated"
              }
            ],
            "params": [
              {
                "operator": "contains",
                "type": "expression",
                "name": ":P1",
                "value": "{{$_GET.filter}}",
                "test": ""
              },
              {
                "operator": "contains",
                "type": "expression",
                "name": ":P2",
                "value": "{{$_GET.filter}}",
                "test": ""
              },
              {
                "operator": "contains",
                "type": "expression",
                "name": ":P3",
                "value": "{{$_GET.filter}}",
                "test": ""
              }
            ],
            "table": {
              "name": "users"
            },
            "primary": "id",
            "joins": [],
            "query": "select `id`, `firstname`, `lastname`, `email`, `validated` from `users` where `users`.`email` like ? or `users`.`firstname` like ? or `users`.`lastname` like ?",
            "wheres": {
              "condition": "OR",
              "rules": [
                {
                  "id": "users.email",
                  "field": "users.email",
                  "type": "string",
                  "operator": "contains",
                  "value": "{{$_GET.filter}}",
                  "data": {
                    "table": "users",
                    "column": "email",
                    "type": "text",
                    "columnObj": {
                      "type": "string",
                      "maxLength": 255,
                      "primary": false,
                      "unique": false,
                      "nullable": true,
                      "name": "email"
                    }
                  },
                  "operation": "LIKE"
                },
                {
                  "id": "users.firstname",
                  "field": "users.firstname",
                  "type": "string",
                  "operator": "contains",
                  "value": "{{$_GET.filter}}",
                  "data": {
                    "table": "users",
                    "column": "firstname",
                    "type": "text",
                    "columnObj": {
                      "type": "string",
                      "maxLength": 255,
                      "primary": false,
                      "unique": false,
                      "nullable": true,
                      "name": "firstname"
                    }
                  },
                  "operation": "LIKE"
                },
                {
                  "id": "users.lastname",
                  "field": "users.lastname",
                  "type": "string",
                  "operator": "contains",
                  "value": "{{$_GET.filter}}",
                  "data": {
                    "table": "users",
                    "column": "lastname",
                    "type": "text",
                    "columnObj": {
                      "type": "string",
                      "maxLength": 255,
                      "primary": false,
                      "unique": false,
                      "nullable": true,
                      "name": "lastname"
                    }
                  },
                  "operation": "LIKE"
                }
              ],
              "conditional": null,
              "valid": true
            }
          }
        },
        "output": true,
        "meta": [
          {
            "type": "number",
            "name": "id"
          },
          {
            "type": "text",
            "name": "firstname"
          },
          {
            "type": "text",
            "name": "lastname"
          },
          {
            "type": "text",
            "name": "email"
          },
          {
            "type": "boolean",
            "name": "validated"
          }
        ],
        "outputType": "array"
      }
    ]
  }
}