Hey All,

I hope this email finds you all well. My name is Krish Katariya and I have
been working on setting up Apache Airavata, and during this process I
encountered a lot of challenges but also a lot of insights into airavata
setup which I believe will be helpful to future new contributors who are
navigating similar issues. I also plan to update readmes and code in the
near future to fix some of these issues.

Here is a general list of tips:

First, when running mvn clean install, even though the ide-integration says
to use the develop branch, I recommend using the master branch since the
develop branch is several commits behind. Also, even if the readme says to
use java 8, I recommend java 17 as using java 8/11 causes many compilation
errors with maven.

If you encounter issues with running the API Server (especially errors with
entity files and open jpa errors) I recommend going to the directories
causing the errors and running mvn clean install, since this fixes a lot of
random errors for me.

Also, we can't use the keycloak jboss docker image anymore, and airavata
has migrated to a newer version of keycloak. I recommend changing the
keycloak section of the docker-compose file to this:
```
  keycloak:
    image: quay.io/keycloak/keycloak:24.0.0
    environment:
      - KEYCLOAK_ADMIN=admin
      - KEYCLOAK_ADMIN_PASSWORD=admin
    ports:
      - "8080:8080"
      - "8443:8443"
    volumes:
      -
./keycloak/Default-export.json:/opt/keycloak/data/import/Default-export.json
    command:
      - start-dev
      - "--import-realm"
      - "--hostname-strict=false"
```

You will also need to update the Default-export.json. Focus on: mapping
redirect uris correctly to airavata.host and keeping only pga-client.

When getting keycloak set up, I recommend using keycloak-upgrade branch of
the django portal repository rather than the main branch. This branch
doesn't have the settings_local.py file setup, so you will need to fill in
information as necessary. Access airavata.host:8080 and use admin, admin to
login into the keycloak portal. From here you may need to recreate the pga
client, and regenerate a new client id. Furthermore, focus on getting the
right keycloak URLs as the keycloak API url links have been updated.
Personally, these worked well for me:

KEYCLOAK_AUTHORIZE_URL = '
http://airavata.host:8080/realms/master/protocol/openid-connect/auth'
KEYCLOAK_TOKEN_URL = '
http://airavata.host:8080/realms/master/protocol/openid-connect/token'
KEYCLOAK_USERINFO_URL = '
http://airavata.host:8080/realms/master/protocol/openid-connect/userinfo'
KEYCLOAK_LOGOUT_URL = '
http://airavata.host:8080/realms/master/protocol/openid-connect/logout'

If you get SSL errors because Django and Keycloak don't have the right
matched versions, add this into
settings.py: os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'. Note this is
only for development purposes, otherwise you should setup SSL properly.

For windows users when setting up the django portal, you may need to update
scripts to work with Windows file system/directories. The build.js script
also may fail if your directory has spaces in it, but this is a quick fix.

These are most of the issues/fixes I encountered so far, I hope this helps
someone!

Krish Katariya

Reply via email to