Files
aios/docs/release/AIOS_V1R1C4_AUTH_GITOPS_PORTAL.md
T
2026-07-06 19:16:31 +08:00

2.1 KiB

AIOS V1R1C4 Auth GitOps Portal Release

Date: 2026-07-06T11:05:30Z

Purpose

Close the public-access gap around human GitOps shortlinks, move repository browsing to the protected Gitea endpoint, and make the new GitOps portal function visible from the main cnnetmkt owner/admin workspace.

Changes

  • /base, /ver, /diff, /patch, /model, and /run now redirect to https://cnnetmkt.top/portal/me/#gitops instead of exposing raw JSON to unauthenticated users.
  • /api/* remains the controlled machine interface for ChatGPT Actions and Codex.
  • Gitea now uses https://g.cnnetmkt.top/git/, requires sign-in for repository browsing, and hides registration.
  • aios-gitea-owner-sync.service and timer synchronize the Gitea owner account password from the user-control owner secret without writing the password to Git or logs.
  • The legacy local aios Gitea account has login prohibited and its password cleared; the row remains only to preserve repository ownership.
  • The user portal now includes a GitOps dashboard section for admin/owner roles.
  • The patched user-control-center source is tracked under overlays/user-control-center/ with a replay script.
  • The portal GitOps section reads /app/runtime/gitops/current.json before HTTP fallback, so the current version remains visible inside Docker.

Verification Targets

  • https://cnnetmkt.top/model returns 302 to /portal/me/#gitops.
  • https://cnnetmkt.top/api/model returns the public machine-readable model metadata.
  • https://g.cnnetmkt.top/git/aios/aios-v23 returns a login redirect when unauthenticated.
  • Owner login can open the Gitea repository; no secret is printed.
  • Portal login state renders the GitOps section and links.

Guardrails

  • No ZIP update path is reintroduced.
  • All replayable files are tracked in Git.
  • Passwords, bearer tokens, Huawei keys, and custom LLM API keys remain outside Git.

Secret Log Hygiene

The Gitea owner password sync script uses runuser instead of sudo -u ... --password ..., strips CRLF from sourced owner fields, and does not print passwords or tokens. Archived journal files were rotated/vacuumed after the live script was corrected.