You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+36-2Lines changed: 36 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,9 +9,43 @@ ReadMates는 Git tag와 GitHub Releases를 함께 사용합니다. 이 파일은
9
9
### Highlights
10
10
11
11
- 다음 릴리즈 후보 변경을 이 섹션에 기록합니다.
12
+
13
+
## v1.16.0 - 2026-06-30
14
+
15
+
### Highlights
16
+
12
17
-**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.
- 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.
Copy file name to clipboardExpand all lines: docs/development/release-readiness-review.md
+24Lines changed: 24 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,30 @@
2
2
3
3
남은 리스크, release readiness, merge 후 안전성, ship 가능 여부를 확인할 때 사용하는 체크리스트입니다. 구현 계획의 완료 여부와 테스트 통과 여부만으로 release risk가 닫혔다고 판단하지 않습니다.
4
4
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.
-`./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
+
5
29
## 2026-06-30 frontend observability v2 closeout
6
30
7
31
- Scope reviewed: frontend runtime telemetry contracts, BFF telemetry intake, Spring `readmates.frontend.*` Micrometer metrics, Grafana dashboard JSON, and observability docs.
0 commit comments