Skip to content

Checkly v1#42

Open
richbenwell wants to merge 3 commits intomainfrom
work/rb/checkly
Open

Checkly v1#42
richbenwell wants to merge 3 commits intomainfrom
work/rb/checkly

Conversation

@richbenwell
Copy link
Copy Markdown
Contributor

🔌 Plugin overview

  • Plugin name: Checkly
  • Purpose / problem solved: Monitoring apps and websites via checkly.io
  • Primary audience (e.g. platform teams, SREs, product teams): Platform and SRE teams using Checkly
  • Authentication method(s) (e.g. OAuth, Username/Password, API Key): API Key

🖼️ Plugin screenshots

Plugin configuration

image

Default dashboards

image image

🧪 Testing

Tested against a prod account containing URL monitors only.


⚠️ Known limitations

Default dashboards for other types of checks (not URL monitors) have not been built.


📚 Checklist

  • Plugin, datastream and UI naming follow SquaredUp guidelines
  • Logo added
  • One or more dashboards added
  • README added including configuration guidance
  • No secrets or credentials included
  • I agree to the Code of Conduct

@richbenwell richbenwell requested a review from a team April 24, 2026 17:18
Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for contributing this plugin. As a new community plugin author, please also consider adding yourself to .github/CODEOWNERS for plugins/Checkly/** so you can help review future contributions here.

Extended reasoning...

Overview

This PR introduces a new community plugin for Checkly across 31 files — metadata, UI config, data streams for every Checkly check type, default dashboards, an index definition, docs, and an icon. It's a standard new-plugin contribution layout.

Security risks

No security-sensitive code paths. Authentication is a standard bearer API key + account-ID header, sourced from user-entered UI config; no hardcoded secrets appear in the diff. The analytics-post.js script is a small synchronous transformation with no external I/O.

Level of scrutiny

A new plugin warrants human review. The bug hunting system already surfaced three concrete issues inline (broken metric name in the P95 tile, empty description and missing links in metadata.json, and docs/setup.md needing to be renamed to docs/README.md to surface in-product). Those plus the breadth of new content — nine analytics data streams, three dashboards, scopes, index definitions — are beyond what's appropriate for auto-approval.

Other factors

Author notes the plugin was tested only against URL monitors, so the non-URL analytics streams and dashboards have not been exercised end-to-end. Nothing else to flag beyond the inline comments and the CODEOWNERS suggestion.

Comment thread plugins/Checkly/v1/defaultContent/Analytics/urlMonitor.dash.json Outdated
Comment thread plugins/Checkly/v1/metadata.json
Comment on lines +1 to +15
# Before you start

## Create an API Key

The Checkly data source authenticates using an API key.

To create an API key, go to Checkly > User settings > API keys.

Create an API key and copy the value.

## Find your Account ID

The API key page also shows your Account ID in the curl example.

Alternatively, your Account ID can be found in Account Settings > General or in the Checkly URL. No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 The plugin's setup documentation is at plugins/Checkly/v1/docs/setup.md, but repo guidelines state that "only the README.md is shown within SquaredUp" and the in-product "Need help?" section surfaces docs/README.md. As a result, these setup instructions will not be discoverable in-product. Rename docs/setup.md to docs/README.md to match the convention used by DigiCert, GoogleSheets, RSS, Spotify, Steam, SumoLogic, UniFi, and UptimeRobot.

Extended reasoning...

What's wrong

The plugin ships its setup instructions at plugins/Checkly/v1/docs/setup.md. Per the repo's review guidelines, "only the README.md is shown within SquaredUp" — meaning the file surfaced under the in-product "Need help?" / setup guidance section is docs/README.md, not an arbitrarily-named markdown file.

Why this matters

The metadata.json has no links section and no other way of pointing the product at setup.md. So the setup content authored here — how to create a Checkly API key and find the Account ID, which the user must have to configure the plugin — will not be shown in-product. The user opens the Checkly plugin configuration, sees the Account ID and API key fields, clicks "Need help?", and gets nothing (or a missing-doc fallback), even though a perfectly good setup guide exists in the repo.

Existing convention

Of the plugins in this repo with a docs/ folder, 8 of 9 use docs/README.md: DigiCert, GoogleSheets, RSS, Spotify, Steam, SumoLogic, UniFi, UptimeRobot. Only OpenSearch also uses setup.md, and OpenSearch at least has a links section in its metadata.json that points at the file externally — Checkly does not, so the in-product surface is entirely missed.

Step-by-step proof it won't surface

  1. A user adds the Checkly plugin and opens its configuration page.
  2. SquaredUp's config UI includes a "Need help?" affordance that loads docs/README.md from the plugin.
  3. The plugin directory contains docs/setup.md — there is no docs/README.md.
  4. There is no links array in plugins/Checkly/v1/metadata.json redirecting the help surface anywhere else.
  5. Result: the help surface is empty; the user must leave the product and go dig through the repo to find the setup steps.

Fix

Rename plugins/Checkly/v1/docs/setup.mdplugins/Checkly/v1/docs/README.md. No other changes are required — the content itself is fine.

@github-actions
Copy link
Copy Markdown

🧩 Plugin PR Summary

📦 Modified Plugins

  • plugins/Checkly/v1

📋 Results

Step Status
Validation ❌ Failed
Deployment ⏭️ Skipped

🔍 Validation Details

plugins/Checkly/v1
{
  "valid": false,
  "errors": [
    {
      "file": "dataStreams/checkStatus.json",
      "message": "Invalid input",
      "path": [
        "config",
        "paging",
        "mode"
      ]
    },
    {
      "file": "dataStreams/report.json",
      "message": "Invalid input",
      "path": [
        "ui",
        0
      ]
    }
  ]
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant