Integrated Digital Engineering on AWS
  • 🚀First Time Users
    • What is IDEA?
    • Install IDEA
      • Pre-Requisites
      • Standard Installation
    • Access your IDEA cluster
      • Web Interface
      • Virtual Desktops (Linux/Windows)
      • SSH
      • APIs
    • File Browser
    • Let's get started
    • Cluster operations
      • Update IDEA cluster
        • Patch IDEA module (idea-admin.sh patch)
        • Update IDEA configuration (idea-admin.sh config)
        • Update IDEA backend resource (idea-admin.sh deploy)
      • Uninstall IDEA
  • 🤖Modules
    • What is a module?
    • Virtual Desktop Interfaces
      • User Documentation
        • Create a virtual desktop (Linux/Windows)
        • Stop/Delete/Hibernate a virtual desktop
        • Modify a virtual desktop
        • Share a virtual desktop
        • Virtual desktop scheduling
      • Admin Documentation
        • Dashboard
        • Sessions
        • Virtual Desktop Images (Software Stacks)
        • Permissions management
      • Technical
        • APIs
    • HPC Workloads
      • User Documentation
        • Submit a job
        • Control my jobs
        • Supported EC2 parameters
        • Job Storage
        • Troubleshooting
          • My job is not starting
      • Admin Documentation
        • Queue Profiles
        • Create Web Based Job Submission Worfklows
        • Configure Floating License resources
    • Cluster Manager
      • Projects Management
      • Users Management
      • Groups Management
      • Cluster Status
      • Email Templates
      • APIs
    • Shared Storage
      • Storage Management
  • 👑Best Practices
    • Analytics
      • OpenSearch
        • Configure your OpenSearch
        • Create your own analytics visualizations
    • Budget
      • Review your AWS spend
      • Control your AWS spend
      • Set up budget per project
    • Security
      • Backup IDEA environment
  • 🧱Architecture
    • High Level Overview
  • 🛠️Developer Portal
    • IDEA CLI utility
    • Developer Onboarding
  • 🚨Help and Support
    • FAQ
    • Raise a bug
Powered by GitBook
On this page
  • Pre-Requisites
  • Prepare environment
  • Set Environment Variables for Versions
  • Install pyenv and nvm
  • Python <PYTHON_VERSION>
  • NodeJS <NODEJS_VERSION>
  • Clone Git Repo
  • Virtual Environment
  • Install Dev Requirements
  • Verify Dev Setup
  1. Developer Portal

Developer Onboarding

PreviousIDEA CLI utilityNextFAQ

Last updated 1 year ago

Pre-Requisites

  • +

Versions

Replace the variables in the code snippets below with the following values:

  • PYTHON_VERSION: 3.9.18

  • NODEJS_VERSION: 16.20.2

  • CDK_VERSION: 2.115.0

Prepare environment

Set Environment Variables for Versions

PYTHON_VERSION=<see above>
NODEJS_VERSION=<see above>
CDK_VERSION=<see above>

Install pyenv and nvm

Using Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

brew install pyenv
brew install nvm

Using Powershell:

Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

Python <PYTHON_VERSION>

pyenv install --skip-existing $PYTHON_VERSION

NodeJS <NODEJS_VERSION>

nvm install $NODEJS_VERSION
nvm use $NODEJS_VERSION

AWS CDK <CDK_VERSION>

Note: Do NOT install CDK globally using npm -g or yarn global add

Follow the instructions below:

mkdir -p ~/.idea/lib/idea-cdk && pushd ~/.idea/lib/idea-cdk
npm init --force --yes
npm install aws-cdk@$CDK_VERSION --save
popd

If you want to upgrade CDK version for your existing IDEA dev environment, run:

invoke devtool.upgrade-cdk

Docker Desktop (Optional)

Follow instructions on the below link to install Docker Desktop. (Required if you are working with creating Docker Images)

Clone Git Repo

All PRs will be accepted only against the main branch.

git clone https://github.com/cfs-energy/idea.git
cd idea
// make your changes

Virtual Environment

Activate your python virtual environment via:

PYENV_VERSION=$PYTHON_VERSION python -m venv venv
source venv/bin/activate

If your PYENV_VERSION command is not working for any reason, you can create venv using below command:

$HOME/.pyenv/versions/$PYTHON_VERSION/bin/python3 -m venv venv

Install Dev Requirements

pip install -r requirements/dev.txt
Note for MacOS users

BigSur Note: cryptography and orjson library requirements fail to install on MacOS BigSur.

env LDFLAGS="-L$(brew --prefix openssl@1.1)/lib" CFLAGS="-I$(brew --prefix openssl@1.1)/include" pip install cryptography==36.0.1

To fix orjson, run:

brew install rust
# Upgrade your pip
python3 -m pip install --upgrade pip

Verify Dev Setup

Run below command to check if development environment is working as expected, run:

invoke -l

Running this command should print output like below:

Available tasks:
admin.main (admin)                   call administrator app main
build.administrator                  build administrator
build.all (build)                    build all
build.cluster-manager                build cluster manager
build.data-model                     build data-model
build.dcv-connection-gateway         build dcv connection gateway
build.scheduler                      build scheduler
build.sdk                            build sdk
build.virtual-desktop-controller     build virtual desktop controller
clean.administrator                  clean administrator
clean.all (clean)                    clean all components
clean.cluster-manager                clean cluster manager
clean.data-model                     clean data-model
clean.dcv-connection-gateway         clean dcv connection gateway
clean.scheduler                      clean scheduler
clean.sdk                            clean sdk
clean.virtual-desktop-controller     clean virtual desktop controller
devtool.build                        wrapper utility for invoke clean.<module> build.<module> package.<module>
devtool.configure                    configure devtool
devtool.ssh                          ssh into the workstation
devtool.sync                         rsync local sources with remote development server
devtool.upload-packages              upload packages
docker.build                         build administrator docker image
docker.prepare-artifacts             copy administrator docker image artifacts to deployment dir
docker.print-commands                print docker push commands for ECR
package.administrator                package administrator
package.all (package)                package all components
package.cluster-manager              package cluster manager
package.dcv-connection-gateway       package dcv connection gateway
package.scheduler                    package scheduler
package.virtual-desktop-controller   package virtual desktop controller
release.prepare-opensource-package
release.update-version
req.install                          Install python requirements
req.update                           Update python requirements using pip-compile.
scheduler.cli (scheduler)            call scheduler cli
tests.run-integration-tests          Run Integration Tests
tests.run-unit-tests                 Run Unit Tests
web-portal.serve                     serve web-portal frontend app in web-browser
web-portal.typings                   convert idea python models to typescript







Clean, Build and Package
invoke clean build package
Run idea-admin.sh in Developer Mode
The IDEA_DEV_MODE environment variable is used to indicate if idea-admin.sh should use the Docker Image or Run from sources.

If IDEA_DEV_MODE=true, idea-admin.sh will execute administrator app directly using sources.
If IDEA_DEV_MODE=false (default), idea-admin.sh will attempt to download the docker image for the latest release version and execute administrator app using Docker Container.

Export IDEA_DEV_MODE=true on your terminal, before executing idea-admin.sh on from project root.
# Enable Dev Modeexport IDEA_DEV_MODE=true
You will need to run export IDEA_DEV_MODE=true, each time you open a new Terminal session.
Verify if Developer Mode is enabled
To verify, if Developer Mode is enabled, run below command. This should print (Developer Mode) at the end of the banner.
| ./idea-admin.sh about'####:'########::'########::::'###::::. ##:: ##.... ##: ##.....::::'## ##:::: ##:: ##:::: ##: ######:::'##:::. ##:: ##:: ##:::: ##: ##...:::: #########:'####: ########:: ########: ##:::: ##:Integrated Digital Engineering on AWSVersion 3.0.0-beta.1(Developer Mode)

Install NVM latest release from:

To fix cryptography, follow the instructions mentioned here:

🛠️
AWS CLI v2
Python3
PyEnv
nvm
yarn
Git
https://github.com/coreybutler/nvm-windows/releases
https://docs.docker.com/desktop/mac/install/
https://stackoverflow.com/questions/64919326/pip-error-installing-cryptography-on-big-sur