feat: 重命名项目为Boardware Genius并添加运行时环境同步功能
- 将项目品牌从nanobot重命名为Boardware Genius,更新所有相关文档、注释和日志输出 - 在web服务器中添加运行时环境变量同步功能,支持授权和后端身份配置 - 更新create-instance脚本以生成运行时环境文件 - 添加实例后端绑定功能到部署控制服务 - 修改入口脚本以加载运行时环境变量 - 更新前端和认证门户的相关描述文本
This commit is contained in:
@ -153,6 +153,28 @@ async def _call_instance_api(base_url: str, path: str, payload: dict[str, Any])
|
||||
)
|
||||
|
||||
|
||||
async def _sync_instance_backend_binding(username: str, response: dict[str, Any]) -> dict[str, Any] | None:
|
||||
local_backend = _as_object(response.get("local_backend"))
|
||||
backend_id = _as_string(local_backend.get("backend_id"))
|
||||
if not username.strip() or not backend_id:
|
||||
return None
|
||||
|
||||
payload: dict[str, Any] = {
|
||||
"username": username.strip(),
|
||||
"backend_id": backend_id,
|
||||
"authz_base_url": ISSUER,
|
||||
}
|
||||
backend_name = _as_string(local_backend.get("name"))
|
||||
if backend_name:
|
||||
payload["backend_name"] = backend_name
|
||||
|
||||
try:
|
||||
return await _call_deploy_control("/api/instances/bind-backend", payload)
|
||||
except HTTPException:
|
||||
# Registration should not fail only because registry metadata sync failed.
|
||||
return None
|
||||
|
||||
|
||||
def _normalize_portal_token_response(
|
||||
response: dict[str, Any],
|
||||
routing: dict[str, Any],
|
||||
@ -438,6 +460,11 @@ async def portal_register(req: PortalRegisterRequest) -> dict[str, Any]:
|
||||
instance_payload["backend_name"] = backend_name
|
||||
|
||||
response = await _call_instance_api(api_base_url, "/api/auth/register", instance_payload)
|
||||
bound_instance = await _sync_instance_backend_binding(username, response)
|
||||
if isinstance(bound_instance, dict):
|
||||
synced_record = _as_object(bound_instance.get("instance"))
|
||||
if synced_record:
|
||||
routing["instance"] = synced_record
|
||||
return _normalize_portal_token_response(response, routing)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user