Skip to content

[Phase 1 Sprint 0] scaffold ↔ 設計書 v1.4.x 整合実装(2 週間、2026-06-14 〜 06-27) #121

Description

@win2cot

: 本トラッカは GitHub Sub-issues 機能で関連 Issue を hierarchy 管理しています。下記のリストは構造的参照(Sprint / Stage / Week 別の整理)、実際の進捗は GitHub UI 上部の Sub-issues セクションで確認してください(2026-05-23 Sub-issues 移行)。


概要

詳細設計書 v1.4.x(基本設計書 v1.4.5 / OpenAPI v1.4.5 / Mermaid 図 / ADR-0001〜0005)と、既存 Spring Boot scaffold(webapi/src/main/java/xyz/dgz48/tasks/webapi/ 配下、33 ファイル)の差分を解消する Phase 1 Sprint 0 アプリ整合実装フェーズ

期間: 2026-06-14 開始 〜 2026-06-27 終了(2 週間、開発計画書 v1.3 §4.3.1 に整合)。

基盤整備は Phase 1 Setup 0-2 + Phase 1 Sprint 0-5 Infra ストリーム が並行で進める(本 Issue は Phase 1 Sprint 0 App ストリーム本体)。

詳細スケジュールは docs/specs/開発計画書.md v1.3 §4.3.1 + docs/architecture/infrastructure-plan.md v5 を参照。

Sprint 0 着手の前提

完了基準(Sprint 0 終了時)

  1. クリーンアーキ雛形 が動作: Domain / UseCase / Adapter / Infrastructure の 4 層が骨組として存在し、ApplicationModules.verify() が CI で実行されている(ArchUnit 導入は ADR-0002 で保留中、ApplicationModules.verify() に集約)
  2. マルチテナント分離が動作: X-Tenant-Id ヘッダ経由で tenant_id フィルタが全 SQL に自動付与され、クロステナント漏洩テスト(Testcontainers MySQL 8.4 上)がグリーン
  3. Keycloak Realm がローカル稼働: Docker Compose(Phase 1 Setup 1 で構築)で OIDC 認証(JWT.sub → users.oidc_sub 突合)が通る。dev 環境(Phase 1 Sprint 1 Infra で構築)での E2E は Phase 1 Sprint 3 Infra S3Infra-1 で検証
  4. DB スキーマが設計書 v1.4.x と一致: 既存 tasks 拡張 + マルチテナント補助 6 テーブルの Flyway migration が ./gradlew :webapi:flywayMigrate 成功
  5. CI/CD パイプライン: PR で ./gradlew :webapi:check + クロステナントテスト + Trivy スキャン がグリーン

P0(マージブロッカー / 完了基準必達)— 5 件

1 週目前半(6/14-6/16): DB スキーマ確定

1 週目後半(6/17-6/18): 基盤整備

2 週目前半(6/21-6/23): マルチテナント実装

P1(完了基準必達)— 2 件

1 週目並行(6/14-6/18): アーキ規約整備

2 週目後半(6/24-6/25): 認可拡張

P2(優先度低、Sprint 0 中に余裕があれば)— 1 件


Phase 1 並行ストリーム(全担当: win2cot、2026-05-23 構造再編で「別チーム前提」を撤回)

v1.2 で「別チーム前提」だった並行作業は、実体制 win2cot 単独運用のため、以下の構造で順序付けて消化する。詳細は docs/architecture/infrastructure-plan.md v5 + 横断 tracker #206

基盤整備フェーズ(Phase 1 Setup 0-2、2026-05-23 〜 2026-06-13、3 週間、Sprint 0 着手のクリティカルパス)

Phase 1 Sprint 0-5 Infra ストリーム(2026-06-14 〜 2026-08-22、本 #121 App ストリームと並行)

  • Phase 1 Sprint 0 Infra(W3-W4、本 Sprint と並行): Terraform 基盤(state backend / OIDC IAM Role / VPC / SG / ALB 雛形 / Parameter Store + 横断 doc / Route53 Private Hosted Zone)
  • Phase 1 Sprint 1 Infra(W5-W6): AWS dev リソース(RDS MySQL 8.4 IAM 認証 + PHZ CNAME / ECS Cluster / Keycloak Custom Image + ECS Service / Route53 + ACM / ECR / Realm initial import)
  • Phase 1 Sprint 2 Infra(W7-W8): deploy CI/CD(各コンポーネント tag 駆動)
  • Phase 1 Sprint 3 Infra(W9-W10): dev E2E / クロステナント先行テスト / ログ基盤実装 / dev ECS 稼働時間切替(平日 19-02 + 土日 10-02)
  • Phase 1 Sprint 4 Infra(W11): 運用 runbook 初版 / NIST MVP control(旧「セキュリティ NIST SP 800-53 チェックリスト」を本ストリームに統合)
  • Phase 1 Sprint 5 Infra(W12): 最終調整 / リリース前チェックリスト

並行 ADR ストリーム

  • ログ基盤選定 ADR(infra/docs/adr/ 配下、Phase 1 Sprint 1 Infra 着手までに方針確定が望ましい)

ブランチ・PR 戦略

claude-automation v1.1.0 経由で実装する場合、各 Issue から自動的に claude/impl/issue-XX-* ブランチが作成される。

ブランチ(claude-automation 自動) 対応 Issue 依存
claude/impl/issue-83-flyway-tasks-extend #83 なし
claude/impl/issue-84-flyway-multitenancy #84 なし
claude/impl/issue-85-task-entity-extend #85 #83 と同時 PR(Flyway とエンティティの不整合防止)
claude/impl/issue-86-clean-arch-skeleton #86 なし(他と並行可)
claude/impl/issue-87-tenant-context #87 #84(user_tenants テーブル)が main 反映後
claude/impl/issue-88-jwt-role-extraction #88 #87 完了後
claude/impl/issue-89-application-yml #89 なし(他と並行可)
claude/impl/issue-90-docs-correction #90 なし、Phase 1 Setup 2 ADR 結果を踏まえる

受け入れ条件

  • P0 全 5 件・P1 全 2 件が main にマージ済
  • CI(GitHub Actions)グリーン: ./gradlew :webapi:check + ApplicationModules.verify() + クロステナントテスト + Trivy
  • クロステナント漏洩テストが具体的に下記をパス:
    - Tenant A のユーザー JWT で GET /api/tasks/{Tenant B のタスクID}404
    - Tenant A のユーザー JWT で PATCH /api/tasks/{Tenant B のタスクID}/status404
    - X-Tenant-Id ヘッダ詐称(自分が所属しないテナント ID 指定)→ 403
  • ./gradlew :webapi:bootRun で local 環境起動成功(Phase 1 Setup 1 の Docker Compose と連携、env vars 注入)
  • OpenAPI Lint(spectral lint api/openapi.yaml)無警告 — CI 統合は ci(openapi): CI に OpenAPI lint(Spectral)を組み込む #204 で別途対応

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/backendJava / Spring バックエンド実装変更area/dbFlyway マイグレーション / スキーマ / DDL 変更priority/p0Critical / Blocker。本番影響あり、または他作業がブロックされるtask-type:design規約・ADR・設計書の追加/変更タスクtracking親 / トラッキング Issue。複数の子 Issue を集約(例: #120, #121)

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions