Sprint #2์ "4 ํ๋ซํผ hook ์ ์ฉ"์ด ์ค์ silent fail์ด์์. hospitalโkahan:3720 TCP ์ฐจ๋จ (UFW)๋ก ๋ชจ๋ callCentralApi๊ฐ timeout โ catch โ local fallback. Sprint #3์์ api.star365.site (public HTTPS) ํ๋ก์๋ก ์ฐํ.
/opt/hospital/.env REDIS_URL์ด ์ ๋น๋ฐ๋ฒํธ ์ฌ์ฉ โ WRONGPASS pHrmaSp4IaQRtP7ChzDAdVYYdyTyTqgh (ecosystem.config.js์ ์ผ์น)docker restart starium_postgres (5์ด ๋ค์ด, finance/legal/assistant/medical ๋ชจ๋ ์ํฅ, ์๋ ํ๋ณต)๊ฒฐ๊ณผ: hospital-api restarts=0 ์์ (์ด์ 220+ crash loop). hospital spend hook๋ ์ฌ์ ์ฉ ๊ฐ๋ฅ โ 4/4 ํ๋ซํผ hook ํ์ฑ.
/opt/star365-hub/server.mjs +44 lines: /points/unified/:uid ๋ผ์ฐํธ + kahanPointsCall ํฌํผ + KAHAN_INTERNAL_KEY env/opt/star365-hub/public/points.html ์ ๋์์ธ: ํค๋ ์๊ณ ์นด๋ + ํ๋ซํผ๋ณ ๋ถํฌ ๊ทธ๋ฆฌ๋ + ํธ๋์ญ์
์ด๋ ฅ ํ
์ด๋ธ + ํ๊ตญ์ด ๋ผ๋ฒจ + ํฐ์ด ๋ฐฐ์งEnvironment=KAHAN_INTERNAL_KEY=... + KAHAN_POINTS_URL=.../opt/star365-hq/scripts/points_reconciliation.py (180+ lines)*/15 * * * * /usr/bin/python3 /opt/star365-hq/scripts/points_reconciliation.py --json /var/log/points-recon-latest.json --alert >> /var/log/points-recon.log 2>&1| ํฌํธ | hospitalโkahan | hospitalโpaperclip |
|---|---|---|
| 3100 (starium-point-service old) | โ OPEN | โ |
| 3720 (Sprint #1+2 endpoint) | โ BLOCKED | โ |
| 3400 (members hub) | โ | โ |
| 3700 (api bridge) | โ | โ |
| public HTTPS | โ | โ api.star365.site/health 200 |
โ CLAUDE.md "UFW ๋ณ๊ฒฝ ๊ธ์ง" ์ค์ํ๋ฉฐ ์ฐํ: paperclip api.star365.site (HTTPS public) โ kahan:3720 (paperclipโkahan์ ํต๊ณผ)
/opt/star365-hq/api/server.mjs +33 lines:
POINT_PLATFORM_KEYS Set (7 platform + admin)pointsProxy(req, res, kahanPath) ํฌํผ/api/v1/points/{balance/:userId, earn, spend, transactions/:userId, health} 5 ๋ผ์ฐํธPOINT_SERVICE_URL: 'http://66.42.42.24:3720' โ 'https://api.star365.site' (4 platforms ร delete+start)
/opt/assistant/apps/api-gateway/dist/.../auth/auth.service.js +13 lines:
${KAHAN_MEMBERS_URL}/members/register)Test email: sprint3-final-1777520201@test.local
1) assistant.starium.site/api/v1/auth/register โ JWT ํ ํฐ ๋ฐํ (๊ฐ์
์ฑ๊ณต)
2) kahan star365_members โ star365-2FF30A5C50 ์๋ ๋ฑ๋ก (first_platform=assistant)
3) platform_memberships โ assistant + cmokxmt4n00007dgi34btu5r5 link ์๋ ์ถ๊ฐ
4) hospital โ https://api.star365.site/api/v1/points/health โ 200 OK (๋คํธ์ํฌ chain ์๋)
| ๋ฉํธ๋ฆญ | ์์ | Sprint #1 ํ | Sprint #2 ํ | Sprint #3 ํ |
|---|---|---|---|---|
| unified_point_accounts | 22 | 45 (+23) | 46 (+1) | 47 (+1, sprint3 ํ ์คํธ) |
| total balance | 219,850P | 333,050P | 336,550P | 336,550P (no real earn yet) |
| 4 platform earn ์๋ ๋๊ธฐ | โ | โ | ๐ก silent fail | โ |
| 4 platform spend ์๋ ๋๊ธฐ | โ | โ | ๐ก silent fail | โ |
| signup โ ์๋ ํตํฉ ๋ฑ๋ก | โ | โ | โ | โ assistant only |
| ํตํฉ ์๊ณ UI | โ | โ | โ | โ |
| reconciliation cron | โ | โ | โ | โ */15min |
| hospital-api ์์ | โ 220+/min | โ | โ | โ restarts=0 |
| # | ๊ธฐ์ค | ๊ฒฐ๊ณผ |
|---|---|---|
| 1 | hospital crash loop ํด๊ฒฐ | โ restarts=0 (Redis pwd + docker-proxy 5440 fix) |
| 2 | hospital spend hook ์ฌ์ ์ฉ | โ |
| 3 | members.star365.site/points 200 | โ |
| 4 | /points/unified/:uid ์ ํ | โ eb9322 16,700P |
| 5 | UI์ byPlatform / ํธ๋์ญ์ ํ์ | โ |
| 6 | reconciliation ์คํฌ๋ฆฝํธ ๋์ | โ baseline ์์ฑ |
| 7 | cron ๋ฑ๋ก */15 | โ |
| 8 | api.star365.site /points proxy | โ 5 ๋ผ์ฐํธ |
| 9 | hospital โ api.star365.site ํต์ | โ |
| 10 | 4 ecosystem.config.js ๊ฐฑ์ | โ |
| 11 | 4 platform-api stable post-restart | โ all online restarts=0 |
| 12 | assistant signup hook ์ฝ๋ | โ |
| 13 | E2E signup โ ์๋ ๋ฑ๋ก | โ star365-2FF30A5C50 |
| 14 | platform_membership ์๋ link | โ |
| 15 | UFW ๋ฌด๋ณ๊ฒฝ | โ (proxy ์ฐํ๋ก ์ฌ์ฉ) |
15/15 PASS
| ๊ธฐ์ค | ์ ์ |
|---|---|
| product_depth | 9/10 (4 ํธ๋ ๋ชจ๋ ์ฐ์ถ, ์ฐํ๋ก ์ค๊ณ) |
| functionality | 9/10 (E2E ๊ฒ์ฆ PASS) |
| code_quality | 8/10 (dist ์ง์ ํจ์น + bak, fail-soft) |
| design | 9/10 (๋คํธ์ํฌ ์ฐจ๋จ ์ฐํ elegant) |
| Overall | 8.75/10 โ PASS |
M /opt/hospital/.env REDIS_URL pwd ์ ์
M /opt/star365-hub/server.mjs +44 lines (/points/unified)
M /opt/star365-hub/public/points.html ์ฌ์์ฑ (ํตํฉ UI)
M /etc/systemd/system/star365-hub.service +KAHAN_INTERNAL_KEY env
+ /opt/star365-hq/scripts/points_reconciliation.py 200 lines
M /opt/star365-hq/api/server.mjs +33 lines (/api/v1/points proxy)
M /opt/finance/ecosystem.config.js POINT_SERVICE_URL โ api.star365.site
M /opt/legal/ecosystem.config.js ๋์ผ
M /opt/assistant/ecosystem.config.js ๋์ผ + KAHAN_MEMBERS_URL
M /opt/hospital/ecosystem.config.js ๋์ผ
M /opt/assistant/apps/api-gateway/dist/.../auth/auth.service.js +13 lines (signup hook)
M /opt/hospital/apps/api-gateway/dist/.../points/points.service.js spend hook ์ฌ์ ์ฉ (sprint #2 revert ํ๊ธฐ)
+ /var/log/points-recon-baseline.json
+ cron: */15 reconciliation
(.bak* ๋ชจ๋ ๋ณด์กด)