1.4 KiB
1.4 KiB
Data Model: Hub 配置凭证字段
HubConfig
- Fields:
Name(string, required, unique)Domain(string, required, Host header used for路由)Upstream(URL, required)Proxy(URL, optional)Username(string, optional, may be empty)Password(string, optional, may be empty)Type(enum: docker | npm | go, required)CacheTTL(duration override, optional)
- Relationships: 属于全局
Config,在运行期被HubRegistry索引。 - Validation:
Username与Password要么同时缺省要么同时提供;Type仅允许受支持的值。
GlobalConfig
- Fields:
ListenPort(int, required, 1-65535)- 现有全局字段(LogLevel、StoragePath、CacheTTL、MaxRetries 等)保持不变
- Relationships: CLI 仅在
ListenPort启动一次 Fiber 服务;HubRegistry 使用该端口验证 Host:port。
AuthProfile (runtime)
- Fields:
HubNameAuthMode(anonymous | credentialed)LastAttempttimestampStatus(success | failed)
- Purpose: 供日志/metrics 输出,帮助追踪凭证是否生效。
- State transitions: anonymous→credentialed 当检测到配置凭证;credentialed→anonymous 当凭证校验失败且被禁用(未来扩展)。
HubType (enum)
- Values: docker, npm, go(后续 apt/yum/composer 等)
- Usage: 决定请求头/日志字段/未来仓库特定策略;存储于 HubConfig。