プロジェクト

全般

プロフィール

バグ #137

未完了

【設計】Redmineドキュメント機能のAPI連携

Redmine Admin さんが4日前に追加. 4日前に更新.

ステータス:
新規
優先度:
通常
担当者:
-
開始日:
2025-06-02
期日:
進捗率:

0%

予定工数:

説明

設計

実施内容

  1. システム構成設計
  2. モジュール設計
  3. API仕様設計
  4. データフロー設計

設計詳細

システム構成

  • RedmineMCPの拡張モジュールとして実装
  • FastAPIを利用したRESTful API
  • Pythonベースのサービス層

モジュール構成

redmine-mcp/
├── document_api/
│   ├── __init__.py
│   ├── api.py               # RESTful API実装
│   ├── document_service.py  # ドキュメント操作のロジック
│   └── models.py            # データモデル
├── config/
│   └── document_config.json # 設定ファイル
└── tests/
    └── test_document_api.py # テスト

API仕様

  1. チケット紐づきドキュメント

    • エンドポイント: /documents/attach
    • メソッド: POST
    • パラメータ:
      • issue_id: チケットID
      • file: 添付ファイル
      • comment: コメント(任意)
  2. 独立ドキュメント

    • エンドポイント: /documents/standalone
    • メソッド: POST
    • パラメータ:
      • project_id: プロジェクトID
      • title: タイトル
      • description: 説明
      • file: 添付ファイル
      • keywords: キーワード(任意)
  3. ドキュメント検索

    • エンドポイント: /documents
    • メソッド: GET
    • パラメータ:
      • project_id: プロジェクトID(任意)
      • keyword: 検索キーワード(任意)
      • limit: 取得上限(任意)

データフロー

  1. クライアント → API → DocumentService → Redmine API
  2. セキュリティ対策:
    • API認証
    • CORS設定
    • ファイルバリデーション

設定ファイル設計

{
  "redmine": {
    "base_url": "https://call2arm.com",
    "api_key": "feb66d81a5f4ff9c585ce30fce2ac06e0554aec6"
  },
  "document_settings": {
    "standalone_category_name": "ドキュメント",
    "standalone_tracker_id": 1,
    "use_wiki_for_standalone": false,
    "wiki_parent_page": "Documents",
    "allowed_extensions": ["pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "md", "png", "jpg", "jpeg"],
    "max_file_size_mb": 10
  }
}

他の形式にエクスポート: Atom PDF