Quickstart
==========

Development environment and dependencies
----------------------------------------

- Install python 3.11 if you do not have it already:
    - ``add-apt-repository ppa:deadsnakes/ppa``
    - ``apt install python3.11 python3.11-distutils``
- Follow Steps 1 and 2 from here to install dependencies and setup DB:
  `<https://workfloworchestrator.org/orchestrator-core/workshops/beginner/debian/>`_
- To install the orchestrator GUI, you can follow the steps 5 and 6 from the previous link.
- Create a virtual environment:
    - ``source /usr/share/virtualenvwrapper/virtualenvwrapper.sh``
    - ``mkvirtualenv --python python3.11 gso``
- To use the virtual environment:
    - ``source /usr/share/virtualenvwrapper/virtualenvwrapper.sh``
    - ``workon gso``

Installation
------------

Do all this inside the virtual environment.

- Clone this repository
- ``pip install -r requirements.txt``
    - If you get an error because you pip version is too old, run this:
      ``curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11``
- ``pip install -e .``
- Create an ``oss-params.json`` based on the ``oss-params-example.json`` file inside ``/gso``.
- Export the oss-params file: ``export OSS_PARAMS_FILENAME="/path/to/oss-params.json"``
- Upgrade DB to latest revision: ``PYTHONPATH=. python main.py db upgrade heads``

Run
---

- Start the workflow orchestrator core with ``uvicorn --host 0.0.0.0 --port 8080 main:app`` from inside the ``gso``
  directory of this repository.
- Start the GUI with ``yarn start``.


Useful workflow orchestrator resources
--------------------------------------

- WFO API (Swagger): `<https://workfloworchestrator.org/orchestrator-core/architecture/application/api/>`_
- WFO API (repository):
  `<https://github.com/workfloworchestrator/orchestrator-core/tree/main/orchestrator/api/api_v1/endpoints>`_