Files
foxhunt/scripts/fix_api_gateway_mfa.sh
jgrusewski 8d89fe80ff chore: Second cleanup wave - organize root directory
- Archive: 85 agent .txt files → docs/archive/agents/legacy_txt/
- Scripts: Move 110 shell scripts → scripts/ (keep deploy.sh in root)
- Models: Move 18 .safetensors → ml/models/checkpoints/training_artifacts/
- Delete: 34 directories (~33GB freed) - target/, coverage_*, test artifacts
- Build: Clean 14 build artifacts (.rlib, .o, .pid, binaries)
- Tests: Move 14 .rs files → tests/standalone/
- SQL: Move 5 files → sql/ (keep init-db*.sql for Docker)
- Wave 153: Archive to docs/archive/historical/wave153/
- Docs: Archive 9 markdown files to wave_d/reports/ and historical/

Total impact: ~34GB freed (both waves), root directory cleaned from 583 to ~40 essential files
Directory count reduced from 65 to 31 (52% reduction)
All historical data preserved in organized archive structure
2025-10-30 01:26:02 +01:00

116 lines
3.7 KiB
Bash

#!/bin/bash
# Wave 112 Agent 28: Fix API Gateway MFA Compilation Errors
# 17 type conversion errors blocking coverage measurement
set -e
echo "=== Wave 112 Agent 28: Fixing API Gateway MFA Compilation Errors ==="
# Fix 1: totp.rs - SecretString boxing (2 fixes)
echo "Fix 1: totp.rs - SecretString boxing..."
sed -i 's/SecretString::new(String::new())/SecretString::new(String::new().into())/' \
services/api_gateway/src/auth/mfa/totp.rs
sed -i 's/Ok(SecretString::new(secret_base32))/Ok(SecretString::new(secret_base32.into()))/' \
services/api_gateway/src/auth/mfa/totp.rs
# Fix 2: mod.rs - String conversion
echo "Fix 2: mod.rs - String conversion..."
sed -i 's/manual_entry_key: secret\.expose_secret()\.clone()/manual_entry_key: secret.expose_secret().to_string()/' \
services/api_gateway/src/auth/mfa/mod.rs
# Fix 3: mod.rs - NaiveDateTime to DateTime conversions
echo "Fix 3: mod.rs - DateTime conversions..."
# Line 199: expires_at binding
sed -i '199s/expires_at$/expires_at.naive_utc()/' \
services/api_gateway/src/auth/mfa/mod.rs
# Line 245: expires_at comparison
sed -i '245s/if session\.expires_at < Utc::now()/if session.expires_at.and_utc() < Utc::now()/' \
services/api_gateway/src/auth/mfa/mod.rs
# Line 291: now binding
sed -i '291s/now$/now.naive_utc()/' \
services/api_gateway/src/auth/mfa/mod.rs
# Line 429: expires_at binding in INSERT
sed -i '429s/expires_at$/expires_at.naive_utc()/' \
services/api_gateway/src/auth/mfa/mod.rs
# Fix 4: mod.rs - IpAddr to String conversion
echo "Fix 4: mod.rs - IpAddr to String..."
sed -i '397s/\.bind(ip)/.bind(ip.map(|addr| addr.to_string()))/' \
services/api_gateway/src/auth/mfa/mod.rs
# Fix 5: mod.rs - earliest_expiry type conversion (line 505)
echo "Fix 5: mod.rs - earliest_expiry conversion..."
sed -i '505s/earliest_expiry: result\.earliest_expiry,/earliest_expiry: result.earliest_expiry.map(|dt| dt.and_utc()),/' \
services/api_gateway/src/auth/mfa/mod.rs
# Fix 6: mod.rs - SQLx query result conversion (line 133)
echo "Fix 6: mod.rs - SQLx query conversion..."
# This requires manual editing - add .map() after query
cat > /tmp/mfa_mod_fix.txt << 'EOF'
// Fix: Convert NaiveDateTime to DateTime<Utc> from SQLx query
let config = sqlx::query_as!(
MfaConfig,
r#"
SELECT
id, user_id, is_enabled, totp_secret,
backup_codes, created_at, updated_at,
last_verified_at
FROM auth.mfa_config
WHERE user_id = $1
"#,
user_id
)
.fetch_optional(pool)
.await?
.map(|c| MfaConfig {
last_verified_at: c.last_verified_at.map(|dt| dt.and_utc()),
created_at: c.created_at.and_utc(),
updated_at: c.updated_at.and_utc(),
..c
});
EOF
# Fix 7: backup_codes.rs - SQLx query conversion (line 188)
echo "Fix 7: backup_codes.rs - SQLx query conversion..."
cat > /tmp/backup_codes_fix.txt << 'EOF'
// Fix: Convert NaiveDateTime to DateTime<Utc> from SQLx query
let history = sqlx::query_as!(
BackupCodeUsage,
r#"
SELECT
id, user_id, code_hash, used_at, ip_address
FROM auth.mfa_backup_code_usage
WHERE user_id = $1
ORDER BY used_at DESC
"#,
user_id
)
.fetch_all(pool)
.await?
.into_iter()
.map(|r| BackupCodeUsage {
used_at: r.used_at.map(|dt| dt.and_utc()),
..r
})
.collect();
EOF
echo ""
echo "=== Simple sed fixes applied (10/17) ==="
echo "Remaining 7 fixes require manual editing:"
echo ""
echo "1. services/api_gateway/src/auth/mfa/mod.rs (line 133)"
echo " - Apply fix from /tmp/mfa_mod_fix.txt"
echo ""
echo "2. services/api_gateway/src/auth/mfa/backup_codes.rs (line 188)"
echo " - Apply fix from /tmp/backup_codes_fix.txt"
echo ""
echo "=== Verification ==="
echo "Run: cargo build --workspace --lib -p api_gateway"
echo "Expected: Clean compilation (0 errors)"