Skip to content

PRDCT-658: flip dev-domain links whose targets already live on help - #1094

Open
Iamfle4ka wants to merge 12 commits into
mainfrom
PRDCT-658-flip-dev-links
Open

Iamfle4ka wants to merge 12 commits into
mainfrom
PRDCT-658-flip-dev-links

Conversation

@Iamfle4ka

@Iamfle4ka Iamfle4ka commented Aug 19, 2026 •

Copy link
Copy Markdown
Collaborator

Linear: PRDCT-658

What

Every developers.keboola.com link in help whose target already lives on help is flipped to the internal path. Plus two pieces of content that the dev-domain retirement would otherwise have destroyed.

Merge order: #1120 first, then this. 30 of the links here point at pages #1120 creates.

Links

78 → 3 across help, counted in the built site. The three that remain are the /integrate/database/ SSH-tunnel links, which #1019 rewrites when it folds that page in.

Flipped in waves as targets landed: /extend/** after #1046, Storage API after batch 1, Generic Extractor and Generic Writer after their batches, and finally the five that share lines with #1120's files plus the three pointing at the dev home's Development Project section. Anchors were checked against id= attributes in dist/, not assumed: #working-with-sliced-files, #stacks, #apis, #job-status and the rest all resolve.

Content this PR keeps alive

kbc install instructions (transformations/dbt/cli/cli.md, ~60 lines). That page is the one place in help that teaches Keboola as Code, because local dbt development runs on it, and it promised "other platforms covered in the installation instructions" while linking a repository that has none. The commands are inlined instead: Debian/Ubuntu, Fedora and Alpine with their repositories and GPG keys, WinGet, Chocolatey and Scoop, MSI and binaries. Taken from the dev page at its corrected revision (developers-docs#397) before that page was deleted. Jordan verified them against the live distribution in review: every repository path and all three GPG keys answer, and both the Homebrew tap and the Scoop bucket exist.

The /cli/ banner (cli/index.md) now routes kbc users to the repository rather than to a dying domain, per David Esner's call in Slack on 2026-09-03. It names the tool, says it shares nothing with kbagent, and links keboola/keboola-as-code. It deliberately asserts no support status; TODO(human-review, Jordan) holds that question open with both inputs recorded.

The same false promise was removed from management/project/index.md.

Review fixes (2026-09-14)

  • Line endings restored. Three files had CRLF on main and were rewritten end to end for one changed character each — 480 of the previous 487 insertions. Each is back to its original bytes with only its link flipped, so the diff is three lines, and git merge-tree against PRDCT-689: document text-column widening and DuckDB output data types (CFTL-713 / SUPPORT-16781) #1084 is clean again. Repo-wide normalization (50 more Markdown files, no .gitattributes) stays a separate job.
  • The TODO(human-review, Jordan) on the CLI banner is back, and the banner no longer states a support status either way.
  • This description is rewritten; the old one was dated to the 2026-08-19 cut and described a purely mechanical flip.

Verification

Check Result
npm run build clean, 363 pages
audit-phase2 missing images / unclosed fences 0 / 0
Broken internal links 29 pre-existing → 30; the one added points at a page #1120 creates
Anchors of flipped links all resolve against id= in dist/
git merge-tree vs #1120 clean; together, dev links in help go 78 → 3

scripts/check-redirects.mjs, which backs the --flippable count, lives in #1091 rather than in this branch, so reproduce that part from there.

🤖 Generated with Claude Code

25 links across 14 files, found by check-redirects.mjs --flippable (#1091)
plus two checker-blind cases (pre-rename /extend/docker/running/ URLs absent
from the 175-row map). Anchors preserved where the target heading exists and
verified in dist; one dead dev anchor (#technical-differences, now a redirect
stub that would drop it) reworded to /extend/component/#component-types.

Deliberately NOT flipped, still reported by --flippable:
- 3 SSH-tunnel links in database pages — #1019 owns those files
- 4 /integrate/storage-family links — their real home is /storage/api/,
  which lands with #1053; /storage/ today would strand them one level short

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@linear-code

linear-code Bot commented Aug 19, 2026

Copy link
Copy Markdown

PRDCT-658

@vercel

vercel Bot commented Aug 19, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
connection-docs Ready Ready Preview Sep 14, 2026 2:08pm UTC

Request Review

keboola-pr-reviewer-bot

This comment was marked as outdated.

@Iamfle4ka
Iamfle4ka marked this pull request as ready for review August 26, 2026 17:27

@keboola-pr-reviewer-bot keboola-pr-reviewer-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Verdict: auto_approve (risk 2/5) · profile connection-docs

Auto-approve: content-only dev-domain link flips, all targets and anchors verified present at HEAD.

Concerns:

  • src/content/docs/components/writers/storage/aws-s3/index.md: Whole-file line-ending/whitespace churn with identical prose; will noise up git blame.

@keboola-pr-reviewer-bot
keboola-pr-reviewer-bot dismissed their stale review August 26, 2026 17:29

Dismissing prior approval — superseded by a fresh review on this PR.

# Conflicts:
#	src/content/docs/components/extractors/other/generic/generic.md
#	src/content/docs/transformations/index.md
#	src/content/docs/transformations/mappings/index.md
@keboola-pr-reviewer-bot
keboola-pr-reviewer-bot dismissed their stale review August 27, 2026 20:09

Dismissing prior approval — a new commit was pushed and this review was for an earlier SHA. Run @keboola-pr-reviewer-bot review to get a fresh verdict.

@keboola-pr-reviewer-bot

Copy link
Copy Markdown

New commit on e6e042c — dismissed 1 stale bot approval. Comment @keboola-pr-reviewer-bot review when you want a fresh review.

David's call: the 59 legacy CLI pages are not being ported into help. The
banner names the repository instead, so every link that pointed at
developers.keboola.com/cli/ now goes to github.com/keboola/keboola-as-code —
which survives the domain retirement.

Six links across five pages. Five go to the repository:

- cli/index.md — the kbagent-vs-legacy banner
- overview/index.md — "the legacy Keboola as Code CLI is still available"
- transformations/dbt/cli/cli.md ×2 — local dbt development runs on kbc, and
  the installation link now points at the repository's install section
- management/project/index.md — CLI Sync is a Keboola-as-Code feature

The sixth goes to help instead: tutorial/index.md listed "Command-line
interface (CLI)" among the advanced steps with wording that fits either tool
("operate a project efficiently using the Keboola command-line tool"). A reader
starting the tutorial today should land on the supported CLI, so that one points
at /cli/, whose banner then explains the legacy tool and links the repository.

This clears the last developers.keboola.com/cli/ reference in the docs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Iamfle4ka pushed a commit that referenced this pull request Sep 3, 2026
David's call (2026-09-02): the legacy Keboola-as-Code pages are not ported into
help. The kbagent banner names github.com/keboola/keboola-as-code instead, and
every dev-CLI link in the docs now points there (#1094). #1093 is closed.

The contract has to say so, otherwise it reports 59 URLs as conservation
failures forever. Adds an `external` status: the destination is kept verbatim
rather than forced into a help path, --build stops expecting those URLs in dist
and reports them separately, and --live checks the 301 against the off-site URL
instead of prefixing help's host.

The honest reading of the gate on today's main changes accordingly:

  before   67 resolve nowhere
  after    59 off-site by decision, 8 genuinely unresolved

The remaining 8 are the PRDCT-550 rows — /integrate/ artifacts and jobs,
/automate/ run-job and set-schedule, /overview/ api and encryption.

Note for the retirement (PRDCT-565): these 59 are the one group whose 301 does
not point at help. The edge rules need `developers.keboola.com/cli/**` sent to
the repository — or to /cli/, whose banner routes onward — and that choice is
now visible in the map rather than implied.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s documented

The banner read as a footnote about deprecation timing — "still supported for
now; new work should use kbagent" — which leaves a reader guessing whether the
two tools share anything and where the older one is written up.

Per David and Martin (2026-09-03): the legacy CLI reference is being deleted
with developers.keboola.com, not moved into help. So the banner now says the
three things a reader actually needs — what kbc is, that it shares nothing with
kbagent, and where it lives if they still use it — and points at the repository
rather than a domain that is going away.

Also drops the TODO asking Jordan for a deprecation timeline: that question is
answered.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e them

The dbt local-development page teaches Keboola as Code — install it, kbc dbt
init, generate profile/sources/env — and told the reader that platforms other
than macOS were "covered in the installation instructions", linking the tool's
repository. The repository has no installation instructions; the page that had
them is the one being deleted with developers.keboola.com, and the move into
the repo was rejected (keboola-as-code#2654).

So the commands move here, where they are actually used: Debian/Ubuntu, Fedora
and Alpine with their repository and GPG-key setup, the three Windows package
managers, the MSI and the precompiled binaries. macOS was already inline. Taken
from the page being deleted, at its corrected revision (developers-docs#397).

Also drops the same false promise from management/project: it sent readers to
the repository "for more detailed information".

This is the only place in help that still teaches kbc. Checked the rest:
cli/index.md carries the banner, overview names the tool and links the repo, and
cli/web-ui.md's `keboola-cli` is the kbagent Python package from keboola/cli —
a name collision, not this tool.
…n help

Batch 1 landed the Storage API pages after this branch was cut, so nine
/integrate/storage/** links now have homes: /storage/api/**, with the
#working-with-sliced-files fragment verified against the built id. The dev
home links follow the precedent already on this branch (→ /extend/), the
home-page bullet that advertised developers.keboola.com as a sibling site now
names Extending Keboola, and /extend/docker-runner/processors/ takes its
help alias.

78 → 35 remaining. All 35 are gated: 29 wait for the eight identity-landed
pages (#1120), three SSH-tunnel links are rewritten by #1019, three
#development-project links wait for #1022.

Verified: build 361 pages, audit-phase2 missing images 0, unclosed fences 0,
broken internal links unchanged at the pre-existing 29; every flipped target
exists in dist. Line endings preserved (four of the nine files are CRLF).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Iamfle4ka pushed a commit that referenced this pull request Sep 9, 2026
…s become 5, in their topic homes

Nikita's call (2026-09-09): no 1:1 landing. Triage each of the eight pages by section
against the June audits (PRDCT-363/368/369), the service swaggers and what help already
says; keep what is useful and new, fold it where the concept already lives, drop the
rest with the evidence recorded here.

Kept, merged, moved:
- /management/jobs/api/ (287 lines) from integrate/jobs + automate/run-job +
  automate/run-orchestration (504 + 53 + 56). Run a job, run a flow, poll, debug, and
  the API-level reference: states, waiting reasons, runId hierarchy via X-KBC-RunId,
  configuration vs configData, modes, runtime settings, the five job types.
- /extend/common-interface/encryption/ (150), content unchanged from overview/encryption.
- /extend/common-interface/artifacts/ + /tutorial/ (132 + 215) from integrate/artifacts.
- /flows/schedule-api/ (105) from automate/set-schedule (308).
- /overview/ gains "APIs and service endpoints": portals per stack, the token header,
  GET /v2/storage as the authoritative service list, the machine-readable apis.json.
  /overview/api/ redirects there.

Dropped, with evidence:
- The API catalogue table and the 144-line service-endpoint table: the portal and the
  Storage index are the source of truth; the table already listed 8 of 23 services, a
  wrong OAuth URL and no Sandboxes (audit PRDCT-363).
- The Apiary console section and its screenshot: the portal is not Apiary any more.
- run-orchestration's claim that one component serves Orchestrator and Flow jobs: the
  job queue defines keboola.orchestrator and keboola.flow separately (audit PRDCT-369).
- Field-by-field job object dump (120 lines), a 35-line component-list response and two
  45-line job responses: replaced by trimmed excerpts plus the swagger link.
- Eleven Postman deep links and one dead apiary.io link.
- Three of four full Scheduler request/response dumps; the scheduler.azure URL that no
  swagger server lists; the master-token claim the code does not confirm (VERIFY).
- Four screenshots: apiary-console, postman-import, orchestration-parameters,
  job-row-parameters.

Corrections applied from the audits: artifacts config key `orchestration` → `shared`
(job-queue Artifacts.php); job types are five, retryContainer added with a VERIFY for
its description; `[job types](todo)` link; three typos.

52 help links repointed to the new homes in 34 files; management/project/tokens and
transformations/python-plain are left to a follow-up because #1094 edits the same
lines. Nav: the temporary group is gone; the pages sit under Management › Jobs,
Flows and Common Interface.

Verified: build 367 pages, 273 redirect pages; audit-phase2 broken internal links 0,
missing images 0, unclosed fences 0; every inbound fragment (#run-a-job,
#job-runtime-configuration, #job-polling, #job-id, #working-with-the-jobs-api,
#encrypting-data-with-api, #apis-and-service-endpoints) resolves to an id in dist; all
nine old paths redirect to the new pages.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… files

Four on the API tokens page (three to the APIs subsection on /overview/, the
"region" one to /overview/#stacks) and the encryption link on the Python
transformations page. Their targets exist only once #1120 is on main, so this PR
merges after #1120 — the order the PR bodies already state.

After both land, the only dev-domain links left in help are the three to the dev
home's #development-project section, which wait for #1022.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
#1120 promotes the APIs subsection out of the /overview/ glossary into a first-class
section with id #apis; the three tokens-page links follow.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Iamfle4ka pushed a commit that referenced this pull request Sep 14, 2026
… job states, dev project on help

Nikita's decisions on the review's placement findings (2026-09-14):

APIs get their own `## APIs` section on /overview/, ahead of the glossary, instead of
an h3 inside "Other Commonly Used Terms". The home page's "API reference" and the other
24 repointed links now land on a first-class section; the anchor is #apis, followed in
15 places here and in #1094, #1091 and developers-docs#418.

Job states have one canonical home, /management/jobs/api/#job-status, the list checked
against the queue swagger. /management/jobs/ keeps the UI half and drops both its own
three-state list and the claim that a job always waits for infrastructure first — the
API page says platform delays keep a job in `created`, and the two contradicted each
other. /components/running-jobs-in-parallel/ keeps the billing rule and points at the
same anchor.

Two duplicate explanations collapse to a pointer: ai/index.md on apis.json, and
extend/job-queue's API menu, which listed the same Queue API calls the Jobs API page
documents in full.

The dev home's "Development Project" section lands as /extend/development-project/ —
the address #1022 also uses, so that PR drops the file when it rebases. The last three
developers.keboola.com links in help point there now, which leaves only the three that
#1022 owns. Its figures carry a VERIFY(owner): they come from the dev site unchanged.

Verified: build 368 pages, audit-phase2 broken links 0 / missing images 0 / unclosed
fences 0; #apis, #stacks, #job-status and the new page resolve in dist; no
#apis-and-service-endpoints and no dev-home links left in content.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@jordanrburger jordanrburger left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review

The link flipping itself is right, and I verified the results — but the PR has grown well past what the description says, and two things should be settled before it merges.

Verified

Merged onto main together with #1120 (clean both ways), built, and ran the audit: build clean at 369 pages, 0 broken internal links, 0 missing images. Live developers.keboola.com links across help go from 78 to 3, and the three that remain are exactly the /integrate/database/ SSH-tunnel ones #1019 owns. Anchor preservation checks out — the flipped anchors all resolve in dist/.

I also checked the new kbc install instructions on the dbt page against the live distribution, since those are user-facing commands: deb/Packages, deb/Release, apk/x86_64/APKINDEX.tar.gz, rpm/repodata/repomd.xml and all three GPG keys return 200, and both the Homebrew tap and the Scoop bucket exist. The instructions are accurate.

1. CRLF → LF normalization inflates the diff by ~480 lines

Three files were rewritten end to end for one changed character each:

File Diff Real change (--ignore-all-space)
storage/tables/data-types/index.md 200+ / 200- 1 line
transformations/code-patterns/index.md 94+ / 94- 1 line
components/writers/storage/aws-s3/index.md 90+ / 90- 1 line

All three had CRLF endings on main and are LF on the branch. That's 480 of the PR's 487 insertions.

This has a concrete cost: git merge-tree confirms it conflicts with #1084 on data-types/index.md. The two changes are adjacent anyway, so some conflict was likely — but a whole-file rewrite turns a small hunk conflict into a 200-line one.

It's also half a migration: the repo has no .gitattributes, and 53 more Markdown files under src/content/docs/ still have CRLF. Either restore the original line endings in these three files so the diff is three lines, or split the normalization into its own PR with a .gitattributes so it's done once and consistently. Doing it incidentally in a link-flip PR is the one option that has the costs of both.

2. The description no longer matches the PR

The body is dated to the original 2026-08-19 cut and describes a purely mechanical flip. Since then the PR has gained:

  • ~60 lines of new kbc install documentation across five platforms on the dbt CLI page
  • a rewrite of how Keboola as Code is positioned in cli/index.md
  • the CRLF normalization above

None of it is mentioned. The "Deliberately NOT flipped" table is stale too — #1053 and #1054 both merged on 2026-08-26, and the storage and generic-extractor links they were waiting on were in fact flipped in the later commits. Since the description is what a reviewer reads first, it'd be worth a rewrite before merge.

3. This resolves a TODO(human-review, Jordan) — that call is mine

cli/index.md previously read:

kbagent is a different tool from the legacy Keboola as Code CLI (kbc) ... That tool is still supported for now; new command-line work should use kbagent.
<!-- TODO(human-review, Jordan): confirm the legacy Keboola-as-Code CLI deprecation timeline and where to state it. -->

The PR removes the TODO and replaces this with "a different, older tool ... it is not documented here", dropping the "still supported" statement.

I understand the motivation — #1093, which would have ported the kbc docs under /cli/, was closed, so this PR picked up the job of not stranding kbc users, and conserving the install commands rather than losing them is the right instinct. But the support status of a shipped tool is a product fact, and AGENTS.md is explicit that those go to a maintainer rather than being decided in the edit. Let's agree the wording before this lands; I'll confirm the deprecation position.

Minor

scripts/check-redirects.mjs, which the --flippable verification rests on, isn't in the repo — so a reviewer can't reproduce that part. Worth committing it, or noting that it's a local tool.

Summary

The flips and the install content are good. Please revert or split out the line-ending change, refresh the description, and let's settle the Keboola-as-Code wording — then this is ready.

Nikita and others added 3 commits September 14, 2026 15:59
Jordan's review: these three had CRLF on main and the branch rewrote them end to end
for one changed character each — 480 of the PR's 487 insertions — which turned a small
hunk conflict with #1084 into a 200-line one on data-types/index.md.

Each file is back to its original bytes with only its single link flipped, so the diff
is three lines. `git merge-tree` against #1084 is now clean.

Normalizing line endings repo-wide (50 more Markdown files still have CRLF, and there
is no .gitattributes) stays a separate job rather than a side effect of a link flip.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
His review is right that the support status of a shipped tool is a product fact, not an
edit-time decision, and this branch had removed both the "still supported for now"
sentence and the TODO marker that held the question open.

The banner keeps what David Esner asked for in Slack on 2026-09-03 — name the tool, say
it shares nothing with kbagent, link the repository — and now asserts no support status
in either direction. The TODO records both inputs so Jordan can settle the deprecation
position in one edit.

Broken internal links on this branch go 29 → 30: the extra one is the encryption link
flipped on transformations/python-plain, whose target lands in #1120. Merge order is
unchanged: #1120, then this.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Iamfle4ka pushed a commit that referenced this pull request Sep 14, 2026
…s being republished

Both items from Jordan's review of this PR.

1. `/overview/api/` is the most-linked retired dev URL, and `redirect-from.mjs` derives
its target from the page slug, so a `redirect_from` structurally cannot carry a
fragment: the redirect landed at the top of a 200-line page and the reader had to
scroll past four sections to reach APIs. Jordan's own suggestion, and the better
Diátaxis fit, is a page of its own. `/overview/apis/` now holds the portals table, the
token header, the service-endpoint rule, `apis.json` and the Postman collection; the
redirect lands exactly on it; `/overview/` keeps one sentence under Stacks. 16 links
follow, plus the ones in #1094, #1091 and developers-docs#418.

2. The Development Project page committed to third parties on figures no public source
confirms — 3.5 GB storage, Snowflake backend, 10 users, 3 orchestrations — carried from
the dev site. Jordan would not merge that unverified, and the cost of publishing a wrong
commitment is not the cost of a wrong behaviour note. The page keeps what a developer
actually needs (the conditions, registering in the Developer Portal, the support email
and the template) and no longer states the size. The figures are logged in the PR body
so nothing is lost, and a VERIFY asks the owner to put them back if they still hold.

Verified: build 370 pages, audit-phase2 broken internal links 0, missing images 0,
unclosed fences 0; /overview/api/ redirects to /overview/apis/; no /overview/#apis
references left.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
#1120 splits it out as /overview/apis/ so the /overview/api/ redirect can land exactly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

This branch was successfully deployed

1 active deployment
Preview — f315b07d Deployed Sep 14, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-approved:connection-docs dev-docs-migration developers.keboola.com → help.keboola.com migration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants