Welcome
Sign in to start your session
Login
Login
[app info]
Brief app info: ENV: [DEV] commitId: 0ad9bbe2bc9f5e41f27021b475724711ce8c07c0 branch: develop build date: 2026-09-09T11:48:52Z build version: 2026.08.06.1-SNAPSHOT commit message: #38344 Streamer status and encrypted player context for the streaming platform (MVP) Iteration 1 of the streaming hand-off: a player applies for the streamer status from the site, a back-office operator approves / rejects / revokes / resets it, and an approved streamer gets the external platform URL with the player context (id, nickname, issuedAt, expiresAt) encrypted with AES-256-GCM under a shared secret. The S2S token exchange and stream-liveness polling stay on the roadmap. online-commons: StreamerStatus (PersistedEnum) + converter, PlayerStreamerStatus entity/repository, PlayerAuditType.CHANGE_STREAMER_STATUS(21), STREAMING_PLATFORM_URL default, and AesGcmCipher - the first symmetric encryption in the codebase (SecurityUtils/DigestUtils only hash and sign), a static utility next to them: AES-256-GCM under SHA-256(secret), random 12-byte IV, tag appended, base64url without padding, SecurityException on any failure. db-initialization: player_streamer_status table and the audit type row. site-api: `streaming` group in the profile, POST /api/v1/player/streaming/ {request,launch-url}, StreamingLaunchContextCipher (JSON contract of the context over AesGcmCipher, own mapper with epoch-second timestamps), error codes 4045-4048/5004, streaming.platform.* properties (blank secret or URL switches the feature off). admin: streamer block in the player card (Date getters: f:convertDateTime cannot render Instant), "Streamer status" filter in the players search via a subquery, audit through StreamerStatusAdminService. Tests: a unit test per new class (JUnit 5 + Mockito, no Spring context) plus black-box ITs - site-api profile/request/launch-url/context decryption/ refusals/401, admin state machine/audit/players-search filter/player card and search page rendering. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> UPTIME: 0d 1h 9m 29s Git log: e7884... | 2026-09-08T15:46:44+03:00 | Rodion | #38392 QA: drive the game-roundtrip spin until ... acfbf... | 2026-09-08T14:15:44+03:00 | Rodion | #38387 QA: match release tournaments-core jar i... b5855... | 2026-09-08T12:52:14+03:00 | Rodion | #38385 Tolerate old Redis sessions across the S... a929d... | 2026-09-08T10:34:22+03:00 | Rodion | #37354 Align the chain-builder hint test with t... c574c... | 2026-09-08T09:30:40+03:00 | Rodion | #38371 Merge branch 'fix/38371' into develop fd47a... | 2026-09-07T19:24:05+03:00 | Rodion | #38371 Make KafkaRecoveryService the single poi... 0642c... | 2026-09-07T17:37:06+02:00 | nikita | #37354 5dd5c... | 2026-09-07T16:48:32+02:00 | nikita | #37354 5eefb... | 2026-09-07T16:15:54+02:00 | nikita | #37354 da607... | 2026-09-07T15:21:56+02:00 | nikita | #37354
copy to clipboard