#!/usr/bin/env bash # One-off helper used during development to create the Great Bear collections # on a running PocketBase instance via the admin API. # Usage: PB_URL=http://127.0.0.1:8099 PB_EMAIL=... PB_PASSWORD=... ./scripts/create-collections.sh set -euo pipefail PB_URL="${PB_URL:-http://127.0.0.1:8099}" PB_EMAIL="${PB_EMAIL:?PB_EMAIL required}" PB_PASSWORD="${PB_PASSWORD:?PB_PASSWORD required}" TOKEN=$(curl -sS -X POST "$PB_URL/api/collections/_superusers/auth-with-password" \ -H "Content-Type: application/json" \ -d "{\"identity\":\"$PB_EMAIL\",\"password\":\"$PB_PASSWORD\"}" \ | python3 -c "import sys,json;print(json.load(sys.stdin)['token'])") echo "authenticated: ${TOKEN:0:12}..." WORKDIR=$(mktemp -d) trap 'rm -rf "$WORKDIR"' EXIT cd "$WORKDIR" content_rules='"listRule":"","viewRule":"","createRule":null,"updateRule":null,"deleteRule":null' # Reservations: visitors may create (forms) but only admins may read/update. reservation_rules='"listRule":null,"viewRule":null,"createRule":"","updateRule":null,"deleteRule":null' mk() { NAME=$1; FIELDS=$2; IDX=$3; RULES=${4:-$content_rules}; cat > "$NAME.json" < HTTP $CODE" if [ "$CODE" != "200" ]; then cat "resp_$NAME.json"; echo; fi done