Automation and CI

Treat validation, planning, approval, and deployment as separate gates. Build one candidate from an immutable Git revision, review its plan, and deploy that unchanged candidate only from an approved branch or environment.

Provide bounded credentials

Inject LEAPVIEW_TARGET and LEAPVIEW_API_TOKEN from the CI secret manager. Use a dedicated service principal, protect production secrets with environment approval, and prevent pull requests from untrusted forks from reading them. The validation job does not need either secret.

Keep the expected environment and workspace in reviewable pipeline configuration:

export TARGET_ENVIRONMENT=production
export TARGET_WORKSPACE=retail

Validate without network access

Compile the complete project first and retain structured diagnostics as a job artifact:

leapview validate --project dashboards/leapview.yaml --json

Stop the pipeline on any non-zero exit status. Do not allow a later deployment job to replace or edit the project after validation.

Generate a reviewable plan

Plan against the exact target identity and workspace that will receive the deployment:

leapview plan \
  --project dashboards/leapview.yaml \
  --target "$LEAPVIEW_TARGET" \
  --environment "$TARGET_ENVIRONMENT" \
  --workspace "$TARGET_WORKSPACE" \
  --json > leapview-plan.json

Publish leapview-plan.json as a protected artifact. Review removals, access-policy changes, resource identity changes, and managed-data revision pins. Regenerate the plan after any source change.

Deploy after approval

Run deployment from a protected job using the same project, target, environment, and revision pins that produced the reviewed plan:

leapview deploy \
  --project dashboards/leapview.yaml \
  --target "$LEAPVIEW_TARGET" \
  --environment "$TARGET_ENVIRONMENT" \
  --auto-approve

--auto-approve is appropriate only because the pipeline provides the approval gate. Do not use it to bypass review in an unprotected job.

Preserve evidence and verify

Record the Git revision, target environment, actor, plan artifact, deployment result, and managed-data digests together. After deployment, probe readiness and exercise a representative workspace query or dashboard. A transport retry must reuse the same immutable candidate; never rebuild from a moving branch between attempts.

See Validate, plan, and deploy for the operational sequence, Targets and environments for environment safeguards, and the generated validate, plan, and deploy references for all flags.