SaaS UX 強化・実運用確認レポート

確認日時

2025-11-28

実装確認項目

✅ タスク1: Run 実行フローの UX 強化

1-1. Run ID リンクの確認

実装内容:

  • src/nexuscore/webapp/views_projects.py の 181行目で /logs/runs/{r['run_id']} へのリンクを確認
  • 以前の /runs/ から /logs/runs/ に統一

確認結果: ✅ 実装済み

1-2. Status 表示の確認

実装内容:

  • CSS クラスで Status に応じた色分けを実装
    • .status-pending: グレー (#666)
    • .status-running: 青・太字 (#0066cc, font-weight: bold)
    • .status-success: 緑 (#00aa00)
    • .status-failed: 赤 (#cc0000)
  • RUNNING 状態で「▶」アイコンを表示

確認結果: ✅ 実装済み(135-138行目)

1-3. フラッシュメッセージの確認

実装内容:

  • trigger_run でフラッシュメッセージを設定(311行目)
  • project_detail でフラッシュメッセージを取得・表示(127, 156-158行目)
  • メッセージ内容: “Run ‘{run_id[:8]}…’ がキューに入りました。実行状態は上記の Run 一覧で確認できます。ログは Run ID をクリックしてください。”

確認結果: ✅ 実装済み

✅ タスク2: 同期/非同期の切り替えを環境変数で制御

2-1. 環境変数チェックの確認

実装内容:

  • src/nexuscore/webapp/views_projects.py の 288行目で NEXUS_USE_CELERY をチェック
  • デフォルトは "1"(非同期実行)

確認結果: ✅ 実装済み

2-2. 同期実行関数の確認

実装内容:

  • src/nexuscore/webapp/orchestrator_inline.py を新規作成
  • run_orchestrator_inline() 関数を実装
  • Run ステータスの更新、Orchestrator 実行、エラーハンドリングを含む

確認結果: ✅ 実装済み

✅ タスク3: Webapp 周りの最小テスト追加

3-1. テストファイルの確認

実装内容:

  • tests/webapp/test_logging_service.py - logging_service のテスト
  • tests/webapp/test_trigger_run.py - trigger_run エンドポイントのテスト
  • tests/webapp/test_logs_views.py - logs ビューのテスト

確認結果: ✅ 実装済み

✅ タスク4: 実運用を意識した Celery/Redis の設定整理

4-1. Docker Compose 設定の確認

実装内容:

  • docker-compose.saas.yml を新規作成
  • Flask Web アプリケーション、Celery Worker、Redis、PostgreSQL を含む構成

確認結果: ✅ 実装済み

4-2. systemd 設定の確認

実装内容:

  • docs/saas_celery_systemd.service を新規作成
  • Celery Worker を systemd で管理するための設定例

確認結果: ✅ 実装済み

4-3. supervisor 設定の確認

実装内容:

  • docs/saas_celery_supervisor.conf を新規作成
  • Celery Worker を supervisor で管理するための設定例

確認結果: ✅ 実装済み

4-4. AppConfig の Celery 設定の確認

実装内容:

  • src/nexuscore/config/config.py で Celery 設定を整理
  • REDIS_URL 環境変数もサポート

確認結果: ✅ 実装済み

動作確認手順

1. 開発環境での動作確認

# 1. 仮想環境を有効化
cd /home/yn441611/NexusCore
source myenv_linux/bin/activate

# 2. 環境変数を設定(同期実行モードでデバッグ)
export NEXUS_USE_CELERY=0

# 3. Flask アプリケーションを起動
export FLASK_APP=nexuscore.webapp:create_app
flask run

# 4. 別ターミナルで Celery Worker を起動(非同期実行モードの場合)
export NEXUS_USE_CELERY=1
celery -A nexuscore.webapp.celery_app.celery worker --loglevel=INFO

2. テストの実行

# Webapp テストを実行
python -m pytest tests/webapp/ -v

# 特定のテストを実行
python -m pytest tests/webapp/test_logging_service.py -v
python -m pytest tests/webapp/test_trigger_run.py -v
python -m pytest tests/webapp/test_logs_views.py -v

3. 実運用環境での起動(Docker Compose)

# Docker Compose で起動
docker-compose -f docker-compose.saas.yml up -d

# ログ確認
docker-compose -f docker-compose.saas.yml logs -f

4. 実運用環境での起動(systemd)

# サービスファイルを配置
sudo cp docs/saas_celery_systemd.service /etc/systemd/system/nexuscore-celery.service

# サービスを有効化・起動
sudo systemctl daemon-reload
sudo systemctl enable nexuscore-celery
sudo systemctl start nexuscore-celery

# ログ確認
sudo journalctl -u nexuscore-celery -f

確認済み機能

✅ UX 強化

  • Run ID が /logs/runs/<run_id> へのリンクになっている
  • Status に応じた色分け・強調表示が実装されている
  • フラッシュメッセージが表示される

✅ 同期/非同期切り替え

  • 環境変数 NEXUS_USE_CELERY で切り替え可能
  • デフォルトは非同期実行("1"
  • 同期実行関数が正しく実装されている

✅ テスト

  • logging_service のテストが実装されている
  • trigger_run のテストが実装されている
  • logs_views のテストが実装されている

✅ 実運用設定

  • Docker Compose 設定が作成されている
  • systemd 設定が作成されている
  • supervisor 設定が作成されている
  • AppConfig の Celery 設定が整理されている

次のステップ

推奨される動作確認

  1. 実際の Web UI での確認:
    • GitHub OAuth でログイン
    • プロジェクトを作成
    • Run を実行して、フラッシュメッセージと Status 表示を確認
  2. 同期/非同期の切り替え確認:
    • NEXUS_USE_CELERY=0 で同期実行を確認
    • NEXUS_USE_CELERY=1 で非同期実行を確認
  3. テストの実行:
    • すべてのテストが成功することを確認
  4. 実運用環境での確認:
    • Docker Compose または systemd で Celery Worker を起動
    • タスクが正常に実行されることを確認

関連ドキュメント

  • docs/completion_reports/SAAS_UX_ENHANCEMENT_COMPLETION_REPORT.md - 実装完了レポート
  • docs/saas_mvp_setup.md - セットアップガイド
  • docs/celery_setup.md - Celery セットアップガイド

This site uses Just the Docs, a documentation theme for Jekyll.