Appaloft Docsv878ea0ca9d2b5227200e9c2fa399a24afef99f67
Environments And Configuration

Configuration file

面向用户的 Appaloft 配置文件字段说明。

配置文件适合保存可审查的项目、资源、环境和部署默认值。Secret 值不应该直接写入仓库。

字段应按 project、resource、environment、deployment 和 access 分类解释,避免暴露内部实现术语。

env 用来写非敏感值,secrets 用来声明由仓库外部提供的值:

env:
  APP_URL: "http://{pr_number}.preview.example.com"
secrets:
  APP_SECRET:
    from: ci-env:APP_SECRET
    required: true

Pull request preview 部署里,非敏感 env 值可以使用 {pr_number}{preview_id}。 secret 值本身必须保存在 GitHub Secrets、其他 CI secret store,或 Appaloft 管理的 secrets 中。

controlPlane 用来保存可审查的部署所有权默认值:

controlPlane:
  mode: none

mode: none 表示纯 CLI 或 Action SSH 部署。自托管 Appaloft server 应拥有部署状态,并且 Action 应调用 server API 而不是直接改 SSH PGlite 时,使用 mode: self-hosted 和可信 url

controlPlane.url 不是 secret,但必须是没有凭据、路径、query 或 fragment 的 httphttps origin。Token、SSH key、仓库身份、organization/tenant/provider account identity、database URL、secret value 和 broad target identity 不应写进仓库配置。

对于 self-hosted Action deploy,普通路径不需要在配置中写 project/environment/resource/server ids。 Server 应从 source-link state、deploy-token scope、source binding,或可信 GitHub repository/ref/ revision/preview context 解析目标。controlPlane.deploymentContext 只用于很窄的一次性 bootstrap、 relink、override 或 support/debug workflow,并且只能包含 project、environment、resource、server 和可选 destination ids。

controlPlane:
  mode: self-hosted
  url: https://console.example.com
  deploymentContext:
    projectId: prj_www
    environmentId: env_prod
    resourceId: res_www
    serverId: srv_prod