{
  "beans": {},
  "deployers": {},
  "moddas": {
    "Webda/Hawk": "lib/hawk:default"
  },
  "models": {
    "graph": {
      "Webda/ApiKey": {
        "links": [
          {
            "attribute": "_user",
            "model": "Webda/User",
            "type": "LINK"
          }
        ]
      }
    },
    "tree": {
      "Webda/UuidModel": {
        "Webda/OwnerModel": {
          "Webda/ApiKey": {}
        }
      }
    },
    "plurals": {},
    "list": {
      "Webda/ApiKey": "lib/apikey:default"
    },
    "reflections": {
      "Webda/ApiKey": {
        "name": "string",
        "permissions": "{\n    GET: string[];\n    PUT: string[];\n    DELETE: string[];\n    POST: string[];\n  }",
        "algorithm": "string",
        "__secret": "string",
        "__checker": "(address: string) => boolean",
        "origins": "string[]",
        "whitelist": "string[]",
        "_user": "ModelLink<User>",
        "public": "boolean",
        "uuid": "string",
        "__class": "CoreModelDefinition<this>",
        "__type": "string",
        "__types": "string[]",
        "__ctx": "OperationContext",
        "__store": "Store<this>",
        "__dirty": "Set<string | symbol>",
        "_creationDate": "Date",
        "_lastUpdate": "Date",
        "__deleted": "boolean"
      }
    }
  },
  "schemas": {
    "Webda/ApiKey": {
      "type": "object",
      "properties": {
        "_creationDate": {
          "type": "string",
          "format": "date-time",
          "description": "Creation date",
          "readOnly": true
        },
        "_lastUpdate": {
          "type": "string",
          "format": "date-time",
          "description": "Last update date",
          "readOnly": true
        },
        "uuid": {
          "type": "string",
          "description": "UUID of the object"
        },
        "_user": {
          "type": "string",
          "readOnly": true
        },
        "public": {
          "type": "boolean",
          "description": "Define if the object is publicly readable",
          "default": false
        },
        "name": {
          "type": "string",
          "description": "Friendly user name of the key"
        },
        "permissions": {
          "type": "object",
          "properties": {
            "GET": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "PUT": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "DELETE": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "POST": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "GET",
            "PUT",
            "DELETE",
            "POST"
          ],
          "description": "Retriction on URL to apply to the key\n\nSplit per method, each item of the array contains a regexp to validate the url used"
        },
        "algorithm": {
          "type": "string",
          "description": "Algorithm to use with hawk"
        },
        "origins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Authorize those origins only (regexp)"
        },
        "whitelist": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "If defined the key is only usable from these ips\n\nSupport of DNS is not yet ready"
        }
      },
      "required": [
        "algorithm",
        "name",
        "uuid"
      ],
      "description": "Api Key to use with hawk",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "title": "ApiKey"
    },
    "Webda/BinaryFile": {
      "type": "object",
      "properties": {
        "hash": {
          "type": "string",
          "description": "Will be computed by the service\n\nhash of the content"
        },
        "challenge": {
          "type": "string",
          "description": "Will be computed by the service\n\nhash of the content prefixed by 'WEBDA'"
        },
        "size": {
          "type": "number",
          "description": "Size of the binary"
        },
        "name": {
          "type": "string",
          "description": "Current name"
        },
        "mimetype": {
          "type": "string",
          "description": "Mimetype of the binary"
        },
        "metadata": {
          "description": "Metadatas stored along with the binary"
        },
        "originalname": {
          "type": "string",
          "description": "Original name"
        }
      },
      "required": [
        "mimetype",
        "name",
        "size"
      ],
      "description": "Represent a file to store",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "title": "BinaryFile"
    },
    "Webda/Hawk": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the service"
        },
        "url": {
          "type": "string",
          "description": "URL on which to serve the content"
        },
        "keyModel": {
          "type": "string",
          "description": "Key model"
        },
        "dynamicSessionKey": {
          "type": "string",
          "description": "If specified will verify the signature match the key store in session"
        },
        "redirectUrl": {
          "type": "string",
          "description": "redirect endpoint"
        },
        "redirectUris": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Allowed redirection with CSRF"
        },
        "openapi": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "type"
      ],
      "$schema": "http://json-schema.org/draft-07/schema#",
      "title": "HawkService"
    }
  }
}