Files
ALwrity/backend/reset_onboarding.py
2025-08-06 12:48:02 +05:30

126 lines
4.4 KiB
Python
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""Reset onboarding progress for testing."""
import os
import json
from pathlib import Path
def reset_onboarding_progress():
"""Reset the onboarding progress by deleting the progress file."""
# Progress file path
progress_file = ".onboarding_progress.json"
print("🔄 Resetting onboarding progress...")
# Check if progress file exists
if os.path.exists(progress_file):
try:
# Read current progress for backup
with open(progress_file, 'r') as f:
current_progress = json.load(f)
print(f" 📊 Current progress:")
print(f" - Current step: {current_progress.get('current_step', 'N/A')}")
print(f" - Completion: {current_progress.get('is_completed', False)}")
print(f" - Started: {current_progress.get('started_at', 'N/A')}")
# Delete the progress file
os.remove(progress_file)
print(" ✅ Progress file deleted successfully")
except Exception as e:
print(f" ❌ Error reading/deleting progress file: {e}")
return False
else:
print(" No progress file found (already reset)")
# Also reset .env file if it exists (optional)
env_file = ".env"
if os.path.exists(env_file):
try:
# Create backup
backup_file = ".env.backup"
with open(env_file, 'r') as f:
env_content = f.read()
with open(backup_file, 'w') as f:
f.write(env_content)
# Clear API keys from .env
lines = env_content.split('\n')
cleared_lines = []
for line in lines:
if not any(key in line.upper() for key in ['API_KEY', 'OPENAI', 'GEMINI', 'ANTHROPIC', 'MISTRAL']):
cleared_lines.append(line)
with open(env_file, 'w') as f:
f.write('\n'.join(cleared_lines))
print(" ✅ API keys cleared from .env file")
print(f" 💾 Backup saved as {backup_file}")
except Exception as e:
print(f" ⚠️ Warning: Could not reset .env file: {e}")
print("\n✅ Onboarding progress reset complete!")
print("\n📋 Next steps:")
print(" 1. Start the backend: python start.py")
print(" 2. Test the onboarding flow")
print(" 3. Check API endpoints at: http://localhost:8000/api/docs")
return True
def show_test_instructions():
"""Show instructions for testing the onboarding flow."""
print("\n🧪 Testing Instructions:")
print("=" * 50)
print("\n1. Start the backend:")
print(" cd backend")
print(" python start.py")
print("\n2. Test the onboarding flow:")
print(" - Open: http://localhost:8000/api/docs")
print(" - Or use curl commands:")
print("\n # Check initial status")
print(" curl http://localhost:8000/api/onboarding/status")
print("\n # Start onboarding")
print(" curl -X POST http://localhost:8000/api/onboarding/start")
print("\n # Complete step 1 (AI LLM Providers)")
print(" curl -X POST http://localhost:8000/api/onboarding/step/1/complete \\")
print(" -H 'Content-Type: application/json' \\")
print(" -d '{\"data\": {\"api_keys\": [\"openai\"]}}'")
print("\n # Save an API key")
print(" curl -X POST http://localhost:8000/api/onboarding/api-keys \\")
print(" -H 'Content-Type: application/json' \\")
print(" -d '{\"provider\": \"openai\", \"api_key\": \"sk-test1234567890abcdef\"}'")
print("\n # Check progress")
print(" curl http://localhost:8000/api/onboarding/progress")
print("\n # Complete final step")
print(" curl -X POST http://localhost:8000/api/onboarding/step/6/complete \\")
print(" -H 'Content-Type: application/json' \\")
print(" -d '{\"data\": {\"finalized\": true}}'")
print("\n3. Run automated tests:")
print(" python test_backend.py")
if __name__ == "__main__":
print("🎯 ALwrity Onboarding Reset Tool")
print("=" * 40)
# Reset the progress
success = reset_onboarding_progress()
if success:
# Show testing instructions
show_test_instructions()
else:
print("\n❌ Failed to reset onboarding progress")