This sounds super interesting. We'd be happy to work with you to get that going.
I think there are two main hurdles: one is the authentication issue, which you mentioned, and the other is cross-site protection built into browsers. Perhaps the best way to overcome both of these is to have your app act as a proxy for the CompleteFTP file-manager's API.
The next version of CompleteFTP, 12.0.0, which is due out next month, will include a new file-manager. It's an open-source fork of angular-filemanager. The repository in on GitHub at github.com/EnterpriseDT/completeftp-filemanager. The server-side API is written entirely in Javascript (JSS). It's invoked from the browser via JSON-RPC and all calls pass through a single point (index.jss). For example, a file-list request looks like this:
{
"method": "list",
"id":0,
"params": {
"path": "/MyFiles"
}
}
and the response looks like this:
{
"id": 0,
"result": {
"canWrite": true,
"canRemove": true,
"canRename": true,
"files": [{
"name": "file001.dat",
"rights": "drwxr-xr-x",
"size": 79,
"date": "Wed, 17 Oct 2018 03:22:37 UTC",
"type": "file"
}, {
"name": "file002.dat",
"rights": "drwxr-xr-x",
"size": 37,
"date": "Wed, 17 Oct 2018 03:22:37 UTC",
"type": "file"
}
]
}
}
I imagine that you could host all of the AngularJS code on your server and replace index.jss with your own code that acts as a dumb proxy, forwarding the requests to CompleteFTP and sending the responses back to the client. To get the client code to call your URL instead of index.jss is done by changing the values in the values array defined on line 49 of template.html.
You'll see that there's a login method in the API, so if the credentials for your app are the same as those for CompleteFTP, then you can perhaps just call that using the credentials that the user enters when logging into your app. You could probably also use SAML if you like.
And yes, CompleteFTP runs fine on Azure.
How does that sound?