Foundry 用户认证、workspace 分享与结构化物料 API #5

Merged
Zayden-Jung merged 16 commits from codex/foundry-platform into main 2026-11-05 12:30:25 +00:00
Collaborator

为各项目提供邮箱注册验证与密码登录、Google/Slack OIDC 登录及资料预填、可配置 onboarding、workspace admin/editor/viewer、邀请和单物料授权、短链接及点击记录、结构化文章、混合卡片、画布布局、标签及创建/修改/个人打开时间排序。

所有业务资源和身份按项目隔离。物料及画布更新通过 If-Match 检测并发冲突。邮箱验证和重发使用事务锁保持状态一致,邮件通过带租约的队列发送。提供方登录验证浏览器状态,Slack 还校验 RS256、issuer、audience 和 nonce。旧 Google 账号、会话及固定前端回调继续有效。

验证已完成

  • ces-control 对当前提交 155ce28 的 push 和 pull_request 检查均成功。
  • 在隔离 PostgreSQL 中验证历史登录迁移、重复迁移及业务角色表权限。
  • API 集成覆盖邮箱注册、验证、登录与退出,onboarding 重试,角色保护,邀请限额、重放、撤销及点击记录,单物料授权和撤权,文章及混合卡片,画布关联可见性,全部排序和版本冲突。
  • Slack 签名、错误受众、过期、nonce、篡改及算法拒绝,完整回调、兑换和重放测试通过。
  • 真实部署机已通过 SMTP TLS 和认证检查。完整差异及 Git 忽略规则检查通过。

接入与交付说明

  • 尚未合并或部署,等待用户手动合并。部署会先执行带锁和校验和的事务迁移,再检查候选容器并切换路由。
  • Slack OAuth 应用已由用户创建并配置仓库 Secrets;回调为 https://api.foundry.entroia.com/auth/slack/callback。当前验证使用受控提供方响应。
  • 尚未进行实际收件人邮件验收。SMTP 凭据保存在服务器受限文件,不进入 Git。
  • 图片物料保存 HTTPS 引用。分享 board 不会自动授权关联物料。
  • 分组 API 文档位于本地 api-docs,并已 gitignore,用户验收后再上传。

Slack Secrets 接线验收

  • .gitea/workflows/deploy.yml 注入 SLACK_CLIENT_ID 和 SLACK_CLIENT_SECRET,deploy/release.sh 将其传入容器,并保留受限服务器文件的兼容来源。
  • 当前提交 155ce28 的 ces-control push 和 pull_request 检查均成功。
  • CI 确认两个 Actions Secrets 可读取,Slack OAuth 接口可达。占位 code 在密钥校验前被拒绝,因此尚不能验证 Client Secret 有效性。
  • 实际 Foundry 容器访问 Slack OIDC 元数据及签名公钥均返回 200。
  • 公网 Slack 路由仍返回 405,main 尚未包含本 PR。等待用户手动合并后部署,再进行真实用户授权验收。
为各项目提供邮箱注册验证与密码登录、Google/Slack OIDC 登录及资料预填、可配置 onboarding、workspace admin/editor/viewer、邀请和单物料授权、短链接及点击记录、结构化文章、混合卡片、画布布局、标签及创建/修改/个人打开时间排序。 所有业务资源和身份按项目隔离。物料及画布更新通过 If-Match 检测并发冲突。邮箱验证和重发使用事务锁保持状态一致,邮件通过带租约的队列发送。提供方登录验证浏览器状态,Slack 还校验 RS256、issuer、audience 和 nonce。旧 Google 账号、会话及固定前端回调继续有效。 验证已完成 - ces-control 对当前提交 155ce28 的 push 和 pull_request 检查均成功。 - 在隔离 PostgreSQL 中验证历史登录迁移、重复迁移及业务角色表权限。 - API 集成覆盖邮箱注册、验证、登录与退出,onboarding 重试,角色保护,邀请限额、重放、撤销及点击记录,单物料授权和撤权,文章及混合卡片,画布关联可见性,全部排序和版本冲突。 - Slack 签名、错误受众、过期、nonce、篡改及算法拒绝,完整回调、兑换和重放测试通过。 - 真实部署机已通过 SMTP TLS 和认证检查。完整差异及 Git 忽略规则检查通过。 接入与交付说明 - 尚未合并或部署,等待用户手动合并。部署会先执行带锁和校验和的事务迁移,再检查候选容器并切换路由。 - Slack OAuth 应用已由用户创建并配置仓库 Secrets;回调为 https://api.foundry.entroia.com/auth/slack/callback。当前验证使用受控提供方响应。 - 尚未进行实际收件人邮件验收。SMTP 凭据保存在服务器受限文件,不进入 Git。 - 图片物料保存 HTTPS 引用。分享 board 不会自动授权关联物料。 - 分组 API 文档位于本地 api-docs,并已 gitignore,用户验收后再上传。 Slack Secrets 接线验收 - .gitea/workflows/deploy.yml 注入 SLACK_CLIENT_ID 和 SLACK_CLIENT_SECRET,deploy/release.sh 将其传入容器,并保留受限服务器文件的兼容来源。 - 当前提交 155ce28 的 ces-control push 和 pull_request 检查均成功。 - CI 确认两个 Actions Secrets 可读取,Slack OAuth 接口可达。占位 code 在密钥校验前被拒绝,因此尚不能验证 Client Secret 有效性。 - 实际 Foundry 容器访问 Slack OIDC 元数据及签名公钥均返回 200。 - 公网 Slack 路由仍返回 405,main 尚未包含本 PR。等待用户手动合并后部署,再进行真实用户授权验收。
codex-bot added 1 commit 2026-11-05 10:15:57 +00:00
Establish project-scoped account and collaboration schema
Foundry Go checks / check (push) Successful in 1m43s
Foundry Go checks / check (pull_request) Successful in 1m40s
0fd84f0f6e
codex-bot added 1 commit 2026-11-05 10:17:49 +00:00
Add authenticated profiles and prefill Google account names
Foundry Go checks / check (push) Successful in 1m42s
Foundry Go checks / check (pull_request) Successful in 1m51s
e626a2359e
codex-bot added 1 commit 2026-11-05 10:19:26 +00:00
Add workspace membership roles with serialized permission changes
Foundry Go checks / check (push) Successful in 1m38s
Foundry Go checks / check (pull_request) Successful in 1m43s
53c4dbee8e
codex-bot added 1 commit 2026-11-05 10:24:36 +00:00
Add configurable onboarding and scoped invitation links
Foundry Go checks / check (push) Successful in 1m47s
Foundry Go checks / check (pull_request) Successful in 1m57s
1b756d36ce
codex-bot added 1 commit 2026-11-05 10:31:13 +00:00
Implement verified email registration and queued TLS delivery
Foundry Go checks / check (push) Successful in 1m52s
Foundry Go checks / check (pull_request) Successful in 1m53s
0d0521f13d
codex-bot added 1 commit 2026-11-05 10:36:58 +00:00
Add structured materials, canvas layouts, tags and content permissions
Foundry Go checks / check (push) Successful in 1m51s
Foundry Go checks / check (pull_request) Successful in 1m56s
bfcea1b3af
codex-bot added 1 commit 2026-11-05 10:39:28 +00:00
Expose paginated share redirect events to workspace admins
Foundry Go checks / check (push) Successful in 1m47s
Foundry Go checks / check (pull_request) Successful in 1m51s
e0ba9c08e8
codex-bot added 1 commit 2026-11-05 10:40:47 +00:00
Verify multimodal content boundaries and every material sort
Foundry Go checks / check (push) Successful in 2m6s
Foundry Go checks / check (pull_request) Successful in 1m49s
4a06944fec
codex-bot added 1 commit 2026-11-05 10:43:50 +00:00
Apply tracked schema migrations before deployment and test runtime grants
Foundry Go checks / check (push) Successful in 1m48s
Foundry Go checks / check (pull_request) Failing after 1m38s
206cd45098
codex-bot added 1 commit 2026-11-05 10:49:45 +00:00
Add Slack OpenID login with verified identities and callback replay protection
Foundry Go checks / check (push) Failing after 2m2s
Foundry Go checks / check (pull_request) Failing after 2m4s
5c0ad30a7a
codex-bot added 1 commit 2026-11-05 10:52:01 +00:00
Guard legacy Google accounts through provider login expansion
Foundry Go checks / check (push) Failing after 1m59s
Foundry Go checks / check (pull_request) Failing after 1m56s
fbe0910638
codex-bot added 1 commit 2026-11-05 10:53:54 +00:00
Serialize email verification and resend to preserve registration state
Foundry Go checks / check (push) Failing after 2m1s
Foundry Go checks / check (pull_request) Failing after 1m50s
f69575d48f
codex-bot added 1 commit 2026-11-05 10:55:33 +00:00
Fix shared OAuth exchange SQL by avoiding a reserved identifier
Foundry Go checks / check (push) Successful in 2m10s
Foundry Go checks / check (pull_request) Successful in 2m11s
9d5ab9e215
codex-bot added 1 commit 2026-11-05 11:04:01 +00:00
Wait for final PostgreSQL startup before migration checks
Foundry Go checks / check (push) Successful in 2m3s
Foundry Go checks / check (pull_request) Successful in 1m57s
5b9af931c7
codex-bot changed title from WIP: Foundry 用户、workspace 与物料平台 to Foundry 用户认证、workspace 分享与结构化物料 API 2026-11-05 11:13:03 +00:00
codex-bot added 1 commit 2026-11-05 12:19:55 +00:00
Inject Slack Actions secrets and verify live client credentials
Foundry Go checks / check (push) Failing after 1m37s
Foundry Go checks / check (pull_request) Successful in 2m3s
6c69fcbaaa
codex-bot added 1 commit 2026-11-05 12:22:56 +00:00
Report inconclusive Slack placeholder-code checks accurately
Foundry Go checks / check (push) Successful in 2m9s
Foundry Go checks / check (pull_request) Successful in 1m57s
155ce28c37
Zayden-Jung merged commit 4043c89520 into main 2026-11-05 12:30:25 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Zayden-Jung/foundry-core#5