Skip to content

feat: add status page v3 resources - #388

Open
tnolet wants to merge 2 commits into
mainfrom
tnolet/status-pages-v3
Open

feat: add status page v3 resources#388
tnolet wants to merge 2 commits into
mainfrom
tnolet/status-pages-v3

Conversation

@tnolet

@tnolet tnolet commented Sep 1, 2026

Copy link
Copy Markdown
Member

Affected Components

  • Resources
  • Test
  • Docs

Pre-Requisites

  • Terraform code is formatted with terraform fmt
  • Go code is formatted with go fmt

Notes for the Reviewer

Adds Terraform support for status pages v3 as three resources: checkly_status_page_v3 (flat page settings, no cards), checkly_status_page_v3_component (SERVICE/GROUP structure with parent_id nesting) and checkly_status_page_v3_automation_rule (tag-matched incident automation). Separate resources mirror the v3 API, which has no bulk component sync on the page — components and rules are individual nested endpoints, so the nested resources import via a composite <status_page_id>/<id> ID.

Design notes: the rule's tags and component attributes are TypeSets because the API returns them unordered and the per-link ID is not stable across updates; duplicate component_ids are rejected client-side (the server surfaces them as an opaque DB error); the page url validation only accepts lowercase since the server lowercases on write (uppercase config would produce a permanent diff). The v2 checkly_status_page/checkly_status_page_service descriptions now point at the v3 resources.

Verified: 4 encode/decode unit tests plus 7 acceptance tests (required-field errors, create/update happy paths, plan-after-apply empty diff, ImportStateVerify for all three resources) all passed against a live backend. Note the automation rule tests need the STATUS_PAGES_AUTOMATED_INCIDENT_MANAGEMENT entitlement on the CI account.

Depends on checkly/checkly-go-sdk#169: go.mod pins a pre-release commit of that branch and should be bumped to v1.23.0 once the SDK release is tagged, before merging.

🤖 Generated with Claude Code

https://claude.ai/code/session_014WTgyksVAQY5jpD2fb3rYL

Adds checkly_status_page_v3, checkly_status_page_v3_component and
checkly_status_page_v3_automation_rule resources for components-based
v3 status pages, with composite-ID import for the nested resources and
deprecation pointers on the v2 status page resources.

Pins checkly-go-sdk to a pre-release commit of checkly/checkly-go-sdk#169;
to be bumped to v1.23.0 once that release is tagged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014WTgyksVAQY5jpD2fb3rYL
@tnolet
tnolet requested a review from a team as a code owner September 1, 2026 13:14
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

Terraform Format and Style 🖌success

Format Output

The v3 page update endpoint only patches fields present in the payload;
the SDK previously dropped emptied optional fields from the JSON, so
removing e.g. footer_text from config left the old value on the server
and produced a permanent diff. Bumps the SDK pin to the commit that
always serializes the clearable fields, and adds an acceptance test
step reverting to the minimal config to prove the optionals clear.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014WTgyksVAQY5jpD2fb3rYL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant