Skip to content

docs: JST 全層統一(設計規約 §2.4 / コーディング規約 §12.1 反転 + infrastructure-plan に JVM/ECS TZ 明文化) #265

Description

@win2cot

背景

リポ内に 「JVM・CI・DB は Asia/Tokyo」だが「API レスポンスだけ UTC(Z)に正規化」 という非対称な方針が混在しており、PR #135 で確定したコーディング規約 §12.1 と docs/architecture/infrastructure-plan.mdserverTimezone=UTC 記述が矛盾している(規約 §12.1 で「古い serverTimezone パラメータは使わない」と明記しているが、infra plan は古い書式)。

「日本圏前提・全層 JST 統一」を方針として確定したため、規約・infrastructure-plan・JVM 起動オプションをまとめて改訂する。

方針

1. 設計規約 §2.4 / コーディング規約 §12.1 を JST に反転

  • API レスポンスの timestamp は JST(+09:00) で返す(Z 表記は禁止)
  • application.ymlspring.jackson.time-zone: Asia/Tokyo を設定
  • spring.jackson.serialization.write-dates-as-timestamps: false は維持
  • Java 側は OffsetDateTimeZoneOffset.of("+09:00") または ZoneId.of("Asia/Tokyo") で揃えてシリアライズ
  • Instant(UTC 軸)を直接シリアライズする用途は避け、JSON 表現上は必ず +09:00 に揃える

2. infrastructure-plan の ECS Task 定義を JST に統一

  • 既存 DATASOURCE_URL から serverTimezone=UTC を撤去
  • 規約 §12.1 と同じ書式に置換:connectionTimeZone=SERVER&forceConnectionTimeZoneToSession=true
  • ECS Task env に TZ=Asia/Tokyo を追加(OS 経由で JVM デフォルト TZ を JST に)
  • JVM 起動オプションに -Duser.timezone=Asia/Tokyo を追加(JAVA_TOOL_OPTIONS 等で注入、二重強制)
  • ベースイメージ / OS シンボリックリンク差異に依存しない

3. コーディング規約 §12.1 末尾に JVM TZ 強制への参照を追記

「JVM のデフォルト TZ は Asia/Tokyo 固定(infrastructure-plan.md 参照)」を 1 行追加。

スコープ(同一 PR で改訂する 3 ファイル)

  • docs/specs/設計規約.md(§2.4 反転)
  • docs/specs/コーディング規約.md(§12.1 反転 + JVM TZ 参照追加)
  • docs/architecture/infrastructure-plan.md(DATASOURCE_URL 修正 + ECS env / JVM オプション追記)

派生(本 Issue 起票と同時に本文書き換え、別 PR 不要)

完了条件

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/backendJava / Spring バックエンド実装変更area/docsdocs/ 配下のドキュメント(設計書・規約・ADR 等)変更area/infraAWS インフラ(ECS Fargate / RDS / Keycloak / IAM)変更priority/p1High。現スプリント内で完了必須task-type:design規約・ADR・設計書の追加/変更タスク

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions