sirus / backend /data_sources /start_api.sh
ranilmukesh's picture
Deploy SiRUS SQL Agent backend
b8277c4
#!/usr/bin/env bash
set -euo pipefail
echo "Setting up environment variables..."
export SIRUS_ADMIN_API_KEY="426f27d994943c874c22d42e77596e33c455dac315c361d35215cae5f39941b3"
export SIRUS_API_KEY_AUTH_ENABLED="true"
export SIRUS_ADMIN_AUTH_ENABLED="true"
# Defaults (can be overridden by environment)
export DATA_SOURCES_PORT="${DATA_SOURCES_PORT:-8000}"
export DATA_SOURCES_HOST="${DATA_SOURCES_HOST:-127.0.0.1}"
echo
echo "Environment variables set:"
echo " SIRUS_ADMIN_API_KEY=${SIRUS_ADMIN_API_KEY}"
echo " SIRUS_API_KEY_AUTH_ENABLED=${SIRUS_API_KEY_AUTH_ENABLED}"
echo " SIRUS_ADMIN_AUTH_ENABLED=${SIRUS_ADMIN_AUTH_ENABLED}"
echo
echo "Starting Data Sources API..."
echo
# Resolve directories
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# BACKEND_DIR should be the `backend` folder (parent of this data_sources dir)
BACKEND_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
# PROJECT_ROOT is the repository root (parent of backend) so imports like
# `backend.*` resolve when Python looks on sys.path
PROJECT_ROOT="$(cd "${BACKEND_DIR}/.." && pwd)"
echo "Project root: ${PROJECT_ROOT}"
# Ensure PYTHONPATH includes repository root so imports like `backend.*` resolve
export PYTHONPATH="${PROJECT_ROOT}:${PYTHONPATH:-}"
echo "PYTHONPATH=${PYTHONPATH}"
# Use uvicorn module (reload useful during development)
echo "Launching uvicorn at ${DATA_SOURCES_HOST}:${DATA_SOURCES_PORT}"
# Ensure we run from the backend directory so imports like `data_sources`
# resolve relative to the package layout even if the script is invoked
# via an absolute path from elsewhere.
cd "${BACKEND_DIR}"
python -m uvicorn data_sources.main:app --host "${DATA_SOURCES_HOST}" --port "${DATA_SOURCES_PORT}" --reload