diff --git a/packages/cli/src/ai-context/references/configure-api-checks.md b/packages/cli/src/ai-context/references/configure-api-checks.md index a2cabb91d..8616d48a8 100644 --- a/packages/cli/src/ai-context/references/configure-api-checks.md +++ b/packages/cli/src/ai-context/references/configure-api-checks.md @@ -7,6 +7,7 @@ - If endpoints require authentication ask the user which authentication method to use and then generate a setupScript to authenticate the given requests. - Referenced `setup-script.ts` and `teardown-script.ts` for API checks must be plain ts files and not export anything. - Check in the code if API endpoints require authentication. +- **Plan-gated properties:** `retryStrategy`, `runParallel`, and higher frequencies may not be available on all plans. Check entitlements matching `API_CHECKS_*` before using these. Omit any property whose entitlement is disabled. See `npx checkly skills manage` for details. diff --git a/packages/cli/src/ai-context/references/configure-browser-checks.md b/packages/cli/src/ai-context/references/configure-browser-checks.md index 897380803..818e02fc4 100644 --- a/packages/cli/src/ai-context/references/configure-browser-checks.md +++ b/packages/cli/src/ai-context/references/configure-browser-checks.md @@ -3,5 +3,6 @@ - Import the `BrowserCheck` construct from `checkly/constructs`. - Generate a separate `.spec.ts` file for the Playwright code referenced in the `BrowserCheck` construct. - Use the `code.entrypoint` property to specify the path to your Playwright test file. +- **Plan-gated properties:** `retryStrategy`, `runParallel`, and higher frequencies may not be available on all plans. Check entitlements matching `BROWSER_CHECKS_*` before using these. Omit any property whose entitlement is disabled. See `npx checkly skills manage` for details. diff --git a/packages/cli/src/ai-context/references/configure-dns-monitors.md b/packages/cli/src/ai-context/references/configure-dns-monitors.md index 918cb40a7..f743e5fd4 100644 --- a/packages/cli/src/ai-context/references/configure-dns-monitors.md +++ b/packages/cli/src/ai-context/references/configure-dns-monitors.md @@ -3,5 +3,6 @@ - Import the `DnsMonitor` construct from `checkly/constructs`. - Reference [the docs for DNS monitors](https://www.checklyhq.com/docs/constructs/dns-monitor/) before generating any code. - When adding `assertions`, always use `DnsAssertionBuilder` class. +- **Plan-gated properties:** `retryStrategy`, `runParallel`, and higher frequencies are not available on all plans. Check entitlements matching `UPTIME_CHECKS_*` before using these. Omit any property whose entitlement is disabled. See `npx checkly skills manage` for details. diff --git a/packages/cli/src/ai-context/references/configure-icmp-monitors.md b/packages/cli/src/ai-context/references/configure-icmp-monitors.md index 4cc65592d..e0a921a34 100644 --- a/packages/cli/src/ai-context/references/configure-icmp-monitors.md +++ b/packages/cli/src/ai-context/references/configure-icmp-monitors.md @@ -5,5 +5,6 @@ - When adding `assertions`, always use `IcmpAssertionBuilder` class. - Latency assertions require a property parameter: `'avg'`, `'min'`, `'max'`, or `'stdDev'`. - Use `degradedPacketLossThreshold` and `maxPacketLossThreshold` for packet loss thresholds (percentages). +- **Plan-gated properties:** `retryStrategy`, `runParallel`, and higher frequencies are not available on all plans. Check entitlements matching `UPTIME_CHECKS_*` before using these. Omit any property whose entitlement is disabled. See `npx checkly skills manage` for details. diff --git a/packages/cli/src/ai-context/references/configure-tcp-monitors.md b/packages/cli/src/ai-context/references/configure-tcp-monitors.md index 639f69186..0774764a6 100644 --- a/packages/cli/src/ai-context/references/configure-tcp-monitors.md +++ b/packages/cli/src/ai-context/references/configure-tcp-monitors.md @@ -2,5 +2,6 @@ - Import the `TcpMonitor` construct from `checkly/constructs`. - When adding `assertions`, always use `TcpAssertionBuilder` class for TCP monitors. +- **Plan-gated properties:** `retryStrategy`, `runParallel`, and higher frequencies are not available on all plans. Check entitlements matching `UPTIME_CHECKS_*` before using these. Omit any property whose entitlement is disabled. See `npx checkly skills manage` for details. diff --git a/packages/cli/src/ai-context/references/configure-url-monitors.md b/packages/cli/src/ai-context/references/configure-url-monitors.md index b16630ef4..dcbf0918c 100644 --- a/packages/cli/src/ai-context/references/configure-url-monitors.md +++ b/packages/cli/src/ai-context/references/configure-url-monitors.md @@ -2,5 +2,6 @@ - Import the `UrlMonitor` construct from `checkly/constructs`. - When adding `assertions`, always use `UrlAssertionBuilder`. +- **Plan-gated properties:** `retryStrategy`, `runParallel`, and higher frequencies are not available on all plans. Check entitlements matching `UPTIME_CHECKS_*` before using these. Omit any property whose entitlement is disabled — Checkly applies safe defaults. See `npx checkly skills manage` for details. diff --git a/packages/cli/src/ai-context/references/manage.md b/packages/cli/src/ai-context/references/manage.md index e63205fef..a14aca25a 100644 --- a/packages/cli/src/ai-context/references/manage.md +++ b/packages/cli/src/ai-context/references/manage.md @@ -19,6 +19,29 @@ This returns your entitlements (enabled/disabled with limits), available locatio - **Respect metered limits** (e.g. max browser checks, max alert channels) - **Surface upgrade paths** when a feature is disabled — each disabled entitlement includes an `upgradeUrl` pointing to the self-service checkout or the contact sales page +## Applying entitlements to check configuration + +Entitlement keys follow the pattern `{CHECK_TYPE}_{FEATURE}` — match them to the check type you're configuring. Before setting any property on a check construct, find the corresponding entitlement and verify it's enabled. + +**Common plan-gated properties that agents get wrong on first setup:** + +| Check property | Entitlement pattern to search | What to do if disabled | +|---|---|---| +| `retryStrategy` | `*_RETRY_STRATEGY_*` and `*_MAX_RETRIES_*` for your check type | Omit `retryStrategy` entirely, or use only `NO_RETRY` | +| `runParallel` | `*_SCHEDULING_STRATEGY_PARALLEL` for your check type | Omit `runParallel` or set to `false` (use round-robin) | +| `frequency` | `*_FREQ_*` for your check type | Use only frequencies where the entitlement is enabled | +| `locations` | `locations.all` array | Use only locations where `available` is `true` | +| `privateLocation` | `PRIVATE_LOCATIONS` | Only available on Team plan and above | + +**How to check:** Use `--search` to narrow entitlements for the check type you're configuring: + +```bash +npx checkly account plan --output json --search "uptime" +npx checkly account plan --disabled --search "retry" +``` + +**When a feature is disabled:** Do not use it. Omit the property from the construct — Checkly will apply safe defaults. If the user needs the feature, share the `upgradeUrl` from the entitlement. + ## Available Commands Parse and read further reference documentation for any of the following: diff --git a/packages/cli/src/commands/account/plan.ts b/packages/cli/src/commands/account/plan.ts index 7e70f711c..7ec3c494a 100644 --- a/packages/cli/src/commands/account/plan.ts +++ b/packages/cli/src/commands/account/plan.ts @@ -108,19 +108,15 @@ export default class AccountPlan extends AuthCommand { ) } - // JSON output (respects filters) + // JSON output (always includes plan context + locations) if (flags.output === 'json') { const enriched = filtered.map(e => withUpgradeUrl(e, checkoutUrl)) - if (hasFilters) { - this.log(JSON.stringify(enriched, null, 2)) - } else { - this.log(JSON.stringify({ - ...plan, - checkoutUrl, - contactSalesUrl: CONTACT_SALES_URL, - entitlements: enriched, - }, null, 2)) - } + this.log(JSON.stringify({ + ...plan, + checkoutUrl, + contactSalesUrl: CONTACT_SALES_URL, + entitlements: enriched, + }, null, 2)) return }