spiff-arena/bin/boot_server_in_docker
Jon Herron 492681e5de Squashed 'spiffworkflow-backend/' changes from 03bf7a61..10c443a2
10c443a2 Merge pull request #130 from sartography/feature/data
71c803aa allow passing in the log level into the app w/ burnettk
daeb82d9 Merge pull request #126 from sartography/dependabot/pip/typing-extensions-4.4.0
14c8f52c Merge pull request #123 from sartography/dependabot/pip/dot-github/workflows/poetry-1.2.2
92d204e6 Merge remote-tracking branch 'origin/main' into feature/data
1cb77901 run the save all bpmn script on server boot w/ burnettk
16a6f476 Bump typing-extensions from 4.3.0 to 4.4.0
d8ac61fc Bump poetry from 1.2.1 to 1.2.2 in /.github/workflows
3be27786 Merge pull request #131 from sartography/feature/permissions2
1fd8fc78 Merge remote-tracking branch 'origin/main' into feature/permissions2
d29621ae data setup on app boot
0b21a5d4 refactor bin/save_all_bpmn.py into service code
02fb9d61 lint
c95db461 refactor scripts
98628fc2 This caused a problem with scopes when token timed out.
d8b2323b merged in main and resolved conflicts
d01b4fc7 updated sentry-sdk to resolve deprecation warnings
5851ddf5 update for mypy in python 3.9
508f9900 merged in main and resolved conflicts
68d69978 precommit w/ burnettk
85a4ee16 removed debug print statements w/ burnettk
93eb91f4 added keycloak configs and user perms for staging w/ burnettk
e4ded8fc added method to import permissions from yml file w/ burnettk
22ba89ae use percents instead of asterisks to better support db syntax w/ burnettk
0c116ae8 postgres does not use backticks w/ burnettk
621ad3ef attempting to see if sql like statement works in other dbs as well w/ burnettk

git-subtree-dir: spiffworkflow-backend
git-subtree-split: 10c443a2d82752e8ed9d1679afe6409d81029006
2022-10-12 15:28:52 -04:00

50 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
function error_handler() {
>&2 echo "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}."
exit "$2"
}
trap 'error_handler ${LINENO} $?' ERR
set -o errtrace -o errexit -o nounset -o pipefail
# run migrations
export FLASK_APP=/app/src/spiffworkflow_backend
if [[ "${DOWNGRADE_DB:-}" == "true" ]]; then
echo 'Downgrading database...'
poetry run flask db downgrade
fi
if [[ "${SPIFFWORKFLOW_BACKEND_UPGRADE_DB:-}" == "true" ]]; then
echo 'Upgrading database...'
poetry run flask db upgrade
fi
port="${SPIFFWORKFLOW_BACKEND_PORT:-}"
if [[ -z "$port" ]]; then
port=7000
fi
additional_args=""
if [[ "${APPLICATION_ROOT:-}" != "/" ]]; then
additional_args="${additional_args} -e SCRIPT_NAME=${APPLICATION_ROOT}"
fi
# HACK: if loading fixtures for acceptance tests when we do not need multiple workers
# it causes issues with attempting to add duplicate data to the db
workers=3
if [[ "${SPIFFWORKFLOW_BACKEND_LOAD_FIXTURE_DATA:-}" == "true" ]]; then
workers=1
fi
if [[ "${SPIFFWORKFLOW_BACKEND_RUN_DATA_SETUP:-}" != "false" ]]; then
SPIFFWORKFLOW_BACKEND_FAIL_ON_INVALID_PROCESS_MODELS=false poetry run python bin/save_all_bpmn.py
fi
export IS_GUNICORN="true"
export PROCESS_WAITING_MESSAGES="true"
# THIS MUST BE THE LAST COMMAND!
exec poetry run gunicorn ${additional_args} --bind "0.0.0.0:$port" --workers="$workers" --timeout 90 --capture-output --access-logfile '-' --log-level debug wsgi:app