How You can access raw files or terminal or console in a cloud based erpnext deployment

I looked around the documentation and this is well explained for users that has a self-hosted erpnext solution. But is not clear how to access this on the cloud.
Could you please provide some direction? maybe can’t be done?
I am interested customize the webpages and some triggered py script when workflows status are updated.

Thanks

Leo

Unless your cloud provider is willing to grant you direct access to their hosts? Then no, you cannot access the raw code files, terminal, or console.

That limits your ability to make modifications. However, you can still change quite a lot through your web browser alone. Some examples:

2 Likes

Hi there,
any idea if there’s a way to emulate pyodbc’s behaviour using client/server scripts? I’m currently testing custom app’s limitations on FrappeCloud and I’m struggling with retrieving data from an external database (I don’t know if this is even possible)

I’ve never used FrappeCloud, so don’t know what limitations in might have. For example, their host’s firewall might block connections to external data sources.

Frappe’s safe_exec contexts (server scripts, system console, etc.) won’t let you load up external libraries, but for something like ODBC you have a few options:

  1. create a custom app that imports pyodbc (or whatever) and provides whitelisted interface methods
  2. give your external database an HTTP/REST api, which can then be accessed by the safe_exec compatible methods make_post_request or make_get_request.
2 Likes

I had already given a try to the first option as I installed my custom app via GitHub and imported pyodbc (in this case) and provided a whitelisted interface. However, I got an error message “No module named ‘pyodbc’” when trying to execute a method (I’ve no access to the full error log right now) but I will check again just in case.
I may try second option if workload allows me to do so and I will let you know the results if that’s the case.
Thanks for your answers!

Hmm…I’m not very familiar with how things work on the backend for Frappe Cloud apps. It might be worth testing on a development server. Did you add pyodbc to requirements.txt via pip or manually?

It was added manually before pushing the custom app to the repository as you have no access to any console in Frappe Cloud, and it had been tested before using a development server.

Ah, so it worked on a development server but not on frappe cloud? That’s very useful to know. In that case, I’d definitely reach out to frappe support. They should be able to help, or at the very least they should be able to confirm that it’s a limitation of the platform.

Thanks
I was able to use client scripts to solve my problem.
Now I am stuck on creating a webpage to show information contained on an data entry on custom doctype.
The documentation and forums suggest to load up files to the www/ folder, which I can’t.
Any suggestion or examples on how to achieve this?
Thanks
Leo

is pyodbc in requirements.txt of your app?

add it there, reinstall and try again

note: I don’t use frappecloud.