Skip to content

Commit 604ae98

Browse files
committed
docs: prepare v1.16.0 release
1 parent f1f7382 commit 604ae98

2 files changed

Lines changed: 60 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,43 @@ ReadMates는 Git tag와 GitHub Releases를 함께 사용합니다. 이 파일은
99
### Highlights
1010

1111
- 다음 릴리즈 후보 변경을 이 섹션에 기록합니다.
12+
13+
## v1.16.0 - 2026-06-30
14+
15+
### Highlights
16+
1217
- **frontend observability v2:** Browser route-load, runtime-error, and API-failure signals now flow through a same-origin BFF telemetry endpoint into Spring Micrometer metrics and Grafana docs, using normalized route patterns and low-cardinality labels only.
13-
- **platform admin workspace switcher:** 플랫폼 관리자 헤더에 현재 계정의 멤버/호스트 워크스페이스로 이동하는 `내 공간` 메뉴를 추가하고, 다른 계정 로그인을 선택하면 현재 BFF 세션 정리 후 admin return path로 이동합니다. Frontend-only UX 변경이며 server API contract, DB migration, OAuth scope, auth token format, deploy workflow behavior는 변경하지 않습니다.
14-
- **production observability bootstrap:** OCI compose 관측성 stack에 Grafana provisioning/runbook closure를 맞추고, Alertmanager/Grafana env placeholder와 public-release scan 문서를 정리했습니다. Operator-facing deploy/runbook change이며 DB migration, public API contract, auth/BFF token, OAuth scope, Pages Functions behavior, frontend route behavior는 변경하지 않습니다.
18+
- **production observability bootstrap:** OCI compose observability provisioning now has production-shaped Grafana/Prometheus wiring, public-safe dummy env fallbacks, and release/runbook closure so operators can verify dashboards and rules without committing private deployment state.
19+
- **platform admin workspace switcher:** 플랫폼 관리자 헤더에서 현재 계정의 멤버/호스트 워크스페이스로 이동하는 `내 공간` 메뉴를 사용할 수 있고, 다른 계정 로그인은 현재 BFF 세션 정리 후 admin return path로 돌아갑니다.
20+
21+
### Added
22+
23+
- Frontend runtime telemetry records SPA route load duration, route-boundary/runtime errors, and frontend-observed API failures through `/api/bff/observability/frontend-events`.
24+
- Spring records the new frontend telemetry as `readmates.frontend.*` Micrometer metrics and exposes SLO catalog entries for frontend route-load p95 and runtime error ratio.
25+
- Grafana dashboard source `ops/grafana/dashboards/frontend-runtime.json` tracks route load p95, runtime errors, API failures, and dropped frontend telemetry.
26+
- OCI observability deployment helpers now include Grafana provisioning and Prometheus datasource/dashboard wiring for the committed dashboard set.
27+
- Platform admin shell UI now shows a workspace switcher for returning to member or host workspaces from admin context.
28+
29+
### Changed
30+
31+
- Frontend API failure handling now emits safe observability events after `ReadmatesApiError` conversion without exposing raw URLs, query strings, request/response bodies, cookies, tokens, emails, user identifiers, stack traces, club slugs, or deployment identifiers.
32+
- The BFF telemetry sanitizer forwards safe dropped-event reasons to Spring so invalid browser telemetry increments `readmates.frontend.observability.dropped` instead of being silently lost at the edge.
33+
- Observability runbooks, dashboard docs, metrics catalog, SLO docs, and release-readiness notes now distinguish local provisioning evidence from production scrape/dashboard evidence.
34+
35+
### Deployment Notes
36+
37+
- Minor release. No Flyway migration is included.
38+
- Server runtime code changed for additive frontend observability intake and Micrometer metrics. Deploy the backend image after `Deploy Server Image` promotes `ghcr.io/<owner>/<repo>/readmates-server:v1.16.0`.
39+
- Frontend runtime and Pages Functions changed. `Deploy Front` must succeed for tag `v1.16.0` before final browser-facing smoke is considered complete.
40+
- Public API product contracts, OAuth scopes, auth cookie format, BFF secret format, and deployment workflow triggers are unchanged. The new telemetry endpoint is a fail-open same-origin side path.
41+
- Completion order: push `main`, push annotated tag `v1.16.0`, confirm `Deploy Front` and `Deploy Server Image`, promote OCI Compose backend to the same image tag, create the GitHub Release, then run sanitized BFF/OAuth/frontend-observability smoke checks and production dashboard scrape checks.
42+
43+
### Verification
44+
45+
- Local merged-main verification (2026-06-30): `git diff --check -- front server ops docs CHANGELOG.md`, `npx --yes pnpm@10.33.0 --dir front lint`, `npx --yes pnpm@10.33.0 --dir front test`, `npx --yes pnpm@10.33.0 --dir front build`, `npx --yes pnpm@10.33.0 --dir front test:e2e`, `./server/gradlew -p server check architectureTest`, `./scripts/lint-grafana-dashboards.sh`, `./scripts/validate-prometheus-rules.sh`, `./scripts/build-public-release-candidate.sh`, and `./scripts/public-release-check.sh .tmp/public-release-candidate` passed.
46+
- Focused observability verification (2026-06-30): frontend observability client/contracts/BFF tests, route observability tests, `ReadmatesApiError` API-failure tests, Spring frontend observability controller/service/metrics tests, SLO catalog docs consistency, Grafana dashboard lint, Prometheus rule validation, and preview Lighthouse public smoke passed.
47+
- Public safety: clean public release candidate passed gitleaks and scanner checks. Telemetry labels are normalized route patterns, enum-like API groups, status classes, safe error codes, severity, navigation type, result, and allowlisted dropped reasons only.
48+
- Skipped before tag push: tag-triggered `Deploy Front`, tag-triggered `Deploy Server Image`, OCI Compose backend promotion, GitHub Release publication, production scrape/dashboard data confirmation, external synthetic monitor setup, production OAuth/provider-console checks, and post-deploy smoke. These require pushed `main`/tag or production operator access and are release-operation evidence after publication.
1549

1650
## v1.15.1 - 2026-06-29
1751

docs/development/release-readiness-review.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,30 @@
22

33
남은 리스크, release readiness, merge 후 안전성, ship 가능 여부를 확인할 때 사용하는 체크리스트입니다. 구현 계획의 완료 여부와 테스트 통과 여부만으로 release risk가 닫혔다고 판단하지 않습니다.
44

5+
## 2026-06-30 v1.16.0 pre-release readiness
6+
7+
- Scope reviewed: `v1.15.1..HEAD` on local `main`, covering frontend runtime observability v2, same-origin BFF telemetry intake, Spring frontend observability metrics/SLOs, frontend-runtime Grafana dashboard, production observability bootstrap docs/scripts, and the platform-admin workspace switcher.
8+
- Release classification: minor release. The release adds operator observability and frontend/admin UX behavior, plus additive server telemetry intake. No Flyway migration, OAuth scope change, auth cookie format change, BFF secret format change, or deploy workflow trigger change is included.
9+
- Deployment impact: tag push must run both `Deploy Front` and `Deploy Server Image`. Because server runtime code and Pages Functions both changed, release completion requires OCI Compose backend promotion to `ghcr.io/<owner>/<repo>/readmates-server:v1.16.0` after the server image workflow promotes that tag.
10+
- Public safety: telemetry remains a fail-open side path and uses only normalized route patterns, enum-like API groups, status classes, safe error codes, severity/result/navigation type, and allowlisted dropped reasons. Raw URL, query string, club slug value, UUID, email, display name, member/user identifier, stack trace, request/response body, cookie, OAuth code, token, private domain, OCID, VM IP, and deployment state are prohibited.
11+
- Local merged-main verification before publication:
12+
- `git diff --check -- front server ops docs CHANGELOG.md` - pass.
13+
- `npx --yes pnpm@10.33.0 --dir front lint` - pass.
14+
- `npx --yes pnpm@10.33.0 --dir front test` - pass, 164 files and 1306 tests.
15+
- `npx --yes pnpm@10.33.0 --dir front build` - pass.
16+
- `npx --yes pnpm@10.33.0 --dir front test:e2e` - pass, 68 Playwright tests.
17+
- `./server/gradlew -p server check architectureTest` - pass.
18+
- `./scripts/lint-grafana-dashboards.sh` - pass.
19+
- `./scripts/validate-prometheus-rules.sh` - pass.
20+
- `./scripts/build-public-release-candidate.sh` and `./scripts/public-release-check.sh .tmp/public-release-candidate` - pass; gitleaks reported no leaks.
21+
- `graphify update .` plus freshness audit - pass for commit `f1f7382f`.
22+
- Additional local observability evidence:
23+
- `npx --yes pnpm@10.33.0 --dir front test -- observability route-observability readmates-fetch frontend-observability-bff` - pass.
24+
- `./server/gradlew -p server unitTest --tests 'com.readmates.observability.*'` - pass.
25+
- `npx --yes pnpm@10.33.0 --dir front lighthouse:preview -- --group public --limit 2` - pass; route count 2, failed route count 0.
26+
- Skipped before publication: tag-triggered `Deploy Front`, tag-triggered `Deploy Server Image`, GitHub Release creation, OCI Compose backend promotion, production scrape/dashboard data confirmation, external synthetic monitor setup, production OAuth/provider-console checks, and post-deploy smoke. These require pushed `main`/tag or production operator access.
27+
- Residual risk: no known local release-readiness blocker remains. Release-operation risk remains until the pushed tag workflows pass, the backend is promoted to the same image tag, GitHub Release exists, BFF/OAuth smoke passes, and production Prometheus/Grafana shows the new frontend telemetry metrics after real browser traffic or an explicit production telemetry smoke.
28+
529
## 2026-06-30 frontend observability v2 closeout
630

731
- Scope reviewed: frontend runtime telemetry contracts, BFF telemetry intake, Spring `readmates.frontend.*` Micrometer metrics, Grafana dashboard JSON, and observability docs.

0 commit comments

Comments
 (0)