#!/usr/bin/env bash
# Document Access Service · Batch 8 · local/dev auth
# A-owned · session_a
#
# Bootstrap script: creates .venv, installs requirements, starts the
# FastAPI service on port 8090.
#
# Requires: python3 (>= 3.11)
#
# NOT for production. No TLS · no password hashing · file-backed users.

set -euo pipefail

HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$HERE"

PORT="${DAS_PORT:-8090}"
HOST="${DAS_HOST:-127.0.0.1}"
VENV="${DAS_VENV:-.venv}"

if [ ! -d "$VENV" ]; then
  echo "[das] creating venv at $VENV"
  python3 -m venv "$VENV"
fi

# shellcheck disable=SC1091
source "$VENV/bin/activate"

echo "[das] installing requirements"
pip install --quiet --disable-pip-version-check -r requirements.txt

echo "[das] starting on http://$HOST:$PORT"
echo "[das] endpoints:"
echo "  GET  http://$HOST:$PORT/api/access/health"
echo "  POST http://$HOST:$PORT/api/access/login           · body {email}"
echo "  POST http://$HOST:$PORT/api/access/logout"
echo "  GET  http://$HOST:$PORT/api/access/me"
echo "  GET  http://$HOST:$PORT/api/access/resolve?doc_id=..."
echo "  GET  http://$HOST:$PORT/api/access/groups"
echo "  GET  http://$HOST:$PORT/api/access/documents[?group_id=...]"
echo "  GET  http://$HOST:$PORT/api/access/debug/user-store"
echo
echo "[das] HONEST: local/dev only · no password · sessions in-process · not production"
echo

exec python3 -m uvicorn app:app --host "$HOST" --port "$PORT" --log-level info
