Files
the_order/scripts/deploy/verify-complete-setup.sh
defiQUG 92cc41d26d Add Legal Office seal and complete Azure CDN deployment
- Add Legal Office of the Master seal (SVG design with Maltese Cross, scales of justice, legal scroll)
- Create legal-office-manifest-template.json for Legal Office credentials
- Update SEAL_MAPPING.md and DESIGN_GUIDE.md with Legal Office seal documentation
- Complete Azure CDN infrastructure deployment:
  - Resource group, storage account, and container created
  - 17 PNG seal files uploaded to Azure Blob Storage
  - All manifest templates updated with Azure URLs
  - Configuration files generated (azure-cdn-config.env)
- Add comprehensive Azure CDN setup scripts and documentation
- Fix manifest URL generation to prevent double slashes
- Verify all seals accessible via HTTPS
2025-11-12 22:03:42 -08:00

151 lines
4.6 KiB
Bash
Executable File

#!/bin/bash
# Verify Complete Entra VerifiedID Setup
# Comprehensive validation of all setup steps
set -euo pipefail
GREEN='\033[0;32m'
RED='\033[0;31m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[VERIFY]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_error() { echo -e "${RED}[✗]${NC} $1"; }
log_warning() { echo -e "${YELLOW}[!]${NC} $1"; }
cd "$(dirname "$0")/../.."
CHECKS_PASSED=0
CHECKS_FAILED=0
CHECKS_WARNING=0
check() {
local name=$1
local command=$2
log_info "Checking: ${name}"
if eval "${command}" > /dev/null 2>&1; then
log_success "${name}"
((CHECKS_PASSED++))
return 0
else
log_error "${name}"
((CHECKS_FAILED++))
return 1
fi
}
check_warning() {
local name=$1
local command=$2
log_info "Checking: ${name}"
if eval "${command}" > /dev/null 2>&1; then
log_success "${name}"
((CHECKS_PASSED++))
return 0
else
log_warning "${name} (optional)"
((CHECKS_WARNING++))
return 1
fi
}
echo ""
log_info "=== Entra VerifiedID Complete Setup Verification ==="
echo ""
# 1. Code Files
log_info "1. Code Implementation"
check "Entra VerifiedID client exists" "[ -f packages/auth/src/entra-verifiedid.ts ]"
check "Enhanced client exists" "[ -f packages/auth/src/entra-verifiedid-enhanced.ts ]"
check "Integration exists" "[ -f services/identity/src/entra-integration.ts ]"
check "Webhook handler exists" "[ -f services/identity/src/entra-webhooks.ts ]"
check "Metrics exist" "[ -f packages/monitoring/src/entra-metrics.ts ]"
# 2. Tests
log_info "2. Test Suite"
check "Unit tests exist" "[ -f packages/auth/src/entra-verifiedid.test.ts ]"
check "Integration tests exist" "[ -f packages/auth/src/entra-verifiedid.integration.test.ts ]"
# 3. Scripts
log_info "3. Automation Scripts"
check "Setup script exists" "[ -f scripts/deploy/setup-entra-automated.sh ]"
check "App creation script exists" "[ -f scripts/deploy/create-entra-app.sh ]"
check "Deployment scripts exist" "[ -f scripts/deploy/deploy-staging.sh ]"
check "Test scripts exist" "[ -f scripts/test/test-all-entra-features.sh ]"
check "Validation script exists" "[ -f scripts/validation/validate-entra-config.sh ]"
# 4. Configuration
log_info "4. Configuration Files"
check "Kubernetes secrets template exists" "[ -f infra/k8s/identity-service-entra-secrets.yaml ]"
check "Kubernetes deployment exists" "[ -f infra/k8s/identity-service-deployment-entra.yaml ]"
check "Prometheus config exists" "[ -f infra/monitoring/prometheus-entra-config.yml ]"
check "Grafana dashboard exists" "[ -f infra/monitoring/grafana-entra-dashboard.json ]"
# 5. Documentation
log_info "5. Documentation"
check "Deployment checklist exists" "[ -f docs/deployment/ENTRA_VERIFIEDID_DEPLOYMENT_CHECKLIST.md ]"
check "Runbook exists" "[ -f docs/operations/ENTRA_VERIFIEDID_RUNBOOK.md ]"
check "Training materials exist" "[ -f docs/training/ENTRA_VERIFIEDID_TRAINING.md ]"
# 6. Environment Variables (warnings if not set)
log_info "6. Environment Configuration"
if [ -f ".env" ]; then
source .env 2>/dev/null || true
fi
check_warning "ENTRA_TENANT_ID is set" "[ -n \"\${ENTRA_TENANT_ID:-}\" ]"
check_warning "ENTRA_CLIENT_ID is set" "[ -n \"\${ENTRA_CLIENT_ID:-}\" ]"
check_warning "ENTRA_CLIENT_SECRET is set" "[ -n \"\${ENTRA_CLIENT_SECRET:-}\" ]"
check_warning "ENTRA_CREDENTIAL_MANIFEST_ID is set" "[ -n \"\${ENTRA_CREDENTIAL_MANIFEST_ID:-}\" ]"
# 7. Build Status
log_info "7. Build Status"
if pnpm build 2>&1 | grep -q "error TS"; then
log_error "TypeScript build has errors"
((CHECKS_FAILED++))
else
log_success "TypeScript build passes"
((CHECKS_PASSED++))
fi
# 8. Test Execution
log_info "8. Test Execution"
if pnpm --filter @the-order/auth test entra-verifiedid.test.ts --run 2>&1 | grep -q "FAIL"; then
log_error "Unit tests have failures"
((CHECKS_FAILED++))
else
log_success "Unit tests pass"
((CHECKS_PASSED++))
fi
# Summary
echo ""
log_info "=== Verification Summary ==="
log_success "Passed: ${CHECKS_PASSED}"
if [ ${CHECKS_FAILED} -gt 0 ]; then
log_error "Failed: ${CHECKS_FAILED}"
fi
if [ ${CHECKS_WARNING} -gt 0 ]; then
log_warning "Warnings: ${CHECKS_WARNING}"
fi
TOTAL=$((CHECKS_PASSED + CHECKS_FAILED + CHECKS_WARNING))
PERCENTAGE=$((CHECKS_PASSED * 100 / TOTAL))
echo ""
if [ ${CHECKS_FAILED} -eq 0 ]; then
log_success "All critical checks passed! (${PERCENTAGE}%)"
if [ ${CHECKS_WARNING} -gt 0 ]; then
log_warning "Some optional checks need attention"
fi
exit 0
else
log_error "Some critical checks failed (${PERCENTAGE}%)"
exit 1
fi