{
  "store": {
    "file": {
      "docString": "Postgres based file storage.",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": true
      },
      "sql": {},
      "type": "object",
      "group": "store",
      "name": "file",
      "relations": [],
      "enableQueries": true,
      "queryOptions": {
        "withDates": true,
        "withPrimaryKey": true
      },
      "keys": {
        "bucketName": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {
            "searchable": true
          },
          "type": "string"
        },
        "contentLength": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": -2147483647,
            "max": 2147483647
          },
          "sql": {},
          "type": "number"
        },
        "contentType": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "meta": {
          "type": "reference",
          "docString": "",
          "isOptional": false,
          "sql": {},
          "validator": {},
          "reference": {
            "group": "store",
            "name": "fileMeta"
          }
        }
      }
    },
    "fileMeta": {
      "docString": "User definable, optional object to store whatever you want",
      "isOptional": true,
      "validator": {
        "allowNull": false,
        "strict": true
      },
      "sql": {},
      "type": "object",
      "group": "store",
      "name": "fileMeta",
      "relations": [],
      "defaultValue": "{}",
      "keys": {
        "transforms": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false
          },
          "sql": {},
          "type": "any"
        },
        "transformedFromOriginal": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "originalWidth": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": -2147483647,
            "max": 2147483647
          },
          "sql": {},
          "type": "number"
        },
        "originalHeight": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": -2147483647,
            "max": 2147483647
          },
          "sql": {},
          "type": "number"
        },
        "placeholderImage": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "altText": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        }
      }
    },
    "fileResponse": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": true
      },
      "sql": {},
      "type": "object",
      "group": "store",
      "name": "fileResponse",
      "relations": [],
      "keys": {
        "id": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false
          },
          "sql": {},
          "type": "uuid"
        },
        "name": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "contentType": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "originalWidth": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": -2147483647,
            "max": 2147483647
          },
          "sql": {},
          "type": "number"
        },
        "originalHeight": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": -2147483647,
            "max": 2147483647
          },
          "sql": {},
          "type": "number"
        },
        "url": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "placeholderImage": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "altText": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        }
      }
    },
    "imageTransformOptions": {
      "docString": "Set as '.query(T.reference(\"store\", \"imageTransformOptions\"))' of routes that use 'sendTransformedImage'.",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "store",
      "name": "imageTransformOptions",
      "relations": [],
      "keys": {
        "q": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": 1,
            "max": 100
          },
          "sql": {},
          "type": "number",
          "defaultValue": "75"
        },
        "w": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "allowNull": false,
                "floatingPoint": false,
                "min": 1,
                "max": 99999
              },
              "sql": {},
              "type": "number"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string",
              "oneOf": ["original"]
            }
          ]
        }
      }
    },
    "job": {
      "docString": "\n      Postgres based job queue.\n      Use {@link queueWorkerAddJob} to insert new jobs in to the queue and {@link queueWorkerRegisterCronJobs} for all your recurring jobs.\n      Use {@link queueWorkerCreate} as a way to pick up jobs.\n      ",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": true
      },
      "sql": {},
      "type": "object",
      "group": "store",
      "name": "job",
      "relations": [],
      "enableQueries": true,
      "queryOptions": {
        "withDates": true,
        "withPrimaryKey": true
      },
      "keys": {
        "id": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": -2147483647,
            "max": 2147483647
          },
          "sql": {
            "searchable": true,
            "primary": true
          },
          "type": "number"
        },
        "isComplete": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false
          },
          "sql": {
            "searchable": true
          },
          "type": "boolean",
          "defaultValue": "false"
        },
        "priority": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": 0
          },
          "sql": {},
          "type": "number",
          "defaultValue": "0"
        },
        "scheduledAt": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false
          },
          "sql": {
            "searchable": true
          },
          "type": "date",
          "defaultValue": "(new Date())"
        },
        "name": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {
            "searchable": true
          },
          "type": "string"
        },
        "data": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false
          },
          "sql": {},
          "type": "any",
          "defaultValue": "{}"
        },
        "retryCount": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": -2147483647,
            "max": 2147483647
          },
          "sql": {},
          "type": "number",
          "defaultValue": "0"
        },
        "handlerTimeout": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": 0
          },
          "sql": {},
          "type": "number"
        }
      }
    },
    "secureImageTransformOptions": {
      "docString": "Set as '.query(T.reference(\"store\", \"secureImageTransformOptions\"))' of routes that use 'sendTransformedImage' and 'fileVerifyAccessToken'.",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "store",
      "name": "secureImageTransformOptions",
      "relations": [],
      "keys": {
        "accessToken": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "q": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "floatingPoint": false,
            "min": 1,
            "max": 100
          },
          "sql": {},
          "type": "number",
          "defaultValue": "75"
        },
        "w": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "allowNull": false,
                "floatingPoint": false,
                "min": 1,
                "max": 99999
              },
              "sql": {},
              "type": "number"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string",
              "oneOf": ["original"]
            }
          ]
        }
      }
    },
    "sessionStore": {
      "docString": "Session data store, used by 'sessionStore*' functions.",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": true
      },
      "sql": {},
      "type": "object",
      "group": "store",
      "name": "sessionStore",
      "relations": [
        {
          "type": "relation",
          "subType": "oneToMany",
          "ownKey": "accessTokens",
          "isOptional": false,
          "reference": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "store",
              "name": "sessionStoreToken",
              "uniqueName": "StoreSessionStoreToken"
            }
          }
        }
      ],
      "enableQueries": true,
      "queryOptions": {
        "withDates": true,
        "withPrimaryKey": true
      },
      "keys": {
        "data": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false
          },
          "sql": {},
          "type": "any",
          "defaultValue": "{}"
        },
        "checksum": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "revokedAt": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false
          },
          "sql": {},
          "type": "date"
        }
      }
    },
    "sessionStoreToken": {
      "docString": "Store all tokens that belong to a session.",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": true
      },
      "sql": {},
      "type": "object",
      "group": "store",
      "name": "sessionStoreToken",
      "relations": [
        {
          "type": "relation",
          "subType": "manyToOne",
          "ownKey": "session",
          "referencedKey": "accessTokens",
          "isOptional": false,
          "reference": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "store",
              "name": "sessionStore",
              "uniqueName": "StoreSessionStore"
            }
          }
        },
        {
          "type": "relation",
          "subType": "oneToOne",
          "ownKey": "refreshToken",
          "referencedKey": "accessToken",
          "isOptional": true,
          "reference": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "store",
              "name": "sessionStoreToken",
              "uniqueName": "StoreSessionStoreToken"
            }
          }
        }
      ],
      "enableQueries": true,
      "queryOptions": {
        "withPrimaryKey": true
      },
      "keys": {
        "expiresAt": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false
          },
          "sql": {
            "searchable": true
          },
          "type": "date"
        },
        "revokedAt": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false
          },
          "sql": {
            "searchable": true
          },
          "type": "date"
        },
        "createdAt": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false
          },
          "sql": {},
          "type": "date"
        }
      }
    }
  }
}
