Skip to content
Snippets Groups Projects

DOC: add doc on serverside

Merged Henrik tom Wörden requested to merge f-doc-serverside into dev
All threads resolved!
2 files
+ 19
15
Compare changes
  • Side-by-side
  • Inline
Files
2
Server Side Scripting
=====================
Some regular needed scripts, e.g. for computing a standardized analysis, might
be placed by the administrator on the same machine as the CaosDB server such
that they can be executed there, on the server side.
The execution of those scripts can also be started using the Python client.
The administrator may store regularly needed scripts, e.g. for computing a standardized analysis, on
the same machine as the CaosDB server, "on the server side", where they can be run directly by the
server.
The execution of those scripts can be initiated using the Python client, or the web interface.
Call a Script
~~~~~~~~~~~~~
Of course, you need to have access to the server and sufficient permissions to
run the script that you want to run. Execution is then fairly simple:
If you have access to the server and sufficient permissions to run the script, execution is fairly
simple:
.. code:: python
@@ -20,34 +21,37 @@ run the script that you want to run. Execution is then fairly simple:
print(response.stderr,response.stdout)
This triggers the execution of the script ``scriptname.py``. The output of the
This makes the server run the script ``scriptname.py``. The output of the
script (``stderr`` and ``stdout``) is returned within an response object.
If the script requires additional arguments, those can be provided after the
scriptname.
script's name.
Note, that by default the script runs with your account. It has your
Note that by default the script runs with your CaosDB account. It has your
permissions and changes are logged as if they were done by you directly.
Testing it
~~~~~~~~~~
You can try this out using for example the ``diagnositics.py`` script (it is
also available on https://demo.indiscale.com). The script returns some
information in JSON format. You can do for example the following
You can try this out using for example the ``diagnostics.py`` script (it is also available on
https://demo.indiscale.com). The script returns information about the server in JSON format. You can
do for example the following:
.. code:: python
import json
from caosdb.utils.server_side_scripting import run_server_side_script
response = run_server_side_script('administration/diagnostics.py')
print("JSON content:")
print(json.loads(response.stdout))
print("stderr:")
print(response.stderr)
Further Information
~~~~~~~~~~~~~~~~~~~
Additionally, you might have a look at https://docs.indiscale.com/caosdb-server/specification/Server-side-scripting.html
Additionally, you might want to have a look at
https://docs.indiscale.com/caosdb-server/specification/Server-side-scripting.html
Loading