Files
lijiaoqiao/platform-token-runtime
Your Name 687c4535f8 fix: P0-1 RateLimiter并发写安全 + P0-2工单操作错误码区分 + P1 rows.Close修复
P0-1 (limits.go): Allow()方法改为全程使用写锁保护counters map读写,避免RLock写入时的data race
P0-2 (ticket_workflow.go+ticket_handler.go): Assign/Resolve/Close操作先查询ticket存在性和状态,返回明确的CS_TICKET_4001/CS_TKT_4002/CS_TICKET_4092/CS_TICKET_4093错误码,handler根据错误前缀路由HTTP状态码
P1-1 (ticket_store.go): 移除GetStats中3处手动rows.Close(),只保留defer Close()
2026-05-01 20:56:25 +08:00
..

Platform Token Runtime

token 生命周期、introspection 与审计查询服务。

当前真实状态

  • 服务入口是 cmd/platform-token-runtime/main.go,装配逻辑收口在 internal/app/bootstrap.go
  • 当前可用接口包括 issuerefreshrevokeintrospectaudit-events
  • platform-token-runtime 是唯一 token authority对外 introspection 仅暴露 canonical principal 最小字段边界,不在其他服务中复制 authority 语义。
  • TOKEN_RUNTIME_ENV=dev 且未显式注入 store 时bootstrap 会自动使用内存 runtime store 与内存 audit store。
  • TOKEN_RUNTIME_ENV=stagingTOKEN_RUNTIME_ENV=prod 时,支持通过 TOKEN_RUNTIME_DATABASE_URL 自动装配 PostgreSQL runtime store 与 audit store未提供 DSN 时仍会快速失败,而不是回退到内存实现。
  • audit-events 当前始终保持可查询接口语义;默认内存 audit store 会返回真实事件,未提供查询能力的自定义 emitter 会返回空结果而不是 501 占位响应。

设计边界

  1. 仅支持 Authorization: Bearer <token> 入站。
  2. 外部 query keykeyapi_keytoken)一律拒绝。
  3. 不在任何响应或审计字段中输出 access token 明文。
  4. canonical principal 最小字段边界为 token_idsubject_idtenant_idrolescopeissued_atexpires_atstatus;若后续扩展字段,必须同步更新 DDL、OpenAPI、存储模型与审计字段。

本地运行

cd "/home/long/project/立交桥/platform-token-runtime"
go run ./cmd/platform-token-runtime

默认监听 :18081。可通过以下环境变量覆盖:

export TOKEN_RUNTIME_ADDR=":18081"
export TOKEN_RUNTIME_ENV="dev"

PostgreSQL 模式:

export TOKEN_RUNTIME_ENV="prod"
export TOKEN_RUNTIME_DATABASE_URL="postgres://postgres:secret@127.0.0.1:5432/token_runtime?sslmode=disable"
go run ./cmd/platform-token-runtime

验证命令

模块级验证:

cd "/home/long/project/立交桥/platform-token-runtime"
GOCACHE=/tmp/lijiaoqiao-go-cache-platform-token-runtime go test ./...

仓库级统一验证:

cd "/home/long/project/立交桥"
bash scripts/ci/repo_integrity_check.sh

关键文件

  • internal/app/bootstrap.go环境判断、runtime store / audit store 装配。
  • internal/httpapi/token_api.goHTTP 接口与审计查询输出。
  • internal/auth/service/runtime_store.go:内存 runtime store。
  • internal/auth/service/audit_store.go:内存 audit store 与审计查询。
  • internal/auth/service/postgres_runtime_store.goPostgreSQL runtime store。
  • internal/auth/service/postgres_audit_store.goPostgreSQL audit store。