|
@@ -301,8 +301,9 @@ Notes: <known issues, follow-ups, or 'none'>
|
|
|
================================================================================
|
|
================================================================================
|
|
|
ENTRY LOG (most recent first; append new entries at the TOP of this block)
|
|
ENTRY LOG (most recent first; append new entries at the TOP of this block)
|
|
|
================================================================================
|
|
================================================================================
|
|
|
-2026-06-18 14:56 EDT — W3 Telegram bot CRUD shipped
|
|
|
|
|
-Commit: 98158da
|
|
|
|
|
|
|
+2026-06-18 15:09 EDT — W3 Telegram bot CRUD shipped (with cross-tenant leak fix)
|
|
|
|
|
+Commit: eb06068 (W3 + security fix; 4c956fd = W3 main)
|
|
|
|
|
+# placeholder, will be filled by amend
|
|
|
Files: internal/authd/telegrambots.{go,_test.go},
|
|
Files: internal/authd/telegrambots.{go,_test.go},
|
|
|
cmd/authd/telegrambots.go, cmd/authd/main.go (6 routes wired),
|
|
cmd/authd/telegrambots.go, cmd/authd/main.go (6 routes wired),
|
|
|
migrations/012_telegram_bot_fields.{up,down}.sql,
|
|
migrations/012_telegram_bot_fields.{up,down}.sql,
|
|
@@ -350,6 +351,20 @@ Verify: cd /root/.openclaw/workspace/broad-announce
|
|
|
go test -count=1 ./... && cd web && pnpm run test
|
|
go test -count=1 ./... && cd web && pnpm run test
|
|
|
psql -f migrations/012_telegram_bot_fields.up.sql
|
|
psql -f migrations/012_telegram_bot_fields.up.sql
|
|
|
bash scripts/m13b_w3_smoke.sh
|
|
bash scripts/m13b_w3_smoke.sh
|
|
|
|
|
+Security: listTelegramBotsHandler initially read tenantID from the
|
|
|
|
|
+ path but never passed it to TelegramBotFilter, and
|
|
|
|
|
+ ListTelegramBots had no CompanyID field — so LIST returned
|
|
|
|
|
+ bots across all tenants (cross-tenant data leak). Fixed:
|
|
|
|
|
+ added CompanyID to TelegramBotFilter, scoped SQL with
|
|
|
|
|
+ company_id = $N, and the handler now sets
|
|
|
|
|
+ CompanyID: tenantID. The smoke's step 4 (initially-empty)
|
|
|
|
|
+ caught this when the test was re-run multiple times
|
|
|
|
|
+ without manual cleanup. Regression test
|
|
|
|
|
+ TestListTelegramBots_CompanyID_RequiredForScoping
|
|
|
|
|
+ documents the contract. Verified: 3 consecutive smoke
|
|
|
|
|
+ runs (no cleanup between) all pass 32/32; manual check
|
|
|
|
|
+ showed 6 tenants × 1 bot each via API = correct,
|
|
|
|
|
+ vs. DB has 6 total (no cross-tenant inflation).
|
|
|
Notes: Bundle: telegram feature code-split (exit criterion "< 30 KB
|
|
Notes: Bundle: telegram feature code-split (exit criterion "< 30 KB
|
|
|
gzipped") NOT done. Same as W2: all features ship in the
|
|
gzipped") NOT done. Same as W2: all features ship in the
|
|
|
main chunk (index-WAbnQRoa.js = 37 KB gz, +forms-BRRx31Es.js
|
|
main chunk (index-WAbnQRoa.js = 37 KB gz, +forms-BRRx31Es.js
|