Files
MAcode/tcs-iptv/cmd/console-bff/main.go
T
selfrelease 8db9d33694 feat(phase3): 备案对接/全国统计/号段管理/BFF安全化/链合约源码
- A.1 备案对接: BindFiling/QueryFiling 关联网标号+备案号
- A.2 监管上报: DailyRegulatoryReport 日报
- B.1 号段管理: ListSegments + /admin/segments
- C.1/C.2 全国统计按省聚合 + 跨省协同(单一可信源天然联动)
- F.2 全国监管大屏: NationalStats(按省/类目/状态)
- B(遗留) 监管大屏BFF: internal/bff + cmd/console-bff, 密钥仅存后端浏览器只用会话令牌
- G 真实链合约源码: contracts/tcs_registry/registry.go (ChainMaker Go)
- 新增9个API+BFF服务; 5项新测试; 端到端BFF验证
- D/E(压测/等保/HSM)/F.1(标准)/真实链部署 标注需外部环境
2026-06-14 17:53:12 +08:00

43 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package main
import (
"log"
"os"
"github.com/gin-gonic/gin"
"github.com/tcs-iptv/tcs/internal/bff"
"github.com/tcs-iptv/tcs/internal/httpx"
)
// 监管控制台 BFF(三期 B):浏览器只拿会话令牌,密钥仅存后端。
func main() {
apiBase := getenv("TCS_API_BASE", "http://localhost:8080")
addr := getenv("TCS_BFF_ADDR", ":8090")
b := bff.New(apiBase)
// 凭证从环境/Vault 加载(此处示例;生产严禁硬编码)
b.SetCred("regulator", getenv("TCS_AK_REGULATOR", "ak-regulator"), getenv("TCS_SK_REGULATOR", "sk-regulator"))
b.SetCred("reviewer", getenv("TCS_AK_REVIEWER", "ak-reviewer"), getenv("TCS_SK_REVIEWER", "sk-reviewer"))
// 控制台用户(生产接 SSO/LDAP + MFA
b.AddUser("admin", getenv("TCS_ADMIN_PASS", "admin123"), "regulator")
b.AddUser("reviewer", getenv("TCS_REVIEWER_PASS", "review123"), "reviewer")
r := gin.Default()
httpx.Health(r, "console-bff")
r.POST("/bff/login", b.Login)
authed := r.Group("/bff", b.AuthMiddleware())
authed.Any("/api/*path", b.Proxy) // 浏览器 → BFF → (HMAC) → api-svc
log.Printf("console-bff listening on %s (proxy → %s)", addr, apiBase)
if err := r.Run(addr); err != nil {
log.Fatalf("console-bff failed: %v", err)
}
}
func getenv(k, def string) string {
if v := os.Getenv(k); v != "" {
return v
}
return def
}