noelorin
|
03c3d4d5bd
|
feat: realtime rooms via SSE (global rooms/events)
- roomHub: add globalSubs + subscribeRooms/broadcastRooms, emit create/update/delete on createRoom/setTarget/removeTarget/setDistribution/clearDistributions/removeRoom
- gateway: handleRoomsEvents SSE (event: rooms, sync + 25s ping)
- server: GET /api/rooms/events (room:list)
- sse.ts: subscribeRooms with onState (onopen/onerror)
- rooms.tsx: subscribe + 350ms debounce reload, live badge + lastSync
- config_test: align ValidateDistributors permissive semantics (cdn占位不阻断)
- docs: document /api/rooms/events in business-logic & design
|
2026-08-23 23:19:12 +08:00 |
noelorin
|
3256839d5d
|
chore: commit remaining worktree changes (room/playlist/docs/deps)
|
2026-08-23 16:18:28 +08:00 |
noelorin
|
46a6bd02d9
|
feat: 接入 sync-live 后端重构,前端全面对齐新协议与接口
- proto: live_sfu.proto -> sync_live.proto (synclive.v1/SyncLive),重生成 gen/sync_live.*
- module: example.com/live-sfu -> sync-live,go.mod/go.sum 同步
- 后端: 新增 internal/room (role/member/room/service/store/permission),manage 治理面 internal/server/manage.go,auth(jwt/policy) 与 gateway/server 重构,适配 token_type/access+refresh 与 HttpOnly Cookie
- 前端: types/api/auth/permissions 全量对齐,rooms 优先 query 分页、manage 创建,login 双模式+角色降级,用户管理封禁/解封,新增 /manage 5 Tab 治理页,主题与路由同步
- 构建: web 产物直出 internal/server/static,role 字符串序列化兼容数字,libsql 链接告警忽略
验证: web tsc --noEmit / go test / vite build / go build 常驻联调通过 (role:"creator" / manage/overview/rooms/query/create/members/refresh)
|
2026-08-21 00:31:51 +08:00 |
noelorin
|
115b34dcd3
|
feat(auth): 基于 casbin 的登录与 RBAC 权限系统
- 引入 github.com/casbin/casbin/v2 实现 RBAC (model.conf + policy.csv)
- 角色: admin/publisher/viewer/guest,资源: config/room/user/srs,动作: read/list/publish/subscribe/stop/watch/manage
- JWT 登录 (golang-jwt/jwt/v5,bcrypt 存储,data/users.json 持久化,种子用户 admin/publisher/viewer)
- 中间件: HTTP AuthorizeMiddleware + gRPC Unary/Stream 拦截器,支持 Authorization Bearer/Cookie/Query/X-Token
- 新增 API: POST /api/auth/login|register|logout, GET /api/auth/me|users|check, POST /api/auth/users/role (Casbin 鉴权)
- 保护业务路由: /api/publish/subscribe/stop/rooms/room/*/events/srs/streams 及媒体代理 /rtc/v1/* /api/cf/*
- gRPC 契约新增 Login/Register/GetMe/ListUsers/UpdateUserRole (api/live_sfu.proto + gen)
- 前端 login.html + app.js 自动附加 Authorization,SSE 通过 ?token 传递,未登录自动跳转
- 配置: JWT_SECRET/JWT_TTL/CASBIN_MODEL/CASBIN_POLICY/AUTH_USER_FILE/ALLOW_REGISTER
- 集成 TursoDB 持久化与测试覆盖 (auth_test.go)
|
2026-08-19 16:42:17 +08:00 |