Skip to content

fix(config): 修复 PostgreSQL 凭证编码与配置重载 - #1364

Open
MakerFlyFly wants to merge 2 commits into
TencentCloud:developfrom
MakerFlyFly:codex/h09-postgres-credentials
Open

MakerFlyFly wants to merge 2 commits into
TencentCloud:developfrom
MakerFlyFly:codex/h09-postgres-credentials

Conversation

@MakerFlyFly

@MakerFlyFly MakerFlyFly commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

概要

关联 Issue:#1362

PostgreSQL 控制面使用包含空格的凭证时无法认证;输入正确编码的 URL 后,向导保存配置又可能把用户名和密码重复编码,导致立即绑定和后续启动失败。

此修改将生成 URI 的凭证编码改为 quote(value, safe=""),并在解析输入 URL 时使用 unquote() 解码用户名和密码一次。例如,my pass 正确编码为 my%20pass;Audit%40123 保存为原始密码 Audit@123,重载后不会变成 Audit%2540123。

生产代码仅修改 src/octop/config.py 的 5 行。原始 URL、查询参数、配置优先级、公共接口和依赖保持现状;补充凭证解析和保存重载回归测试,并在现有 Unreleased → 修复 段追加一条变更记录。工作区存储 DSN(PR #1010)不在本次修改范围。

已被旧逻辑错误保存的离散凭证仍需重新填写原始值;本次不尝试自动解码已有字段,以保留字面量 %40 等合法凭证。

目标分支

  • develop(普通修复)

  • main(发布或紧急修复)

重基后的基线:11f6d3fb228d2fbcd6446f04c5b8d8b68b4c162e。保持一个原子提交。

变更类型

  • 缺陷修复

  • 新功能

  • 不兼容变更

验证

  • 对 develop 11f6d3fb228d2fbcd6446f04c5b8d8b68b4c162e 完成 rebase;CHANGELOG 条目接入当前 Unreleased 的「### 修复」,保留全部上游发布记录。
  • 原修复代码及测试文件的 Git blob 与上一版完全一致;每个 PR 保留一个原子提交。
  • uv sync --locked 与 npm ci 通过,依赖声明与锁文件采用上游最新内容。
  • make all PYTEST_JOBS=4:4245 passed, 145 skipped, 18 warnings in 508.99s (0:08:28);Ruff 与 mypy 通过。
  • 仓库实际 .githooks/pre-commit:4246 passed, 179 skipped, 18 warnings in 797.43s (0:13:17);TypeScript 与 dashboard Vite/PWA 构建通过。
  • 针对性回归检查:71 passed, 2 warnings in 11.13s。

本轮检查在 Windows / Python 3.12.13 下运行,采用 UTF-8,并将测试临时目录隔离到审计目录。

GitHub Actions 状态以本次提交的工作流为准;本地验证结果不代表远端 CI 已通过。

保留既有实测证据:Windows PostgreSQL 16.15 / SCRAM 的 15 组凭证矩阵(90 次真实连接)及 5 组配置向导/新进程重启检查通过。本轮未重复该原生数据库实测。

检查清单

  • 添加或更新回归测试

  • 更新 CHANGELOG.md,保留上游所有条目

  • 修复不涉及数据库迁移、API 或依赖变更

  • 重基后的 make all 本地通过

  • 重基后的提交 hook 和前端构建通过

@jubaoliang

Copy link
Copy Markdown
Collaborator

分诊:问题真实(quote_plus 把空格变成 +,解析侧又不 unquote)。实现方向对。

请 rebase 到最新 develop,解决 CHANGELOG 冲突(接到当前 Unreleased「### 修复」),再跑 CI。已错误写入 config.json 的密码不会自动修复,这点可以接受。

@MakerFlyFly
MakerFlyFly force-pushed the codex/h09-postgres-credentials branch from 3a62dac to eba2486 Compare October 8, 2026 02:47

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants