Skip to content

Docs: how we check our own paid endpoints, including what the check missed - #84

Merged
holistis merged 1 commit into
mainfrom
docs/eigen-betaalde-routes-controleren
Oct 18, 2026
Merged

holistis merged 1 commit into
mainfrom
docs/eigen-betaalde-routes-controleren

Conversation

@holistis

Copy link
Copy Markdown
Owner

A paid endpoint does not usually fall over. It keeps answering 200 and returns something quietly wrong, and uptime monitoring catches none of that.

On 18 October we found four of those on our own routes in a single day. This document explains the failure mode, the three axes the scheduled job keeps apart, and the security shape of running an automated buyer that holds a signing key.

Two sections are there because leaving them out would make the document dishonest:

What three adversarial reviews found in the checker itself. Four real defects, including an exit code that could not fire, a check with no recipient, and the one that mattered most: the price and payee were validated on the checker's own unpaid request while payment happens in a separate process that selects from a filtered list. Those are different entries as soon as the first is filtered out, and one of our routes already returns two offers.

What the job does not cover. It checks two of our eleven paid routes. Probing the other nine by hand while writing this surfaced one more issue, which is not fixed: a POST with no body to the site check route returns 400 with no payment requirements, so an automated buyer cannot discover the price.

No code changes. Documentation only.

…issed

Four defects on our own paid routes in one day, none of which a heartbeat
check would have caught, and the scheduled job that came out of it.

Includes the part that is usually left out: three adversarial reviews of the
checker itself found four defects in it, the sharpest being that we validated
the price and payee on a different request than the one that pays. A limit
checked on an earlier request is not a limit.

Also states the coverage honestly. The job checks two of eleven paid routes,
and probing the other nine by hand for this document surfaced a tenth issue
we have not fixed yet: one route answers 400 with no payment requirements
when the request body is missing, so a buyer cannot discover the price.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
tokenizen 86508bb Commit Preview URL

Branch Preview URL
Oct 18 2026, 04:34 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
tokenizen-website 86508bb Commit Preview URL

Branch Preview URL
Oct 18 2026, 04:35 PM

@holistis
holistis merged commit 7256c88 into main Oct 18, 2026
6 checks passed
@holistis
holistis deleted the docs/eigen-betaalde-routes-controleren branch October 18, 2026 18:36
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