pggomtm 是 PostgreSQL 18 OAuth validator Rust/pgrx module。本仓库是源码、测试、PostgreSQL image 和 release 的唯一权威;公开 main 是唯一 CI/CD 源码线,但不代表 stable。
- PostgreSQL 通过
oauth_validator_libraries加载pggomtm.so。 - Module 导出
PG_MODULE_MAGIC与_PG_oauth_validator_module_init,不是 SQL extension,不需要 control、versioned SQL 或CREATE EXTENSION。 - 每个新 OAuth backend 从
/etc/pggomtm/validator.json和/etc/pggomtm/jwks.json建立只读离线 snapshot,不执行 HTTP、DNS、SQL、SPI 或在线 introspection。 - Validator 只接受 ES256 database JWT,校验唯一 issuer/audience、
databasescope、30 至 300 秒 TTL、closed profile-role 和版本化 identity。 - 认证失败保持 fail closed,服务端只记录稳定 reason-code,不记录 token、JWKS、配置或身份原文。
详细运行契约见:
源码面向 PostgreSQL 18 major。每次 GitHub Actions run 使用 PG18 稳定通道解析当前最新 minor,并让 ABI 生成、真实 PostgreSQL 测试和最终 image 使用同一解析结果。跨 PostgreSQL major 需要显式源码、feature、路径和 ABI 变更。
当前平台边界是 Linux amd64、Debian bookworm/glibc 和 Rust stable。pg18 Cargo feature表示目标 major,不批准任何未经过当次远端测试的制品。
.github/workflows/native-ci.yml负责依赖解析、Rustfmt、Clippy、Cargo tests、C/Rust ABI、真实 PG18 OAuth、production module 和最终 image 验证。根 Dockerfile 只构建 production image,不承载测试或扫描器。
维护者和 Agent 可以把范围明确的 commit 直接非 force 推送到 main。失败 commit 保留并通过后续 commit 修复;失败 run 不得发布 candidate 或 stable。
本地工作区只用于源码/OpenSpec编辑、Git操作和只读调查。不得在本地运行 Cargo、原生编译、Docker build/run、临时 PostgreSQL 或 image 检查。
查询远端结果:
gh run list --repo codeh007/mtmpg --workflow native-ci.yml --branch main --limit 5
gh run view <run-id> --repo codeh007/mtmpg --log-failedmtmpg 使用 SemVer 作为用户可见身份:
- Candidate tag:
ghcr.io/codeh007/mtmpg-postgres:<version>-rc.<run> - Stable tag:
ghcr.io/codeh007/mtmpg-postgres:<version> latest:只指向最近一次 stable
CI 在每次 run 内解析实际 Cargo lockfile、toolchain、PG18 minor 和 base digest,并把它们与 source、module、OCI digest、SBOM、provenance 和 attestation 一起记录。Gomtmui 按 candidate SemVer 验收,consumer evidence 记录实际 OCI digest;stable promotion只为同一已验收 digest增加稳定tag和immutable GitHub Release,不重建image。
当前可部署版本以公开GHCR、GitHub Release和对应attestation为准。发布进度由 mtmpg #1 和 active OpenSpec change 跟踪。