Files
boc/iom/scripts/auto_revision.sh
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00

145 lines
4.0 KiB
Bash
Executable File

#!/bin/bash
#
# Auto Revision Script
# Kör konstant revision av alla komponenter
#
set -e
IOM_DIR="/home/bernt/.openclaw/workspace/iom"
LOG_FILE="$IOM_DIR/logs/revision.log"
DATE=$(date +%Y-%m-%d-%H%M%S)
# Skapa logg-katalog
mkdir -p "$IOM_DIR/logs"
log() {
echo "[$DATE] $1" | tee -a "$LOG_FILE"
}
# === 1. Kodgranskning ===
log "=== Kodgranskning ==="
# Kolla Python-kod
if command -v pylint &> /dev/null; then
log "Kör pylint..."
find "$IOM_DIR" -name "*.py" -not -path "*/venv/*" -not -path "*/node_modules/*" | head -20 | while read f; do
pylint "$f" --disable=R,C 2>/dev/null | head -5 >> "$LOG_FILE" || true
done
fi
# Kolla teststatus
log "Kollar teststatus..."
if [ -f "$IOM_DIR/tests/test_complete.py" ]; then
cd "$IOM_DIR"
python -m pytest tests/test_complete.py -v 2>&1 | tail -5 >> "$LOG_FILE" || log "Tester misslyckades"
fi
# === 2. API-granskning ===
log "=== API-granskning ==="
# Kolla om API körs
if curl -s -k https://localhost:8000/health > /dev/null 2>&1; then
log "API: OK"
# Kolla endpoints
ENDPOINTS=("/health" "/taxonomy/domains" "/goid/generate")
for endpoint in "${ENDPOINTS[@]}"; do
STATUS=$(curl -s -k -o /dev/null -w "%{http_code}" "https://localhost:8000$endpoint")
log " $endpoint: HTTP $STATUS"
done
else
log "API: NEDKOPPLAD"
fi
# === 3. Dokumentationsgranskning ===
log "=== Dokumentationsgranskning ==="
# Kolla att alla komponenter har README
COMPONENTS=("quixzoom-app" "landvex-dashboard" "integrations/qgis" "integrations/arcgis" "sdk/python" "sdk/javascript")
for comp in "${COMPONENTS[@]}"; do
if [ -f "$IOM_DIR/$comp/README.md" ]; then
log " $comp/README.md: OK"
else
log " $comp/README.md: SAKNAS"
fi
done
# === 4. Säkerhetsgranskning ===
log "=== Säkerhetsgranskning ==="
# Kolla efter hemligheter
if command -v grep &> /dev/null; then
SECRETS=$(grep -r "password\|secret\|token\|key" "$IOM_DIR" --include="*.py" --include="*.js" --include="*.yaml" | grep -v "example\|placeholder\|README" | head -5 || true)
if [ -n "$SECRETS" ]; then
log " ⚠️ Potentiella hemligheter hittade:"
echo "$SECRETS" | while read line; do
log " $line"
done
else
log " Inga hemligheter hittade"
fi
fi
# === 5. Prestandagranskning ===
log "=== Prestandagranskning ==="
# Kolla API response time
if curl -s -k https://localhost:8000/health > /dev/null 2>&1; then
TIME=$(curl -s -k -o /dev/null -w "%{time_total}" https://localhost:8000/health)
log " API response time: ${TIME}s"
if (( $(echo "$TIME > 1.0" | bc -l) )); then
log " ⚠️ API är långsamt (>1s)"
fi
fi
# === 6. Versionskontroll ===
log "=== Versionskontroll ==="
# Kolla versionsnummer
VERSION_FILES=("api/main.py" "core/goid_generator.py" "visual_geolocation/pipeline.py")
for file in "${VERSION_FILES[@]}"; do
if [ -f "$IOM_DIR/$file" ]; then
VERSION=$(grep -o "version.*=.*['\"][0-9]\+\.[0-9]\+\.[0-9]\+['\"]" "$IOM_DIR/$file" | head -1 || echo "N/A")
log " $file: $VERSION"
fi
done
# === 7. Nästa åtgärder ===
log "=== Nästa åtgärder ==="
# Generera todo-lista baserat på granskning
TODO_FILE="$IOM_DIR/TODO_AUTO.md"
echo "# Auto-genererad TODO ($DATE)" > "$TODO_FILE"
echo "" >> "$TODO_FILE"
# Kolla om det finns misslyckade tester
if grep -q "FAILED" "$LOG_FILE" 2>/dev/null; then
echo "- [ ] Fixa misslyckade tester" >> "$TODO_FILE"
fi
# Kolla om API är nere
if ! curl -s -k https://localhost:8000/health > /dev/null 2>&1; then
echo "- [ ] Starta om API" >> "$TODO_FILE"
fi
# Kolla saknad dokumentation
for comp in "${COMPONENTS[@]}"; do
if [ ! -f "$IOM_DIR/$comp/README.md" ]; then
echo "- [ ] Skapa README för $comp" >> "$TODO_FILE"
fi
done
log "Revision klar. Se $LOG_FILE för detaljer."
log "TODO-lista: $TODO_FILE"
# Skicka sammanfattning
echo ""
echo "=== REVISIONSSAMMANFATTNING ==="
echo "Datum: $DATE"
echo "Logg: $LOG_FILE"
echo "TODO: $TODO_FILE"
echo ""
echo "Status: ✅ Revision klar"