Files
smom-dbis-138/scripts/deployment/verify-env.sh
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00

188 lines
5.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Verify .env file configuration
# Checks that all required environment variables are set
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../lib/init.sh"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
ENV_FILE="${PROJECT_ROOT}/.env"
# Load .env file if it exists
if [ -f "$ENV_FILE" ]; then
set -a
source "$ENV_FILE"
set +a
fi
log() {
log_success "[✓] $1"
}
error() {
log_error "[✗] $1"
}
warn() {
log_warn "[!] $1"
}
info() {
log_info "[i] $1"
}
log_info "=== Environment Variables Verification ==="
echo
# Check if .env file exists
if [ ! -f "$ENV_FILE" ]; then
error ".env file not found at: $ENV_FILE"
exit 1
fi
log ".env file found: $ENV_FILE"
echo
# Azure Configuration
log_info "Azure Configuration:"
if [ -n "${AZURE_SUBSCRIPTION_ID:-}" ]; then
log "AZURE_SUBSCRIPTION_ID is set: ${AZURE_SUBSCRIPTION_ID:0:8}..."
else
error "AZURE_SUBSCRIPTION_ID is not set"
fi
if [ -n "${AZURE_TENANT_ID:-}" ]; then
log "AZURE_TENANT_ID is set: ${AZURE_TENANT_ID:0:8}..."
else
warn "AZURE_TENANT_ID is not set (optional for service principal)"
fi
if [ -n "${AZURE_RESOURCE_GROUP:-}" ]; then
log "AZURE_RESOURCE_GROUP is set: $AZURE_RESOURCE_GROUP"
else
warn "AZURE_RESOURCE_GROUP is not set (will use default: defi-oracle-mainnet-rg)"
fi
if [ -n "${AZURE_LOCATION:-}" ]; then
log "AZURE_LOCATION is set: $AZURE_LOCATION"
else
warn "AZURE_LOCATION is not set (will use default: westeurope)"
fi
echo
# Terraform Backend
log_info "Terraform Backend Configuration:"
if [ -n "${ARM_STORAGE_ACCOUNT_NAME:-}" ]; then
log "ARM_STORAGE_ACCOUNT_NAME is set: $ARM_STORAGE_ACCOUNT_NAME"
else
warn "ARM_STORAGE_ACCOUNT_NAME is not set"
fi
if [ -n "${ARM_RESOURCE_GROUP_NAME:-}" ]; then
log "ARM_RESOURCE_GROUP_NAME is set: $ARM_RESOURCE_GROUP_NAME"
else
warn "ARM_RESOURCE_GROUP_NAME is not set (will use default: tfstate-rg)"
fi
if [ -n "${ARM_CONTAINER_NAME:-}" ]; then
log "ARM_CONTAINER_NAME is set: $ARM_CONTAINER_NAME"
else
warn "ARM_CONTAINER_NAME is not set (will use default: tfstate)"
fi
if [ -n "${ARM_ACCESS_KEY:-}" ]; then
log "ARM_ACCESS_KEY is set: ${ARM_ACCESS_KEY:0:8}..."
else
warn "ARM_ACCESS_KEY is not set"
fi
echo
# Cloudflare Configuration
log_info "Cloudflare Configuration:"
if [ -n "${CLOUDFLARE_ZONE_ID:-}" ]; then
log "CLOUDFLARE_ZONE_ID is set: $CLOUDFLARE_ZONE_ID"
# Test API token if both are set
if [ -n "${CLOUDFLARE_API_TOKEN:-}" ]; then
log "CLOUDFLARE_API_TOKEN is set: ${CLOUDFLARE_API_TOKEN:0:8}..."
# Test the token
info "Testing Cloudflare API token..."
TEST_RESPONSE=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$CLOUDFLARE_ZONE_ID" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" 2>/dev/null || echo "")
if echo "$TEST_RESPONSE" | grep -q '"success":true' 2>/dev/null; then
ZONE_NAME=$(echo "$TEST_RESPONSE" | grep -o '"name":"[^"]*"' | cut -d'"' -f4 || echo "unknown")
log "Cloudflare API token is valid! Zone: $ZONE_NAME"
else
error "Cloudflare API token test failed"
error "Response: $(echo "$TEST_RESPONSE" | head -c 200)"
fi
else
error "CLOUDFLARE_API_TOKEN is not set"
fi
else
error "CLOUDFLARE_ZONE_ID is not set"
fi
echo
# Optional Configuration
log_info "Optional Configuration:"
if [ -n "${AZURE_CLIENT_ID:-}" ]; then
log "AZURE_CLIENT_ID is set (service principal)"
else
info "AZURE_CLIENT_ID not set (using interactive login)"
fi
if [ -n "${RPC_URL:-}" ]; then
log "RPC_URL is set: $RPC_URL"
else
info "RPC_URL not set (will be set after deployment)"
fi
if [ -n "${EXPLORER_URL:-}" ]; then
log "EXPLORER_URL is set: $EXPLORER_URL"
else
info "EXPLORER_URL not set (will be set after deployment)"
fi
if [ -n "${PRIVATE_KEY:-}" ]; then
log "PRIVATE_KEY is set: ${PRIVATE_KEY:0:10}..."
else
info "PRIVATE_KEY not set (needed for contract deployment)"
fi
echo
log_info "=== Verification Complete ==="
# Summary
echo
MISSING_CRITICAL=0
MISSING_OPTIONAL=0
[ -z "${AZURE_SUBSCRIPTION_ID:-}" ] && MISSING_CRITICAL=$((MISSING_CRITICAL + 1))
[ -z "${CLOUDFLARE_ZONE_ID:-}" ] && MISSING_CRITICAL=$((MISSING_CRITICAL + 1))
[ -z "${CLOUDFLARE_API_TOKEN:-}" ] && MISSING_CRITICAL=$((MISSING_CRITICAL + 1))
[ -z "${ARM_STORAGE_ACCOUNT_NAME:-}" ] && MISSING_OPTIONAL=$((MISSING_OPTIONAL + 1))
[ -z "${ARM_ACCESS_KEY:-}" ] && MISSING_OPTIONAL=$((MISSING_OPTIONAL + 1))
if [ $MISSING_CRITICAL -eq 0 ]; then
log "All critical variables are set!"
if [ $MISSING_OPTIONAL -gt 0 ]; then
warn "$MISSING_OPTIONAL optional variable(s) missing (Terraform backend)"
info "Run: ./scripts/deployment/populate-env.sh to set up Terraform backend"
fi
else
error "$MISSING_CRITICAL critical variable(s) missing"
info "Run: ./scripts/deployment/populate-env.sh to complete setup"
exit 1
fi