diff --git a/.cursor/commands/migration-production.md b/.cursor/commands/migration-production.md index 16780c3e..1597f232 100644 --- a/.cursor/commands/migration-production.md +++ b/.cursor/commands/migration-production.md @@ -2,15 +2,15 @@ ## When to Use -Run database migrations for ProductionLocal environment, apply pending EF Core migrations, create backups (MANDATORY), and verify connectivity. +Run database migrations for ProductionRemote environment, apply pending EF Core migrations, create backups (MANDATORY), and verify connectivity. ⚠️ **WARNING**: Production environment - exercise extreme caution. ## Prerequisites - .NET SDK installed (`dotnet --version`) -- PostgreSQL accessible for ProductionLocal -- Connection string in `appsettings.ProductionLocal.json` +- PostgreSQL accessible for ProductionRemote +- Connection string in `appsettings.ProductionRemote.json` - `scripts/safe-migrate.sh` available and executable - ⚠️ Production access permissions required @@ -26,7 +26,7 @@ Check: `test -f scripts/safe-migrate.sh` ### Step 2: Verify Environment Configuration -Check: `test -f src/Managing.Api/appsettings.ProductionLocal.json` +Check: `test -f src/Managing.Api/appsettings.ProductionRemote.json` **If missing:** Check `appsettings.Production.json`, else **STOP** @@ -34,7 +34,7 @@ Check: `test -f src/Managing.Api/appsettings.ProductionLocal.json` ⚠️ **CRITICAL**: Verify authorization, reviewed migrations, rollback plan, backup will be created. -**Ask user:** "⚠️ You are about to run migrations on ProductionLocal. Are you sure? (yes/no)" +**Ask user:** "⚠️ You are about to run migrations on ProductionRemote. Are you sure? (yes/no)" **If confirmed:** Continue @@ -42,7 +42,7 @@ Check: `test -f src/Managing.Api/appsettings.ProductionLocal.json` ### Step 4: Run Migration Script -Run: `./scripts/safe-migrate.sh ProductionLocal` +Run: `./scripts/safe-migrate.sh ProductionRemote` **Script performs:** Build → Check connectivity → Create DB if needed → Prompt backup (always choose 'y') → Check pending changes → Generate script → Show for review → Wait confirmation → Apply → Verify @@ -56,7 +56,7 @@ Run: `./scripts/safe-migrate.sh ProductionLocal` **Not executable:** `chmod +x scripts/safe-migrate.sh`, retry -**Database connection fails:** Verify PostgreSQL running, check connection string in `appsettings.ProductionLocal.json`, verify network/firewall/credentials, ⚠️ **WARN** production connectivity issues require immediate attention +**Database connection fails:** Verify PostgreSQL running, check connection string in `appsettings.ProductionRemote.json`, verify network/firewall/credentials, ⚠️ **WARN** production connectivity issues require immediate attention **Build fails:** Show errors (C# compilation, missing dependencies, config errors), try auto-fix (compilation errors, imports, config), if fixed re-run else **STOP** with ⚠️ **WARN** never deploy broken code @@ -73,7 +73,7 @@ Run: `./scripts/safe-migrate.sh ProductionLocal` 2. Check executable → ✅ 3. Verify config → ✅ 4. Safety check → User confirms -5. Run: `./scripts/safe-migrate.sh ProductionLocal` +5. Run: `./scripts/safe-migrate.sh ProductionRemote` 6. Script: Build → Connect → Backup → Generate → Review → Confirm → Apply → Verify → ✅ 7. Show backup/log locations, remind to verify functionality @@ -88,8 +88,8 @@ Run: `./scripts/safe-migrate.sh ProductionLocal` - ⚠️ ⚠️ ⚠️ **PRODUCTION** - Extreme caution required - ✅ Backup MANDATORY, review script before applying, verify functionality after - ✅ Idempotent migrations - safe to run multiple times -- ⚠️ Environment: `ProductionLocal`, Config: `appsettings.ProductionLocal.json` -- ⚠️ Backups: `scripts/backups/ProductionLocal/`, Logs: `scripts/logs/` +- ⚠️ Environment: `ProductionRemote`, Config: `appsettings.ProductionRemote.json` +- ⚠️ Backups: `scripts/backups/ProductionRemote/`, Logs: `scripts/logs/` - 📦 Keeps last 5 backups automatically - 🚨 Have rollback plan, test in non-prod first, monitor after migration diff --git a/.cursor/commands/migration-sandbox.md b/.cursor/commands/migration-sandbox.md index 5149bf5c..bc18c435 100644 --- a/.cursor/commands/migration-sandbox.md +++ b/.cursor/commands/migration-sandbox.md @@ -2,13 +2,13 @@ ## When to Use -Run database migrations for SandboxLocal environment, apply pending EF Core migrations, create backups, and verify connectivity. +Run database migrations for SandboxRemote environment, apply pending EF Core migrations, create backups, and verify connectivity. ## Prerequisites - .NET SDK installed (`dotnet --version`) -- PostgreSQL accessible for SandboxLocal -- Connection string in `appsettings.SandboxLocal.json` +- PostgreSQL accessible for SandboxRemote +- Connection string in `appsettings.SandboxRemote.json` - `scripts/safe-migrate.sh` available and executable ## Execution Steps @@ -23,13 +23,13 @@ Check: `test -f scripts/safe-migrate.sh` ### Step 2: Verify Environment Configuration -Check: `test -f src/Managing.Api/appsettings.SandboxLocal.json` +Check: `test -f src/Managing.Api/appsettings.SandboxRemote.json` **If missing:** Check `appsettings.Sandbox.json`, else **STOP** ### Step 3: Run Migration Script -Run: `./scripts/safe-migrate.sh SandboxLocal` +Run: `./scripts/safe-migrate.sh SandboxRemote` **Script performs:** Build projects → Check connectivity → Create DB if needed → Prompt backup → Check pending changes → Generate script → Apply migrations → Verify status @@ -43,7 +43,7 @@ Run: `./scripts/safe-migrate.sh SandboxLocal` **Not executable:** `chmod +x scripts/safe-migrate.sh`, retry -**Database connection fails:** Verify PostgreSQL running, check connection string in `appsettings.SandboxLocal.json`, verify network/firewall/credentials +**Database connection fails:** Verify PostgreSQL running, check connection string in `appsettings.SandboxRemote.json`, verify network/firewall/credentials **Build fails:** Show errors (C# compilation, missing dependencies, config errors), try auto-fix (compilation errors, imports, config), if fixed re-run else **STOP** @@ -57,7 +57,7 @@ Run: `./scripts/safe-migrate.sh SandboxLocal` 1. Verify script → ✅ 2. Check executable → ✅ 3. Verify config → ✅ -4. Run: `./scripts/safe-migrate.sh SandboxLocal` +4. Run: `./scripts/safe-migrate.sh SandboxRemote` 5. Script: Build → Connect → Backup → Generate → Apply → Verify → ✅ 6. Show backup/log locations @@ -70,7 +70,7 @@ Run: `./scripts/safe-migrate.sh SandboxLocal` - ✅ Backup recommended, script prompts for it - ✅ Review migration script before applying - ✅ Idempotent migrations - safe to run multiple times -- ⚠️ Environment: `SandboxLocal`, Config: `appsettings.SandboxLocal.json` -- ⚠️ Backups: `scripts/backups/SandboxLocal/`, Logs: `scripts/logs/` +- ⚠️ Environment: `SandboxRemote`, Config: `appsettings.SandboxRemote.json` +- ⚠️ Backups: `scripts/backups/SandboxRemote/`, Logs: `scripts/logs/` - 📦 Keeps last 5 backups automatically diff --git a/scripts/influxdb/README.md b/scripts/influxdb/README.md index f2423188..4073ba87 100644 --- a/scripts/influxdb/README.md +++ b/scripts/influxdb/README.md @@ -30,7 +30,7 @@ Exports OHLCV candle/price data from the `prices-bucket`. ``` **Interactive Prompts:** -- Select environment (SandboxLocal or ProductionLocal) +- Select environment (SandboxRemote or ProductionRemote) - Select time range (7 days, 30 days, 90 days, 1 year, all data, or custom) **Output:** @@ -78,8 +78,8 @@ Imports prices-bucket CSV export data into any InfluxDB environment. ## Configuration The scripts automatically read InfluxDB connection settings from: -- `src/Managing.Api/appsettings.SandboxLocal.json` -- `src/Managing.Api/appsettings.ProductionLocal.json` +- `src/Managing.Api/appsettings.SandboxRemote.json` +- `src/Managing.Api/appsettings.ProductionRemote.json` **Required settings in appsettings files:** ```json @@ -96,11 +96,11 @@ The scripts automatically read InfluxDB connection settings from: ``` exports/ -├── SandboxLocal/ +├── SandboxRemote/ │ └── 20241028_143022/ │ ├── prices-bucket_data.csv │ └── export-metadata.txt -└── ProductionLocal/ +└── ProductionRemote/ └── 20241028_160000/ ├── prices-bucket_data.csv └── export-metadata.txt @@ -132,7 +132,7 @@ exports/ ```bash cd scripts/influxdb ./export-prices-bucket.sh -# Select: 1 (SandboxLocal) +# Select: 1 (SandboxRemote) # Select: 5 (All data) ``` @@ -140,7 +140,7 @@ cd scripts/influxdb ```bash cd scripts/influxdb ./export-prices-bucket.sh -# Select: 1 (SandboxLocal) +# Select: 1 (SandboxRemote) # Select: 3 (Last 90 days) ``` @@ -150,14 +150,14 @@ cd scripts/influxdb # Step 1: Export from sandbox ./export-prices-bucket.sh -# Select: 1 (SandboxLocal) +# Select: 1 (SandboxRemote) # Select: 5 (All data) # Step 2: Import to production ./import-csv-data.sh -# Select source: 1 (SandboxLocal) +# Select source: 1 (SandboxRemote) # Select: Latest export timestamp -# Select target: 2 (ProductionLocal) +# Select target: 2 (ProductionRemote) # Confirm: yes ``` @@ -167,7 +167,7 @@ cd scripts/influxdb # Export current production data ./export-prices-bucket.sh -# Select: 2 (ProductionLocal) +# Select: 2 (ProductionRemote) # Select: 5 (All data) # If something goes wrong, restore it: @@ -341,5 +341,5 @@ For issues or questions, refer to: All scripts are located in: `/Users/oda/Desktop/Projects/managing-apps/scripts/influxdb/` Configuration files: -- Sandbox: `/Users/oda/Desktop/Projects/managing-apps/src/Managing.Api/appsettings.SandboxLocal.json` -- Production: `/Users/oda/Desktop/Projects/managing-apps/src/Managing.Api/appsettings.ProductionLocal.json` +- Sandbox: `/Users/oda/Desktop/Projects/managing-apps/src/Managing.Api/appsettings.SandboxRemote.json` +- Production: `/Users/oda/Desktop/Projects/managing-apps/src/Managing.Api/appsettings.ProductionRemote.json` diff --git a/scripts/influxdb/export-prices-bucket.sh b/scripts/influxdb/export-prices-bucket.sh index f071655d..63a5a1f7 100755 --- a/scripts/influxdb/export-prices-bucket.sh +++ b/scripts/influxdb/export-prices-bucket.sh @@ -55,19 +55,19 @@ echo " InfluxDB Prices Data Export" echo "======================================" echo "" echo "Select environment:" -echo "1) SandboxLocal" -echo "2) ProductionLocal" +echo "1) SandboxRemote" +echo "2) ProductionRemote" echo "" read -p "Enter your choice (1 or 2): " ENV_CHOICE case $ENV_CHOICE in 1) - ENVIRONMENT="SandboxLocal" - APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.SandboxLocal.json" + ENVIRONMENT="SandboxRemote" + APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.SandboxRemote.json" ;; 2) - ENVIRONMENT="ProductionLocal" - APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.ProductionLocal.json" + ENVIRONMENT="ProductionRemote" + APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.ProductionRemote.json" ;; *) error "Invalid choice. Please run the script again and select 1 or 2." diff --git a/scripts/influxdb/import-csv-data.sh b/scripts/influxdb/import-csv-data.sh index c404ee19..e12aa6c6 100755 --- a/scripts/influxdb/import-csv-data.sh +++ b/scripts/influxdb/import-csv-data.sh @@ -131,19 +131,19 @@ info "CSV file: $(basename "$CSV_FILE") ($CSV_SIZE)" # Select target environment for import echo "" echo "Select TARGET environment for import:" -echo "1) SandboxLocal" -echo "2) ProductionLocal" +echo "1) SandboxRemote" +echo "2) ProductionRemote" echo "" read -p "Enter your choice (1 or 2): " TARGET_ENV_CHOICE case $TARGET_ENV_CHOICE in 1) - TARGET_ENVIRONMENT="SandboxLocal" - APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.SandboxLocal.json" + TARGET_ENVIRONMENT="SandboxRemote" + APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.SandboxRemote.json" ;; 2) - TARGET_ENVIRONMENT="ProductionLocal" - APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.ProductionLocal.json" + TARGET_ENVIRONMENT="ProductionRemote" + APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.ProductionRemote.json" ;; *) error "Invalid choice. Please run the script again and select 1 or 2." diff --git a/scripts/privy/import-privy-users.sh b/scripts/privy/import-privy-users.sh index ee98d0fa..e064a14f 100755 --- a/scripts/privy/import-privy-users.sh +++ b/scripts/privy/import-privy-users.sh @@ -1,7 +1,7 @@ #!/bin/bash # Script to import privy-users.csv into WhitelistAccounts table -# Uses connection string from appsettings.ProductionLocal.json +# Uses connection string from appsettings.ProductionRemote.json set -e # Exit on error @@ -9,7 +9,7 @@ set -e # Exit on error SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" CSV_FILE="$SCRIPT_DIR/privy-users.csv" -SETTINGS_FILE="$PROJECT_ROOT/src/Managing.Api/appsettings.ProductionLocal.json" +SETTINGS_FILE="$PROJECT_ROOT/src/Managing.Api/appsettings.ProductionRemote.json" # Check if CSV file exists if [ ! -f "$CSV_FILE" ]; then diff --git a/scripts/safe-migrate.sh b/scripts/safe-migrate.sh index 6dcf8d5e..076445dd 100755 --- a/scripts/safe-migrate.sh +++ b/scripts/safe-migrate.sh @@ -82,11 +82,11 @@ log "🚀 Starting safe migration for environment: $ENVIRONMENT" # Validate environment case $ENVIRONMENT in - "Development"|"SandboxLocal"|"ProductionLocal"|"Oda") + "Development"|"SandboxRemote"|"ProductionRemote"|"Oda") log "✅ Environment '$ENVIRONMENT' is valid" ;; *) - error "❌ Invalid environment '$ENVIRONMENT'. Use: Development, SandboxLocal, ProductionLocal, or Oda" + error "❌ Invalid environment '$ENVIRONMENT'. Use: Development, SandboxRemote, ProductionRemote, or Oda" ;; esac diff --git a/src/Managing.Api/README-ORLEANS-CONFIGURATION.md b/src/Managing.Api/README-ORLEANS-CONFIGURATION.md index 3b545ed6..490b7bfc 100644 --- a/src/Managing.Api/README-ORLEANS-CONFIGURATION.md +++ b/src/Managing.Api/README-ORLEANS-CONFIGURATION.md @@ -47,7 +47,7 @@ The following configuration files have been updated with Orleans grain control s - `appsettings.Oda.json` - Oda environment (RunOrleansGrains: true) - `appsettings.Oda-docker.json` - Oda Docker environment (RunOrleansGrains: true) - `appsettings.Sandbox.json` - Sandbox environment (RunOrleansGrains: true) -- `appsettings.SandboxLocal.json` - Local Sandbox environment (RunOrleansGrains: true) +- `appsettings.SandboxRemote.json` - Local Sandbox environment (RunOrleansGrains: true) - `appsettings.Production.json` - Production environment (RunOrleansGrains: true) ## Use Cases diff --git a/src/Managing.Api/appsettings.ProductionLocal.json b/src/Managing.Api/appsettings.ProductionRemote.json similarity index 100% rename from src/Managing.Api/appsettings.ProductionLocal.json rename to src/Managing.Api/appsettings.ProductionRemote.json diff --git a/src/Managing.Api/appsettings.SandboxLocal.json b/src/Managing.Api/appsettings.SandboxRemote.json similarity index 100% rename from src/Managing.Api/appsettings.SandboxLocal.json rename to src/Managing.Api/appsettings.SandboxRemote.json diff --git a/src/Managing.Workers/appsettings.ProductionLocal.json b/src/Managing.Workers/appsettings.ProductionRemote.json similarity index 100% rename from src/Managing.Workers/appsettings.ProductionLocal.json rename to src/Managing.Workers/appsettings.ProductionRemote.json diff --git a/src/Managing.Workers/appsettings.SandboxLocal.json b/src/Managing.Workers/appsettings.SandboxRemote.json similarity index 100% rename from src/Managing.Workers/appsettings.SandboxLocal.json rename to src/Managing.Workers/appsettings.SandboxRemote.json