{
  "slug": "neon-config-status-plan-apply-and-deploy-reconcile-neon-ts-policies-467b448bbc6a",
  "title": "neon config status, plan, apply, and deploy reconcile neon.ts policies",
  "tools": [
    "neonctl"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-06-09T20:05:22.000Z",
  "announced_at": "2026-06-09T20:05:22.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When reconciling a branch from a repository policy, define the policy in `neon.ts`; run `neon config status` to inspect it, `neon config plan` to preview changes, and `neon config apply` (or `neon deploy`) to apply them.",
    "examples": [
      "neon config status [--project-id <id>] [--branch <id|name>] [--config <path>]",
      "neon config plan [--project-id <id>] [--branch <id|name>] [--config <path>]",
      "neon config apply [--project-id <id>] [--branch <id|name>] [--config <path>] [--update-existing] [--allow-protected]"
    ],
    "gotchas": [
      "Version: v2.24.0",
      "--project-id <id>: Selects the project; otherwise the closest `.neon` file’s `projectId` is used, then a sole project accessible to the API key is auto-detected.",
      "projectId: Project ID in the closest `.neon` file; used after `--project-id`.",
      "--branch <id|name>: Selects a branch; defaults to the project’s default branch.",
      "--config <path>: Selects the policy file; otherwise neonctl walks up from the current directory for `neon.ts`.",
      "--update-existing: For apply/deploy, auto-confirms overriding existing remote settings; without it, drift in compute, TTL, or `protected` is a conflict and apply makes no changes.",
      "--allow-protected: For apply/deploy, auto-confirms applying to a branch Neon marks protected.",
      "--env <path>: Not documented in the v2.24.0 README; details not found.",
      "Prerequisite: Install neonctl; the README lists Node.js 18.0 or higher for npm installation.",
      "Prerequisite: Authenticate with `neonctl auth` or provide an API key with `--api-key`.",
      "Without `--update-existing`, drift on settings already present remotely (compute, TTL, `protected`) is reported as a conflict and apply makes no changes until resolved or the flag is passed.",
      "If the API key maps to exactly one project, that project is auto-detected when project resolution remains unresolved.",
      "The branch defaults to the project's default branch when `--branch` is omitted.",
      "The policy can include Preview features such as Functions and buckets."
    ]
  },
  "why_it_matters": "Inspect or reconcile a Neon branch's desired state from a repository policy.",
  "sources": [
    "https://github.com/neondatabase/neonctl/releases/tag/v2.24.0",
    "https://github.com/neondatabase/neonctl/pull/518",
    "https://github.com/neondatabase/neonctl/blob/v2.24.0/README.md"
  ],
  "rank": 0.97049,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "wave2a-20261017",
    "verdict_id": "wave2a-20261017:wave2a-20261017-3598bbddc8d65a5c-0:gate",
    "evidence_hash": "0baffe0f8585a4e9aa94498ac8b243046097987047dd823e2452cccd79a4b31a"
  },
  "review": {
    "draft_hash": "4963b589e6548d4890f82f1768295ec8c8751d6119bc57bafae322ce5302569a",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "wave2a-20261017:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.97 >= 0.9; 2 needed) and Jev gave 0.80 (>= 0.6 needed)."
  }
}
