\\
Box supports external integration through an HTTP-based REST API.\\
\\
__Restriction:__\\
-REST API does not support resume on upload\\
-No mdtm(File modification time) changes.\\
-REST API does not support streaming on upload. At Large file (greater then 25 MB) upload: CrushFTP stores the uploaded file temporary at CrushFTP install folder/box/<<box username>>\\
\\
\\
Create new custom app at [https://app.box.com/developers/console].\\
[attachments|box_create_custom_app.png]\\
\\ 
CrushFTP use __JWT Authentication__ method ([https://developer.box.com/guides/authentication/jwt/]), and not OAuth2. Select JWT based authentication.\\
\\
[attachments|box_jwt_auth.png]\\
\\
__At Custom App's Configuration__ :\\
\\
Choose APP + Enterprise Access.\\
[attachments|box_app_access_level.png]\\
\\
At applications scopes: Check the flags : "__Write all files and foldoers stored in box__" and "__Manage users__"\\
[attachments|box_app_scopes.png]\\
\\
Check the "Make API calls using the as-user header" checkbox at __Advanced Features__\\
\\
[attachments|box_as_user_header.png]\\
\\
Generate the RSA keypair for JWT at Configuration -> Add and Manage Public Keys\\
\\
[attachments|box_rsa_keypair.png]\\
\\
Save your Custom App changes.\\
\\
At __Authorization__ tab : Review and submit for app approval. __Requires Box admin approval__.\\
__Important__ : Any change on Custom App configurations requires reauthorization. The box admin needs to re-authorize your Custom Application.\\
\\ 
Dwonload JSON file from __Configuration -> App Settings__\\
The JSON file should contains:
{{{
{
  "boxAppSettings": {
    "clientID": "ogXXXXXXXXXXXXXXXX",
    "clientSecret": "laAXXXXXXXXXXXX",
    "appAuth": {
      "publicKeyID": "cgXXXXXXXXX",
      "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXnblc=\n-----END ENCRYPTED PRIVATE KEY-----\n",
      "passphrase": "aXXXXXXXXXXXXXXXXXXXXe"
    }
  },
  "enterpriseID": "2XXXXXXXXX5"
}
}}}
\\
__Configuration:__ On CrushFTP at remote connection settings:\\
\\ 
__1.__ If flag "Store JWT JSON file" is checked.\\
\\
User name : - box login user name\\
JWT config: - Copy the entire JWT config JSON file content to the input field.\\
\\
[attachments|box_vfs_congfig_file.png]\\
\\
__2.__ "Store JWT JSON file" is unchecked:\\
\\
User name : - box login user name\\
Password: - "clientSecret" from the JSON config file\\
Client Id: - "clientID" from the JSON config file\\
Enterprise Id: - "enterpriseID" from the JSON config file\\
Public Key Id: - "publicKeyID" from the JSON config file\\
Private Key: - "privateKey" from the JSON config file\\
Private Key password phrase: - "passphrase" from the JSON config file\\
\\
[attachments|box_vfs_settings.png]\\
\\