API: Phoenix railing proxy, API key auth for /api/v1/*, schema export, docs, migrations, tests
- Phoenix API Railing: proxy to PHOENIX_RAILING_URL, tenant me routes - Tenant-auth: X-API-Key support for /api/v1/* (api_keys table) - Migration 026: api_keys table; 025 sovereign stack marketplace - GET /graphql/schema, GET /graphql-playground, api/docs OpenAPI - Integration tests: phoenix-railing.test.ts - docs/api/API_VERSIONING: /api/v1/ railing alignment - docs/phoenix/PORTAL_RAILING_WIRING Made-with: Cursor
This commit is contained in:
119
api/scripts/setup-with-password.sh
Executable file
119
api/scripts/setup-with-password.sh
Executable file
@@ -0,0 +1,119 @@
|
||||
#!/bin/bash
|
||||
# Interactive setup script that prompts for database password
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
API_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
|
||||
cd "$API_DIR"
|
||||
|
||||
echo "=========================================="
|
||||
echo "Sovereign Stack Marketplace Setup"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Check if .env exists, if not create from template
|
||||
if [ ! -f .env ]; then
|
||||
echo "Creating .env file..."
|
||||
if [ -f .env.example ]; then
|
||||
cp .env.example .env
|
||||
else
|
||||
cat > .env << 'ENVEOF'
|
||||
DB_HOST=localhost
|
||||
DB_PORT=5432
|
||||
DB_NAME=sankofa
|
||||
DB_USER=postgres
|
||||
DB_PASSWORD=
|
||||
NODE_ENV=development
|
||||
PORT=4000
|
||||
ENVEOF
|
||||
fi
|
||||
echo "✅ .env file created"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Check if DB_PASSWORD is set and not placeholder
|
||||
CURRENT_PASSWORD=$(grep "^DB_PASSWORD=" .env | cut -d'=' -f2- | tr -d '"' | tr -d "'")
|
||||
|
||||
if [ -z "$CURRENT_PASSWORD" ] || [ "$CURRENT_PASSWORD" = "your_secure_password_here" ] || [ "$CURRENT_PASSWORD" = "YOUR_ACTUAL_DATABASE_PASSWORD_HERE" ]; then
|
||||
echo "⚠ Database password not set or using placeholder."
|
||||
echo ""
|
||||
echo "Please enter your PostgreSQL database password:"
|
||||
echo "(For development: minimum 8 characters)"
|
||||
read -s DB_PASS
|
||||
echo ""
|
||||
|
||||
if [ -z "$DB_PASS" ]; then
|
||||
echo "❌ Password cannot be empty"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Update .env with actual password
|
||||
if grep -q "^DB_PASSWORD=" .env; then
|
||||
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" .env
|
||||
else
|
||||
echo "DB_PASSWORD=$DB_PASS" >> .env
|
||||
fi
|
||||
|
||||
echo "✅ Password updated in .env"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Ensure NODE_ENV is set to development
|
||||
if ! grep -q "^NODE_ENV=" .env; then
|
||||
echo "NODE_ENV=development" >> .env
|
||||
elif ! grep -q "^NODE_ENV=development" .env; then
|
||||
sed -i 's/^NODE_ENV=.*/NODE_ENV=development/' .env
|
||||
fi
|
||||
|
||||
# Step 1: Run migrations
|
||||
echo "Step 1: Running database migrations..."
|
||||
echo "----------------------------------------"
|
||||
if pnpm db:migrate:up; then
|
||||
echo "✅ Migrations completed"
|
||||
else
|
||||
echo "❌ Migration failed."
|
||||
echo ""
|
||||
echo "Common issues:"
|
||||
echo " 1. Database password is incorrect"
|
||||
echo " 2. PostgreSQL is not running"
|
||||
echo " 3. Database 'sankofa' does not exist"
|
||||
echo ""
|
||||
echo "To fix:"
|
||||
echo " 1. Verify PostgreSQL is running: sudo systemctl status postgresql"
|
||||
echo " 2. Create database if needed: createdb sankofa"
|
||||
echo " 3. Update .env with correct password"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Step 2: Seed Sovereign Stack services
|
||||
echo "Step 2: Seeding Sovereign Stack services..."
|
||||
echo "----------------------------------------"
|
||||
if pnpm db:seed:sovereign-stack; then
|
||||
echo "✅ Services seeded"
|
||||
else
|
||||
echo "❌ Seeding failed. Please check the error above."
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Step 3: Verify setup
|
||||
echo "Step 3: Verifying setup..."
|
||||
echo "----------------------------------------"
|
||||
if pnpm verify:sovereign-stack; then
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "✅ Sovereign Stack setup complete!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo "1. Access the marketplace at: https://portal.sankofa.nexus/marketplace"
|
||||
echo "2. Browse Phoenix Cloud Services offerings"
|
||||
echo "3. Subscribe to services as needed"
|
||||
echo ""
|
||||
else
|
||||
echo "⚠ Verification found issues. Please review the output above."
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user