{"id":43535717,"url":"https://github.com/youichi-uda/sbomhub","last_synced_at":"2026-07-05T04:00:57.064Z","repository":{"id":334561277,"uuid":"1141662595","full_name":"youichi-uda/sbomhub","owner":"youichi-uda","description":"日本市場向けオープンソースSBOM管理ダッシュボード / Open-source SBOM management dashboard with NVD/JVN vulnerability correlation, Japanese UI, and METI guidelines compliance","archived":false,"fork":false,"pushed_at":"2026-06-30T17:11:02.000Z","size":10177,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-30T18:06:56.489Z","etag":null,"topics":["compliance","cyclonedx","cyclonedx-sbom","devsecops","docker","sbom","sbom-management","security","self-hosted","software-bill-of-materials","spdx","spdx-sbom","vex","vulnerability-management"],"latest_commit_sha":null,"homepage":"https://sbomhub.app","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/youichi-uda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security/self-host-deployment.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-25T07:32:32.000Z","updated_at":"2026-06-30T17:01:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/youichi-uda/sbomhub","commit_stats":null,"previous_names":["youichi-uda/sbomhub"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/youichi-uda/sbomhub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/youichi-uda%2Fsbomhub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/youichi-uda%2Fsbomhub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/youichi-uda%2Fsbomhub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/youichi-uda%2Fsbomhub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/youichi-uda","download_url":"https://codeload.github.com/youichi-uda/sbomhub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/youichi-uda%2Fsbomhub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35142824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compliance","cyclonedx","cyclonedx-sbom","devsecops","docker","sbom","sbom-management","security","self-hosted","software-bill-of-materials","spdx","spdx-sbom","vex","vulnerability-management"],"created_at":"2026-02-03T16:46:10.768Z","updated_at":"2026-07-05T04:00:57.003Z","avatar_url":"https://github.com/youichi-uda.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SBOMHub\n\n[![日本語](https://img.shields.io/badge/lang-日本語-red.svg)](./README.md) [![English](https://img.shields.io/badge/lang-English-blue.svg)](./README_en.md)\n\n![License](https://img.shields.io/badge/license-AGPL--3.0-blue)\n![Go Version](https://img.shields.io/badge/go-1.22+-00ADD8)\n![Next.js](https://img.shields.io/badge/Next.js-16-black)\n![Docker Pulls](https://img.shields.io/docker/pulls/y1uda/sbomhub-api)\n![GitHub Stars](https://img.shields.io/github/stars/youichi-uda/sbomhub)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/dashboard.png\" alt=\"SBOMHub ダッシュボード\" width=\"800\"\u003e\n\u003c/p\u003e\n\n## SBOMHub — CRA 対応 SBOM コンプラ成果物レイヤー\n\n\u003e **DT は CVE を見つける。SBOMHub は、提出できる紙にする。**\n\u003e\n\u003e SBOM を、提出できる VEX・CRA 報告書・監査証跡に変える、AGPL-3.0 の OSS 運用基盤。\n\n## 概要\n\nSBOMHub は、CRA (EU Cyber Resilience Act) 2026/9 の脆弱性報告義務に直面する日本の組込み・IoT・中小ベンダー向けに、Syft / Trivy / Dependency-Track などの出力を取り込み、**AI が VEX・CRA 報告書・経産省自己評価の下書きを作り、人間が承認して提出物にする** 運用基盤です。\n\n「日本市場向けの汎用 SBOM 管理ダッシュボード」というカテゴリからは撤退し、DT / Syft / Trivy の上に乗る **AI コンプラ成果物レイヤー** に再定義しました。完全オープンソース (AGPL-3.0)、セルフホスト、BYOK (Bring Your Own Key) で運用できます。\n\n## 誰のためのものか\n\n- EU 向けに IoT / 組込み / デジタル製品を出荷する **日本の中小製造業ベンダー**\n- 専任 PSIRT を置けず、開発者や品質保証担当が片手間で脆弱性対応している組織\n- 取引先や監査から SBOM / VEX 提出を求められ始めた **受託開発会社・小規模 SaaS**\n- コードや SBOM を **海外 SaaS や外部 LLM API に出したくない** 製造業\n- CRA 2026/9 が具体的な期限として迫っているが、専任セキュリティ担当がいない組織\n\n汎用 SBOM 管理ツールとして広く誰にでも、ではなく、上記 ICP に絞った道具です。\n\n## 主な機能 (実装済み)\n\n| 機能 | 説明 |\n|------|------|\n| SBOM インポート | CycloneDX / SPDX JSON 取り込み |\n| 脆弱性突合 | NVD + JVN 連携で日本語 CVE 情報もカバー |\n| EPSS スコアリング | 悪用可能性に基づく優先度付け |\n| SSVC 意思決定 | CISA SSVC フレームワークによる優先度付け |\n| KEV 連携 | CISA Known Exploited Vulnerabilities カタログ自動同期 |\n| VEX 管理 (手動) | CycloneDX VEX 形式の作成・編集・エクスポート |\n| ライセンスポリシー | 許可 / 拒否ライセンスの管理 |\n| 経産省自己評価 | 経産省「ソフトウェア管理に向けた SBOM の導入に関する手引」自己評価チェックリスト |\n| 監査ログ | 操作履歴の証跡化 |\n| CI/CD 連携 | GitHub Actions 例、API キー認証 |\n| CLI | `sbomhub scan` / `sbomhub check` (sbomhub-cli) |\n| MCP Server | Claude Desktop / Cursor などからの読み取りアクセス |\n| マルチテナント | PostgreSQL Row-Level Security |\n| 日本語 UI | next-intl による日本語 / 英語切替 |\n\n## 開発中 (Phase 7: 戦略ピボット)\n\nここから先は AGPL-3.0 の OSS としてそのまま実装していきます。詳細マイルストーンは [sbomhub-internal/planning/PRODUCT_REBOOT_PLAN.md](../sbomhub-internal/planning/PRODUCT_REBOOT_PLAN.md) (内部) を参照してください。\n\n- **AI VEX トリアージ MVP** (M1): CVE × コンポーネント × コードを LLM が読み、CycloneDX VEX の下書きを生成。最初は Go / npm のみ。confidence・根拠コード・アドバイザリ引用を必ず添付。\n- **CRA 報告書ドラフト生成** (M2): 24 時間早期警告 / 72 時間詳細通知 / 最終報告の日本語・英語ドラフト。自動提出はしません。\n- **経産省自己評価プリフィル** (M3): CI 設定 / SBOM 生成履歴 / 突合履歴から自己評価項目を自動で達成・未達・要確認に振り分け、根拠と改善アクションを表示。\n- **Local LLM / Enterprise Self-host 磨き込み** (M4): Ollama 等のローカル LLM 品質向上、セルフホストセキュリティガイド整備。\n\n絶対原則: **AI は下書きまで、最終判断は人間。** AI が勝手に `not_affected` を確定したり、CRA 報告を自動送信したりはしません。\n\n## AI 機能と BYOK (Bring Your Own Key)\n\nOSS 版の AI 機能は **完全 BYOK** です。SBOMHub にバンドルされた LLM 鍵はありません。お手元の OpenAI / Anthropic / Google Gemini の API キー、または Ollama などのローカル LLM を環境変数で設定して有効化してください。\n\nサポート予定プロバイダ:\n\n| プロバイダ | 想定モデル | コードを外部に出すか |\n|---|---|---|\n| OpenAI | `gpt-5` 等 | 出る (BYO key) |\n| Anthropic | `claude-opus-4-7` 等 | 出る (BYO key) |\n| Google Gemini | `gemini-3.5-flash` 等 | 出る (BYO key) |\n| Azure OpenAI | `gpt-4o` / `gpt-5` 等 (Azure deployment 名) | 出る (Microsoft 調達契約経由) |\n| Ollama (Local) | `llama3.3` / `qwen2.5-coder` 等 | 出ない (推奨) |\n\n設定例 (`.env`):\n\n```bash\n# どれか 1 つを設定すれば AI 機能が有効化されます\nSBOMHUB_LLM_PROVIDER=openai          # openai | anthropic | gemini | azure_openai | ollama\nSBOMHUB_LLM_MODEL=gpt-5\nOPENAI_API_KEY=sk-...\n# 任意: OpenAI embedding (reachability / vector search)\n# SBOMHUB_LLM_OPENAI_EMBEDDING_MODEL=text-embedding-3-small\n#\n# Gemini embedding は SBOMHUB_LLM_GEMINI_EMBEDDING_MODEL=gemini-embedding-2、\n# Ollama embedding は SBOMHUB_LLM_OLLAMA_EMBEDDING_MODEL=nomic-embed-text で上書き可能。\n# Anthropic は 2026-06 時点で first-party embedding API 非対応 (Voyage AI 等を別途利用)。\n\n# Azure OpenAI の例 (詳細は docs/configuration.md / configuration.ja.md)\n# SBOMHUB_LLM_PROVIDER=azure_openai\n# SBOMHUB_LLM_MODEL=gpt-4o\n# SBOMHUB_LLM_AZURE_ENDPOINT=https://my-resource.openai.azure.com\n# SBOMHUB_LLM_AZURE_DEPLOYMENT=my-chat-deployment\n# AZURE_OPENAI_API_KEY=...\n# 任意: reachability / vector search 用の embedding deployment (M5-3)\n# SBOMHUB_LLM_AZURE_EMBEDDING_DEPLOYMENT=text-embedding-3-small-prod\n# SBOMHUB_LLM_AZURE_EMBEDDING_MODEL=text-embedding-3-small      # 任意; Capabilities.EmbeddingDimensions 用\n\n# ローカル LLM の例\n# SBOMHUB_LLM_PROVIDER=ollama\n# SBOMHUB_LLM_MODEL=qwen2.5-coder:7b\n# SBOMHUB_LLM_OLLAMA_EMBEDDING_MODEL=nomic-embed-text\n# OLLAMA_HOST=http://localhost:11434\n```\n\nLLM プロバイダを設定していない場合、AI 機能は無効化され、手動 VEX 管理 / 手動 CRA 報告 / 手動経産省自己評価のみが動作します。AI なしでも従来の SBOM 管理機能はすべて使えます。\n\n## クイックスタート\n\n### Docker Compose (セルフホスト・推奨)\n\n```bash\n# 1. install.sh と docker-compose.yml をダウンロード (クローン不要)\ncurl -fsSL https://raw.githubusercontent.com/youichi-uda/sbomhub/main/install.sh \\\n  -o install.sh \u0026\u0026 chmod +x install.sh\ncurl -fsSL https://raw.githubusercontent.com/youichi-uda/sbomhub/main/docker-compose.yml \\\n  -o docker-compose.yml\n\n# 2. ワンショットで全部実行\n#    - .env を生成 (ENCRYPTION_KEY / MIGRATOR_PASSWORD / APP_PASSWORD をランダム発行)\n#    - postgres を起動して sbomhub_app / sbomhub_migrator ロールを投入\n#    - api / web / redis を起動\n./install.sh --start\n\n# 3. ブラウザで http://localhost:3000\n```\n\nワンライナー (`curl ... | sh`) の正本は\n[`docs/snippets/install.sh.md`](./docs/snippets/install.sh.md) を参照してください\n(`install.sh` と手動手順の single source of truth)。\n\nDocker image の publish CI は、API image に加えて web image も push 前に smoke test します。\nweb image は同一 local build を `load: true` で起動し、`http://localhost:3000` の到達性、\nHTML marker、Next.js standalone runtime output (`server.js` / `.next/static`) を確認してから\n同じ tag を push します。\n\nまたは、リポジトリをクローンして起動:\n\n```bash\ngit clone https://github.com/youichi-uda/sbomhub.git\ncd sbomhub\n./install.sh                              # .env を生成 (冪等)\ndocker compose up -d --wait postgres      # postgres を先に起動\n./install.sh --bootstrap-roles            # sbomhub_app / sbomhub_migrator を作成\ndocker compose up -d                      # 残りを起動\n```\n\n\u003e `./install.sh` は既存 `.env` を壊しません。再生成したい場合は `--force` を指定すると `.env.bak.YYYYMMDD` に退避してから新しい値を発行します。\n\u003e\n\u003e **既存ユーザーのアップグレード**: M0 Trust Rescue 以前のバージョンから `docker compose pull` で更新する場合は、 必ず [`docs/UPGRADE.md`](./docs/UPGRADE.md) の手順 (DB バックアップ + `./install.sh --bootstrap-roles` で既存ボリュームに新ロールを投入) を先に実施してください。 そのまま `docker compose up -d` すると api が `password authentication failed` で起動しません。\n\u003e\n\u003e **本番運用向け**: `ENCRYPTION_KEY` のローテーション手順は [`docs/encryption-key-rotation.ja.md`](./docs/encryption-key-rotation.ja.md) を参照してください (定期回転は 90 日推奨)。\n\n### CLI (sbomhub scan)\n\nローカルや CI ランナーから直接スキャン・アップロードする場合は CLI を使います。\n\n```bash\n# インストール (Homebrew, macOS/Linux)\nbrew tap youichi-uda/sbomhub https://github.com/youichi-uda/homebrew-sbomhub\nbrew install sbomhub\n\n# または Go install\ngo install github.com/youichi-uda/sbomhub-cli/cmd/sbomhub@latest\n\n# 脆弱性チェックのみ (アップロードなし)\nsbomhub check .\n```\n\n`login → scan → doctor` の 3 ステップ正本フローは\n[`docs/snippets/cli-quickstart.md`](./docs/snippets/cli-quickstart.md) を参照。\nCLI は内部で Syft / Trivy / cdxgen のいずれかを自動検出して呼び出します。\n詳細は [sbomhub-cli](https://github.com/youichi-uda/sbomhub-cli) を参照してください。\n\n### ソースからビルド\n\n**前提条件:** Go 1.22+ / Node.js 20+ / pnpm / PostgreSQL 15+ / Redis 7+\n\n```bash\n# データベースを起動\ndocker compose -f docker/docker-compose.yml up -d postgres redis\n\n# バックエンド\ncd apps/api \u0026\u0026 go run ./cmd/server\n\n# フロントエンド (別ターミナル)\ncd apps/web \u0026\u0026 pnpm install \u0026\u0026 pnpm dev\n```\n\n### LLM ベンチ用バイナリ (`llm-bench`) のダウンロード\n\n`apps/api/cmd/llm-bench` は Managed AI と Local LLM (Ollama 等) の VEX トリアージ品質を同一プロンプトで比較するための専用バイナリで、 sbomhub OSS のリリースタグごとに **スタンドアロン archive** を [GitHub Releases](https://github.com/youichi-uda/sbomhub/releases) に同梱しています (M5-2)。sbomhub のソースを clone してビルドしなくても、 `sbomhub-cli` の `sbomhub llm bench` ラッパーや CI から直接ダウンロードして実行できます。\n\n```bash\n# 例: Linux x86_64 用の最新リリースを取得 (タグは適宜置換)\nVERSION=v1.4.0\ncurl -fsSL -o llm-bench.tar.gz \\\n  https://github.com/youichi-uda/sbomhub/releases/download/${VERSION}/llm-bench-${VERSION}-linux-amd64.tar.gz\ntar -xzf llm-bench.tar.gz\n./llm-bench --version\n./llm-bench --eval-set fixtures/llm-bench/cve-20-50.json --providers openai\n```\n\n提供アーカイブ:\n\n| OS | アーキテクチャ | ファイル名 |\n|----|----------------|------------|\n| Linux | amd64 / arm64 | `llm-bench-\u003cVERSION\u003e-linux-{amd64,arm64}.tar.gz` |\n| macOS | amd64 / arm64 | `llm-bench-\u003cVERSION\u003e-darwin-{amd64,arm64}.tar.gz` |\n| Windows | amd64 / arm64 | `llm-bench-\u003cVERSION\u003e-windows-{amd64,arm64}.zip` |\n\n`checksums.txt` (SHA-256) もリリースに同梱されるので、 ダウンロード後はチェックサム検証を推奨します。 環境変数の契約 (`OPENAI_API_KEY` / `ANTHROPIC_API_KEY` / `GOOGLE_API_KEY` / `SBOMHUB_LLM_BENCH_OLLAMA_MODEL` 等) と終了コード表 (F42) は `./llm-bench --help` で確認できます。\n\n\u003e sbomhub OSS のサーバ本体 (`server` / `migrate`) は引き続き [Docker Hub の y1uda/sbomhub-api](https://hub.docker.com/r/y1uda/sbomhub-api) でのみ配布しています。 `llm-bench` だけがスタンドアロン archive で配布される理由は、 ラッパー (`sbomhub llm bench`) が任意のホストから単独で実行できる必要があるためです。\n\n### SaaS 版について\n\n\u003e SaaS 版 (https://sbomhub.app) は **2026-06-23 時点で新規受付停止 (sunset)** です。新ポジショニング下での再開時期は未定。当面はセルフホスト + CLI を主導線にしてください。再開時はリポジトリ上でアナウンスします。\n\n## 既存ユーザー向けの注意\n\nSBOMHub は v0.x の間に「日本版 Dependency-Track」から「CRA 対応 SBOM コンプラ成果物レイヤー」へポジショニングをピボットしました。実装済みの SBOM 管理 / 脆弱性突合 / VEX / ライセンスポリシー / 経産省自己評価機能は維持されます。AI 機能と CRA 報告書ドラフト機能が順次追加されます。\n\n## アーキテクチャ\n\n```\n┌──────────────────┐     ┌──────────────────┐\n│   Next.js Web    │────▶│     Go API       │\n│   (Port 3000)    │     │   (Port 8080)    │\n└──────────────────┘     └─────────┬────────┘\n                                   │\n                ┌──────────────────┼────────────────────┐\n                ▼                  ▼                    ▼\n        ┌───────────────┐  ┌───────────────┐  ┌─────────────────┐\n        │  PostgreSQL   │  │     Redis     │  │   NVD / JVN     │\n        │   (Data)      │  │    (Cache)    │  │   (Vuln feeds)  │\n        └───────────────┘  └───────────────┘  └─────────────────┘\n                                   │\n                                   ▼ (BYOK, optional)\n                        ┌──────────────────────────┐\n                        │   LLM Provider           │\n                        │   OpenAI / Anthropic /   │\n                        │   Gemini / Ollama        │\n                        └──────────────────────────┘\n```\n\n## API リファレンス\n\n主要エンドポイント (詳細は [docs/api.ja.md](./docs/api.ja.md))。\n\n```\nPOST   /api/v1/projects              # プロジェクト作成\nGET    /api/v1/projects              # プロジェクト一覧\nGET    /api/v1/projects/:id          # プロジェクト詳細\n\nPOST   /api/v1/projects/:id/sbom     # SBOM アップロード\nGET    /api/v1/projects/:id/components\nGET    /api/v1/projects/:id/vulnerabilities\nGET    /api/v1/projects/:id/vex      # VEX ステートメント\n\n# SSVC\nGET    /api/v1/projects/:id/ssvc/defaults\nPUT    /api/v1/projects/:id/ssvc/defaults\nPOST   /api/v1/projects/:id/vulnerabilities/:vuln_id/ssvc\nPOST   /api/v1/ssvc/calculate\n\n# KEV\nPOST   /api/v1/kev/sync\nGET    /api/v1/kev/:cve_id\nGET    /api/v1/projects/:id/kev\n```\n\n## MCP Server (読み取り)\n\nClaude Desktop / Cursor 等から SBOMHub のデータに読み取りアクセスできます。\n\n```json\n{\n  \"mcpServers\": {\n    \"sbomhub\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/sbomhub/packages/mcp-server/dist/index.js\"],\n      \"env\": {\n        \"SBOMHUB_API_KEY\": \"your-api-key\",\n        \"SBOMHUB_API_URL\": \"http://localhost:8080\"\n      }\n    }\n  }\n}\n```\n\n| ツール | 説明 |\n|--------|------|\n| sbomhub_list_projects | プロジェクト一覧取得 |\n| sbomhub_get_dashboard | ダッシュボード情報 |\n| sbomhub_search_cve | CVE 横断検索 |\n| sbomhub_search_component | コンポーネント検索 |\n| sbomhub_diff | SBOM 差分比較 |\n| sbomhub_get_vulnerabilities | 脆弱性一覧 |\n| sbomhub_get_compliance | コンプライアンススコア |\n\n詳細は [packages/mcp-server/README.md](./packages/mcp-server/README.md) を参照。\n\n## CI/CD 連携 (GitHub Actions)\n\nワークフローの正本スニペットは\n[`docs/snippets/github-actions.yml.md`](./docs/snippets/github-actions.yml.md)\nにあります (推奨は `sbomhub-cli` をインストールして `sbomhub scan` を 1 行で叩く形)。\nランナーに CLI を入れられない環境向けに、生 `curl` での同等手順も併記しています。\n\n| 用途 | スニペット |\n|---|---|\n| GitHub Actions ワークフロー全体 | [`docs/snippets/github-actions.yml.md`](./docs/snippets/github-actions.yml.md) |\n| GitLab CI 同等のジョブ | [`docs/snippets/gitlab-ci.yml.md`](./docs/snippets/gitlab-ci.yml.md) |\n| 単体の `curl` アップロード (任意のランナー) | [`docs/snippets/curl-upload.md`](./docs/snippets/curl-upload.md) |\n| ローカル / runner からの CLI 3 ステップ | [`docs/snippets/cli-quickstart.md`](./docs/snippets/cli-quickstart.md) |\n\nアップロード契約は `POST /api/v1/projects/:id/sbom` + `Authorization: Bearer sbh_...`\n+ raw JSON body に統一されています (旧 multipart `/cli/upload` は\n2026-09-24 サンセット予定)。詳細は [docs/api.ja.md](./docs/api.ja.md) を参照。\n\n## ロードマップ (Phase 7 = 戦略ピボット)\n\nCRA 2026-09-11 から逆算した M0-M4 マイルストーン。\n\n| マイルストーン | 期間目安 | 内容 |\n|---|---|---|\n| **M0** 戦略確定 + Trust Rescue 着手 | 〜 2 週間 | README / LP のポジショニング刷新、RLS / 暗号鍵 / API 契約 / CI / 配布の P0 修正、waitlist 導線、デザインパートナー候補リスト化 |\n| **M1** AI VEX トリアージ MVP | 〜 6 週間 | `sbomhub triage` CLI、Go / npm の reachability 一次解析、LLM 判断、VEX draft 保存、UI 承認 / 編集 / 却下、CycloneDX VEX export、confidence / evidence / 監査ログ |\n| **M2** CRA 報告書ドラフト | 〜 4 週間 | 24h 早期警告 / 72h 詳細通知 / 最終報告テンプレ、日本語 / 英語、Evidence Pack 統合 |\n| **M3** 経産省自己評価プリフィル | 〜 3 週間 | CI / SBOMHub 利用履歴から自己評価項目をプリフィル、達成 / 未達 / 要確認 + 根拠 |\n| **M4** Local LLM / Enterprise Self-host 磨き込み | 継続 | LLM プロバイダ抽象化、Ollama 等の品質比較、セルフホストセキュリティガイド |\n\n実装済み機能 (現状の機能一覧) はそのまま維持し、上記マイルストーンを順次追加していきます。\n\n配布チャネル (GitHub org / Docker image / Homebrew / Scoop / Go module path) の M2 以降の rename 計画は [`docs/distribution-rename-plan.md`](./docs/distribution-rename-plan.md) を参照。\n\n## ライセンス\n\n本プロジェクトは [AGPL-3.0 ライセンス](./LICENSE) の下で公開されています。\n\n| ユースケース | 可否 | 備考 |\n|----------|---------|-------|\n| セルフホスト (社内利用) | OK | ソース開示義務なし |\n| セルフホスト (改変あり) | OK | 改変ソースの開示義務あり |\n| 第三者に SaaS として提供 | 注意 | AGPL に従い全ソース開示義務 |\n\n\u003e AGPL 義務なしで商用 SaaS / 組込み配布したい場合は、別途お問い合わせください。\n\n## コントリビューション\n\nコントリビューションを歓迎します。詳細は [CONTRIBUTING.md](./CONTRIBUTING.md) をご覧ください。\n\n新ポジショニング (CRA / AI VEX / 経産省自己評価) に関するフィードバックや、CRA 対応デザインパートナーとしての参加にご興味のある方は、GitHub Issue または abyo.software@gmail.com までご連絡ください。\n\n## 技術スタック\n\n| レイヤー | 技術 | バージョン |\n|---------|------|-----------|\n| バックエンド | Go (Echo v4) | 1.22+ |\n| フロントエンド | Next.js (App Router) | 16 |\n| UI | React + shadcn/ui + Tailwind CSS | 19 / latest / 3.4 |\n| 言語 | TypeScript | 5.7 |\n| データベース | PostgreSQL | 15+ |\n| キャッシュ | Redis | 7+ |\n| 国際化 | next-intl | latest |\n| フォーム | react-hook-form + zod | latest |\n| LLM (BYOK) | OpenAI / Anthropic / Gemini / Ollama | 任意 |\n\n## 開発\n\n### プロジェクト構造\n\n```\nsbomhub/\n├── apps/\n│   ├── web/          # Next.js フロントエンド\n│   └── api/          # Go バックエンド\n├── packages/\n│   ├── db/           # DB スキーマとマイグレーション\n│   ├── mcp-server/   # MCP Server (Claude/Cursor 連携)\n│   └── types/        # 共有 TypeScript 型定義\n├── docker/           # Docker 設定\n├── docs/             # ドキュメント\n└── .github/workflows/  # CI/CD パイプライン\n```\n\n### よく使うコマンド\n\n```bash\n# 開発サーバー起動\ncd apps/web \u0026\u0026 pnpm dev                # フロントエンド (http://localhost:3000)\ncd apps/api \u0026\u0026 go run ./cmd/server     # バックエンド (http://localhost:8080)\n\n# データベース\ndocker compose up -d postgres redis\ncd apps/api \u0026\u0026 go run ./cmd/migrate up\n\n# テスト・Lint・ビルド\ncd apps/api \u0026\u0026 go test ./... \u0026\u0026 golangci-lint run\ncd apps/web \u0026\u0026 pnpm test \u0026\u0026 pnpm lint\ndocker compose build\n```\n\n### コードスタイル\n\n- **Go**: gofmt, golangci-lint\n- **TypeScript**: ESLint, Prettier\n- **コミット**: [Conventional Commits](https://www.conventionalcommits.org/ja/)\n\n### CI\n\n各 workflow の一覧と、 不足している quality gate / ブランチ保護設定の TODO は [`docs/ci-inventory.md`](./docs/ci-inventory.md) を参照。\n\n## セキュリティ\n\n### 脆弱性の報告\n\nセキュリティ脆弱性を発見した場合は、以下の方法で報告してください。\n\n1. **GitHub Security Advisories**: [脆弱性を報告](https://github.com/youichi-uda/sbomhub/security/advisories/new)\n2. **メール**: abyo.software@gmail.com (機密性の高い問題の場合)\n\n公開の GitHub Issue でセキュリティ脆弱性を報告しないでください。\n\n### セキュリティ機能\n\n- マルチテナント向け Row-Level Security (RLS)\n- CI/CD 連携用 API キー認証\n- 本番環境での HTTPS 強制\n- zod スキーマによる入力バリデーション\n- パラメータ化クエリによる SQL インジェクション防止\n- BYOK: LLM 鍵はユーザー側で保持。SBOMHub はバンドル鍵を持ちません\n\n## 謝辞\n\n- [CycloneDX](https://cyclonedx.org/) / [SPDX](https://spdx.dev/) - SBOM 仕様\n- [NVD](https://nvd.nist.gov/) / [JVN](https://jvn.jp/) - 脆弱性データベース\n- [FIRST EPSS](https://www.first.org/epss/) - Exploit Prediction Scoring System\n- [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) / [CISA SSVC](https://www.cisa.gov/stakeholder-specific-vulnerability-categorization-ssvc)\n- [Syft](https://github.com/anchore/syft) / [Trivy](https://github.com/aquasecurity/trivy) / [cdxgen](https://github.com/CycloneDX/cdxgen) / [OWASP Dependency-Track](https://dependencytrack.org/) - 入力源として尊敬しています\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyouichi-uda%2Fsbomhub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyouichi-uda%2Fsbomhub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyouichi-uda%2Fsbomhub/lists"}