{
  "name": "Mountable sandbox job",
  "flow": [
    {
      "id": 1,
      "module": "gateway:CustomWebHook",
      "version": 1,
      "parameters": {
        "hook": null,
        "maxResults": 1
      },
      "mapper": {},
      "metadata": {
        "designer": {
          "x": 0,
          "y": 0
        }
      }
    },
    {
      "id": 10,
      "module": "builtin:BasicRouter",
      "version": 1,
      "parameters": {},
      "mapper": null,
      "metadata": {
        "designer": {
          "x": 300,
          "y": 0
        }
      },
      "routes": [
        {
          "flow": [
            {
              "id": 2,
              "module": "http:ActionSendData",
              "version": 3,
              "parameters": {
                "handleErrors": true,
                "useNewZLibDeCompress": true
              },
              "mapper": {
                "url": "https://mountable.io/api/v1/me",
                "serializeUrl": false,
                "method": "get",
                "headers": [
                  {
                    "name": "Authorization",
                    "value": "Bearer REPLACE_WITH_API_KEY"
                  }
                ],
                "qs": [],
                "bodyType": "raw",
                "parseResponse": true,
                "authUser": "",
                "authPass": "",
                "timeout": "",
                "shareCookies": false,
                "ca": "",
                "rejectUnauthorized": true,
                "followRedirect": true,
                "useQuerystring": false,
                "gzip": true,
                "useMtls": false,
                "contentType": "",
                "data": "",
                "followAllRedirects": false
              },
              "metadata": {
                "designer": {
                  "x": 300,
                  "y": 0
                }
              },
              "filter": {
                "name": "Idempotency key present",
                "conditions": [
                  [
                    {
                      "a": "{{1.idempotency_key}}",
                      "o": "exist"
                    }
                  ]
                ]
              }
            },
            {
              "id": 3,
              "module": "http:ActionSendData",
              "version": 3,
              "parameters": {
                "handleErrors": true,
                "useNewZLibDeCompress": true
              },
              "mapper": {
                "url": "https://mountable.io/api/v1/orgs/{{2.data.api_key.org_id}}/filesystems/REPLACE_WITH_FILESYSTEM_ID/usage",
                "serializeUrl": false,
                "method": "get",
                "headers": [
                  {
                    "name": "Authorization",
                    "value": "Bearer REPLACE_WITH_API_KEY"
                  }
                ],
                "qs": [],
                "bodyType": "raw",
                "parseResponse": true,
                "authUser": "",
                "authPass": "",
                "timeout": "",
                "shareCookies": false,
                "ca": "",
                "rejectUnauthorized": true,
                "followRedirect": true,
                "useQuerystring": false,
                "gzip": true,
                "useMtls": false,
                "contentType": "",
                "data": "",
                "followAllRedirects": false
              },
              "metadata": {
                "designer": {
                  "x": 600,
                  "y": 0
                }
              }
            },
            {
              "id": 4,
              "module": "http:ActionSendData",
              "version": 3,
              "parameters": {
                "handleErrors": true,
                "useNewZLibDeCompress": true
              },
              "mapper": {
                "url": "https://mountable.io/api/v1/mount-sessions",
                "serializeUrl": false,
                "method": "post",
                "headers": [
                  {
                    "name": "Authorization",
                    "value": "Bearer REPLACE_WITH_API_KEY"
                  }
                ],
                "qs": [],
                "bodyType": "raw",
                "parseResponse": true,
                "authUser": "",
                "authPass": "",
                "timeout": "",
                "shareCookies": false,
                "ca": "",
                "rejectUnauthorized": true,
                "followRedirect": true,
                "useQuerystring": false,
                "gzip": true,
                "useMtls": false,
                "contentType": "application/json",
                "data": "{\"filesystem_id\":\"REPLACE_WITH_FILESYSTEM_ID\",\"mode\":\"rw\",\"idempotency_key\":\"{{1.idempotency_key}}\",\"max_duration_seconds\":3600}",
                "followAllRedirects": false
              },
              "metadata": {
                "designer": {
                  "x": 900,
                  "y": 0
                }
              }
            },
            {
              "id": 5,
              "module": "builtin:BasicRouter",
              "version": 1,
              "parameters": {},
              "mapper": null,
              "metadata": {
                "designer": {
                  "x": 1200,
                  "y": 0
                }
              },
              "routes": [
                {
                  "flow": [
                    {
                      "id": 6,
                      "module": "http:ActionSendData",
                      "version": 3,
                      "parameters": {
                        "handleErrors": true,
                        "useNewZLibDeCompress": true
                      },
                      "mapper": {
                        "url": "https://example.invalid/mountable-sandbox",
                        "serializeUrl": false,
                        "method": "post",
                        "headers": [],
                        "qs": [],
                        "bodyType": "raw",
                        "parseResponse": true,
                        "authUser": "",
                        "authPass": "",
                        "timeout": "",
                        "shareCookies": false,
                        "ca": "",
                        "rejectUnauthorized": true,
                        "followRedirect": true,
                        "useQuerystring": false,
                        "gzip": true,
                        "useMtls": false,
                        "contentType": "application/json",
                        "data": "{\"session_id\":\"{{4.data.id}}\",\"ticket\":\"{{4.data.ticket}}\",\"mount_command\":\"mkdir -p /mnt/mountable && printf '%s\\\\n' \\\"$MOUNTABLE_TICKET\\\" | mountable mount --ticket-stdin --json /mnt/mountable\"}",
                        "followAllRedirects": false
                      },
                      "metadata": {
                        "designer": {
                          "x": 1500,
                          "y": -160
                        }
                      },
                      "filter": {
                        "name": "Ticket present",
                        "conditions": [
                          [
                            {
                              "a": "{{4.data.ticket}}",
                              "o": "exist"
                            }
                          ]
                        ]
                      },
                      "onerror": [
                        {
                          "id": 7,
                          "module": "builtin:Ignore",
                          "version": 1,
                          "parameters": {},
                          "mapper": null,
                          "metadata": {
                            "designer": {
                              "x": 1500,
                              "y": 40
                            }
                          }
                        }
                      ]
                    },
                    {
                      "id": 8,
                      "module": "http:ActionSendData",
                      "version": 3,
                      "parameters": {
                        "handleErrors": true,
                        "useNewZLibDeCompress": true
                      },
                      "mapper": {
                        "url": "https://mountable.io/api/v1/mount-sessions/{{4.data.id}}",
                        "serializeUrl": false,
                        "method": "delete",
                        "headers": [
                          {
                            "name": "Authorization",
                            "value": "Bearer REPLACE_WITH_API_KEY"
                          }
                        ],
                        "qs": [],
                        "bodyType": "raw",
                        "parseResponse": true,
                        "authUser": "",
                        "authPass": "",
                        "timeout": "",
                        "shareCookies": false,
                        "ca": "",
                        "rejectUnauthorized": true,
                        "followRedirect": true,
                        "useQuerystring": false,
                        "gzip": true,
                        "useMtls": false,
                        "contentType": "",
                        "data": "",
                        "followAllRedirects": false
                      },
                      "metadata": {
                        "designer": {
                          "x": 1800,
                          "y": -160
                        }
                      }
                    }
                  ]
                },
                {
                  "flow": [
                    {
                      "id": 9,
                      "module": "http:ActionSendData",
                      "version": 3,
                      "parameters": {
                        "handleErrors": true,
                        "useNewZLibDeCompress": true
                      },
                      "mapper": {
                        "url": "https://mountable.io/api/v1/mount-sessions/{{4.data.id}}",
                        "serializeUrl": false,
                        "method": "delete",
                        "headers": [
                          {
                            "name": "Authorization",
                            "value": "Bearer REPLACE_WITH_API_KEY"
                          }
                        ],
                        "qs": [],
                        "bodyType": "raw",
                        "parseResponse": true,
                        "authUser": "",
                        "authPass": "",
                        "timeout": "",
                        "shareCookies": false,
                        "ca": "",
                        "rejectUnauthorized": true,
                        "followRedirect": true,
                        "useQuerystring": false,
                        "gzip": true,
                        "useMtls": false,
                        "contentType": "",
                        "data": "",
                        "followAllRedirects": false
                      },
                      "metadata": {
                        "designer": {
                          "x": 1500,
                          "y": 160
                        }
                      },
                      "filter": {
                        "name": "Lost ticket",
                        "conditions": [
                          [
                            {
                              "a": "{{4.data.ticket}}",
                              "o": "notexist"
                            },
                            {
                              "a": "{{4.data.state}}",
                              "b": "requested",
                              "o": "text:equal"
                            }
                          ]
                        ]
                      }
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "flow": [
            {
              "id": 11,
              "module": "http:ActionSendData",
              "version": 3,
              "parameters": {
                "handleErrors": false,
                "useNewZLibDeCompress": true
              },
              "mapper": {
                "url": "https://example.invalid/missing-idempotency-key",
                "serializeUrl": false,
                "method": "get",
                "headers": [],
                "qs": [],
                "bodyType": "raw",
                "parseResponse": true,
                "authUser": "",
                "authPass": "",
                "timeout": "",
                "shareCookies": false,
                "ca": "",
                "rejectUnauthorized": true,
                "followRedirect": true,
                "useQuerystring": false,
                "gzip": true,
                "useMtls": false,
                "contentType": "",
                "data": "",
                "followAllRedirects": false
              },
              "metadata": {
                "designer": {
                  "x": 300,
                  "y": 200
                }
              },
              "filter": {
                "name": "Idempotency key missing",
                "conditions": [
                  [
                    {
                      "a": "{{1.idempotency_key}}",
                      "o": "notexist"
                    }
                  ]
                ]
              }
            }
          ]
        }
      ]
    }
  ],
  "metadata": {
    "instant": true,
    "version": 1,
    "scenario": {
      "roundtrips": 1,
      "maxErrors": 3,
      "autoCommit": true,
      "autoCommitTriggerLast": true,
      "sequential": false,
      "confidential": false,
      "dataloss": false,
      "dlq": false
    },
    "designer": {
      "orphans": []
    }
  }
}
