fix(extend): land the June audit fixes the migration left behind, and repair 14 dead links (PRDCT-543) - #1077
Conversation
#1046 moved 41 pages from developers.keboola.com to /extend/**. Two audit PRs on that repo — keboola/developers-docs#393 and #396, both opened 2026-06-22 and never reviewed — had already found defects on those pages, so the copies that landed here are the *unfixed* ones. Grepping for each fix confirmed every one of them is still present on help. Carried over from #393 and #396: - `ci.validate_configuration(...)` is not a method on CommonInterface; the real one is `validate_configuration_parameters` (python-component interface.py:748). The published example raises AttributeError. - The Python library link pointed at a superseded Bitbucket template (still reachable, last touched 2023) and the PHP one at keboola/php-docker-application, since renamed to keboola/php-component. The Python link now targets the actual example file in the cookiecutter template, since the prose promises "an actual working example" and the template root is not one. - Invalid JSON in four examples: a missing comma before `write_always`, a missing comma after the `schema` member, a missing comma between the `input` and `output` objects, and a trailing comma in the ABS workspace credentials. - `"colummns"`, `write-alwayss.csv`, `my-inpupt.csv` (x4), `accross`, "display events Keboola end-users", "is filter for sensitive values", "does not have an access to". - The input-table manifest's `name` node holds the table name, not the name of the component configuration (input-mapping ManifestCreator.php:23). - The output-mapping page said "Implementing the input mapping requires...". - Two `### Step 4` headings in a row on the debugging page; the second is 5. Nothing in either repo links to that anchor. - `somemyParameter_user_parameter`, where the JSON below it says `myParameter`. Broken links found while checking, not from either PR: - help has no /overview/api/ page — it 404s, that reference lives only on dev docs — yet nine links in the migrated pages pointed at it as a site-relative path. Broken in production right now. Repointed at developers.keboola.com. - The anchor was dead too: the heading is "## Stacks and Endpoints", so `#regions-and-endpoints` resolved nowhere. Three native help pages carried the same dead anchor, which leaves none in the repo. - Four links to `/extend/component/running/#preparing-the-data-folder`, whose heading is "## Preparing Data folder". Repointed at the slug that exists, rather than renaming the heading, which would break the links #406 repoints. - `debugging/#step-2--build-the-image`, whose heading is "### Step 2 -- Build Image". Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
jordanrburger
left a comment
There was a problem hiding this comment.
Approving — the substance here is worth a lot. The ci.validate_configuration(...) one especially: I confirmed the real method is validate_configuration_parameters (interface.py:748) and there's no validate_configuration at all, so that published example has been raising AttributeError for anyone who copied it. The four invalid JSON blocks, the missing leading slash and the input/output mapping mix-up are all real reader-cost bugs.
Three notes, none of them blocking:
-
The 12 new links to
developers.keboola.comare the right call for now. I checked —help.keboola.com/overview/api/is a 404 and the dev-docs page is a 200, so pointing at dev is the only option that isn't broken today. We'll have to sweep these when we retire that host, so let's make sure they land in the redirect contract rather than getting discovered later. -
### Step 4 -- Modify→### Step 5 -- Modifymoves the heading slug from#step-4--modifyto#step-5--modify. I searched and there are zero inbound links in the repo, so it's safe — but the description doesn't mention checking, and this is exactly the silent break #1073 exists to catch. Worth calling out explicitly whenever you move a heading. -
The Travis link is polish on a dead resource. It now points at
app.travis-ci.com/keboola/ex-docs-tutorial, butgithub.com/keboola/ex-docs-tutorialis a 404. You flagged the repo as gone and I agree — just delete the two sentences that reference it rather than shipping a tidy link to nothing. Do that in a follow-up, no need to hold this PR for it.
Jira issue(s): PRDCT-543 — companion to developers-docs#410, which handles the same audit for the pages that stay on dev.
#1046 moved 41 pages from
developers.keboola.comto/extend/**. Two audit PRs on that repo — developers-docs#393 and #396, both opened 2026-06-22 and never reviewed — had already found defects on those pages, so what landed here is the unfixed copy. Grepping for each fix one by one confirmed all of them are still live on help.Since #406 turns the dev originals into redirect stubs, this is the only place those fixes can still reach a reader.
From #393 and #396
Broken code and configuration — these are the ones that cost someone an hour:
ci.validate_configuration(REQUIRED_PARAMETERS)is not a method onCommonInterface. The real one isvalidate_configuration_parameters(keboola/python-component,interface.py). The example as published raisesAttributeError."write_always", a missing comma after the"schema"member in the workspace credentials, and a trailing comma in the ABS credentials block."colummns": []in the output-mapping example.namenode was described as "the name of the component configuration". It is the table name.somemyParameter_user_parameter, where the JSON directly below readsmyParameter.Stale and dead links: the Python template pointed at
bitbucket.org/kds_consulting_team/kbc-python-template— still reachable, but last touched in 2023 and superseded by the cookiecutter; the PHP library atkeboola/php-docker-application(renamed tokeboola/php-component); Travis at the retiredtravis-ci.org; the JSON-editor demo over plainhttp; and one link written as[url]()with an empty target. The Python link now points at the example file in the template rather than its root, since the prose promises "an actual working example".Text:
accross,my-inpupt.csv(×4), "display events Keboola end-users", "output ... is filter for sensitive values", "does not have an access to", "Similar library is currently available also for", and two consecutive### Step 4headings on the debugging page (the second is Step 5).Found while checking, not from either PR
Nine links in the migrated pages are broken in production right now.
help.keboola.com/overview/api/returns 404 — that reference page exists only on dev docs — yet the migration carried its links over as site-relative paths incomponent/running(×2),common-interface/environment(×3),common-interface/config-file(×3) andcomponent/code-patterns/tutorial. Repointed atdevelopers.keboola.com.While repointing them: the anchor was dead too. The heading on that page is
## Stacks and Endpoints, so#regions-and-endpointsresolved nowhere. Three native help pages (transformations/snowflake-plain,components/ip-addresses,overview/index) carried the same dead anchor with an already-absolute URL; fixed as well, which leaves zero instances in the repo.Five more dead anchors on the same pages. Four links point at
/extend/component/running/#preparing-the-data-folder, but that heading is## Preparing Data folder— repointed at the slug that exists rather than renaming the heading, since #406 repoints the dev-side links at the current one. Anddeployment/index.mdlinksdebugging/#step-2--build-the-image, whose heading is### Step 2 -- Build Image.A fourth invalid JSON example, missed on the first pass: in
folders/index.mdtheinputobject is not comma-separated from"output". All three JSON blocks in that file now parse.Verification
npm run buildclean. The two warnings it prints (R syntax highlighting incomponent/implementation/r/, the/404route conflict) are pre-existing and unrelated.keboola/python-componentsource;keboola/php-componentconfirmed live andphp-docker-applicationconfirmed a redirect; every replacement link returns 200.#stacks-and-endpointsanchor and the/overview/api/404 both checked against the live sites."state": {…}fragment, untouched).fact-checkerrun againstkeboola/python-component,keboola/input-mapping,keboola/output-mappingand the live sites: no critical findings, 12 claims confirmed with public evidence. Everything it flagged as incomplete is fixed above. It refuted one thing I had written — the Bitbucket template is stale, not dead (API returns 200,is_private: false) — and the wording is corrected.For an owner — two things I did not change
keboola/ex-docs-tutorialappears to be gone.deployment/index.mdinvites the reader to "view all settings in our example repository" and to "review Travis Configuration" for it, butgithub.com/keboola/ex-docs-tutorialreturns 404 and Travis API v3 reports the repo"active": falsewith zero builds. I only modernised the Travis host; whether to restore the example or delete the sentence is a product call.running/index.mdreferences the same repo.keboola/python-componentREADME still carries theci.validate_configuration(...)bug (README.md:175) — which is almost certainly where these docs copied it from. Worth an upstream issue so it does not come back.Forward note
The (unmerged) dev→help contract in
_data/redirects/dev-to-help.tsvmaps/overview/api/→/concepts/api-basics/. That page does not exist yet, so absolutedevelopers.keboola.comlinks are correct today — but these nine links and the#stacks-and-endpointsanchor will need revisiting when that reference page lands on help.Note for whoever merges #402 on dev
developers-docs#402 also fixes
extend/common-interface/**andextend/component/runningon the dev side. Those are exactly the pages #406 retires, so those hunks will land on stubs and never reach a reader — the same trap this PR is cleaning up after. Itscomponent/runningheading renames (## Preparing Data folder→## Preparing the Data folder,## Running Component→## Running a Component) are deliberately not copied here: #406 repoints links at the current help anchors, and renaming those headings would break them again.