PRDCT-554: Variables under Components — one home, four override treatments collapsed - #1051
PRDCT-554: Variables under Components — one home, four override treatments collapsed#1051Iamfle4ka wants to merge 10 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
The map still routed the 42 dev /extend/** pages to /components/development/**, a section that was never built: Jordan approved /extend/ as its own top-level section instead (#1046, merged 2026-07-29, commit 8504c9d). Every one of those 42 targets 404'd, so deleting the dev pages would have orphaned their URLs. #1046 preserved the dev path structure 1:1, so these become identity redirects across domains (developers.keboola.com/extend/X/ -> help.keboola.com/extend/X/). Verified: all 42 targets now resolve in a production build; conservation failures drop from 162 to 117, and the remaining 117 are units whose help pages are not on main yet (#1023, #1051-#1054, artifacts, jobs, overview/api, encryption, CLI). The NEW-sections table entry is marked superseded rather than deleted so the provenance of the change stays readable. Left untouched: the 3 rows still targeting /components/development/ (artifacts x2, overview/encryption). They are flagged `unsure` and are genuine open owner calls. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Owner decisions from the placement audit — resolvedAsked Matyáš. Two of the three open items are settled. Decision 3 — does Variables belong under Transformations? → no, ComponentsVariables are a base component ( Not executed here, deliberately. The migrated Decision 1 — flow-variable overrides in three places → first half applied
Worth flagging what the fact-check caught, because my first attempt was wrong: I originally linked
Conservation: every removed paragraph, screenshot and JSON block survives in Also dropped Still open
Verification
One finding for the Flows owner, not for this PR
|
6df28b9 to
a338e25
Compare
Re-cut of phase-2 batch 4 (was #1033, stacked on the big-bang #1027) as a standalone per-unit PR off main, per the 2026-07-27 pivot — no dependency on #1027's dots-UI / temp nav group. Moves the 2 Variables API pages under the canonical Variables page at /transformations/variables/api/ (+ /tutorial/). Old /integrate/variables/* URLs keep working via redirect_from. Nav: Variables becomes a branch with a "Variables API" child. Build clean (258 pp); audit 0 missing images. Broken internal links are all forward-refs from these pages to sibling batches not yet on main (/storage/api, /components/extractors/generic-extractor, /integrate/jobs, /extend/*) — they heal as those units land; acceptable during the incremental merge. Supersedes the stacked #1033 (closed with the #1027 stack once the queue drains). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fact-checked against the Queue API + config-resolver source (keboola-sdk-go, job-queue-*-client, configuration-variables-resolver). Migration was drift-free; fixes are pre-existing dev-source defects: - CRITICAL: the runtime job parameter was misspelled `variablesValuesId` (extra "s") in the prose (×5) — the real Queue API field is `variableValuesId` (the code examples already used the correct form). A reader copying the prose spelling into a job body gets it silently ignored. - MAJOR: two invalid JSON examples (missing comma after the parameters object; unterminated `"config"` string) → fixed so both parse. - Removed the stale "preview feature" banner — Variables are GA (the canonical /transformations/variables/ page carries no such caveat; keboola.variables is first-class in config resolution). - Softened the absolute "type is always string" claim — it contradicted the tutorial (which uses type:int); allowed types flagged for owner-verify. Build clean (258 pp); audit 0 missing images (the 4 assets are present in public/). Remaining broken links are forward-refs to sibling not-yet-merged units. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Followability pass (guide-tester). Two flags run down first: the component id
`ex-generic-v2` was flagged as possibly-wrong but is VERIFIED correct against the
live component index (keboola.ex-generic-v2 is absent) — left unchanged; and the
variable `type` question was resolved against configuration-variables-resolver
(free-form scalar, no enum; value substituted as text).
Fixes:
- Tutorial "Check the job result" was screenshot-only → added the job API: the
run-job returns id + status; poll GET $JOB_QUEUE_HOST/jobs/{jobId} (status
processing → success / error). Screenshots kept as a supplement.
- index: clarified `type` is a free-form descriptive label (string/int/…), used by
the UI; the resolver substitutes as text — so the tutorial's `type: int` is valid
and index/tutorial no longer appear to disagree.
- Fixed two broken in-page anchors (verified against the generated heading IDs):
step-1 …variables→variable, step-2 …variable→variables.
- Unified the job-queue API-reference link format with the index.
- Tutorial: dropped a trailing-dash typo; noted the Storage token needs
config-management rights (a read-only token fails at create-config).
Build clean (258 pp); audit 0 missing images; the fixed anchors resolve.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…les page
Both the existing transformations/variables page and this new API reference were
titled "Variables" (near-sibling slugs). Align the API page's frontmatter title
with its nav label ("Variables API") and its actual content. Placement/dedup of the
overlapping Flow-usage and Shared-Code content is a decision for the owner/SME —
surfaced in the PR body, not pre-decided here.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Closes the first half of the placement/dedup audit's open decision 1,
per Matyáš: /flows/ is canonical for flow-driven variable values and our
copy here was stale (pre-conditional-flows orchestration screenshots).
The removed prose, screenshots and JSON are all covered by flows/index.md
and flows/flows-legacy/index.md. The one sample with no home elsewhere —
{"config": "6939", "variableValuesData": {…}} — was wrong anyway: it omits
componentId, which the job API requires (job-queue-internal-api-php-client
NewJobDefinition.php marks it isRequired()->cannotBeEmpty()). Not restored.
Both flow routes are named, with the anchors that actually document them:
name-matching merge → #how-variables-reach-component-jobs, per-task
override → #control-task-execution. An earlier draft pointed at
/flows/#variables, which is the Set-Variable UI — a different mechanism.
Also drops orchestration-parameters.png and task-parameters.png (both
copies each) — referenced only by the removed section. /flows/task-parameters.png
is a different file and is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
a338e25 to
9b42156
Compare
…ed Code split Jordan's 07-30 note was that the nav reads as two copies of one feature. The cause was that nothing linked the two pages in either direction — the new API page's only internal links were its own self-anchors. - Both pages now open with a one-line pointer at the other (UI <-> API). - The API page's `## Shared Code` becomes `## Shared Code via the API` and states what it covers; the UI chapter gains the reverse pointer. The two chapters cover different surfaces (UI workflow vs. the create-configuration call against `keboola.shared-code`), so neither is redundant — they just read that way unlinked. - The native `#shared-code` heading is deliberately unchanged: two links in transformations/index.md target that anchor. Only the API page's heading moved, and nothing links to its old anchor. Verified: build clean (308 pages), both `#shared-code` and `#shared-code-via-the-api` present in the built HTML, broken-link count unchanged (54, same 8 cross-unit danglers as before — no new ones). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…verride treatments
Owner decision 2026-08-05 (Jordan's option on the 07-30 call): Variables lives under
Flows. `/transformations/variables/` becomes `/flows/variables/`, with the API pages as
its children; the old URLs keep working via `redirect_from`.
The override of a configuration variable from a flow was documented in FOUR places:
`transformations/variables` "Flow Usage", `flows/index.md` "## Variables",
`flows/index.md` "Control Task Execution" (the only one with current UI), and the API
page's "Orchestrator Integration". They collapse into one section on the new page.
Corrected while merging them, against the live flow schemas:
- Conditional flows are `keboola.flow`; `keboola.orchestrator` is legacy. The API page's
"Orchestrator Integration" documented the legacy component as if it were current. It is
now "Driving Variables from a Flow", split into Conditional Flows (variable tasks,
merge-by-name, `variableOverrides` tri-state) and Legacy Flows (the existing task
payload, labelled legacy with a migration-guide link).
- The evaluation-sequence rules and the surrounding prose said "orchestration" throughout.
Shared Code is a different feature — it substitutes code, not values, and only for
transformations — so it moves out to `/transformations/shared-code/`, UI plus the API
section lifted off the Variables API page. Its 17 images move with it.
Also: the Jekyll-era escape `{{ "{{ multiplier " }}}}` rendered literally on the page;
`flows/index.md` drops from 391 to 227 lines; `workspace/sql-editor` linked variables
through an absolute help.keboola.com URL.
Verified: build clean, 309 pages. audit-phase2 broken links 54 → 54, missing images 0,
one old-docs smell fixed (156 → 155 total). #1073's anchor checker reports no new broken
anchors from these pages — the two on the API page are the `config-file` headings #1069
repairs. All five old URLs redirect, no duplicate heading ids.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Two of these are defects my own rewrite introduced:
- `actionParameters` was bound to `keboola.orchestrator` by the new "Legacy Flows"
heading. That property belongs to the *older* `orchestrator` component
(syrup.keboola.com/orchestrator); `keboola.orchestrator` stores tasks as
`task: {componentId, configId, mode, …}`, which the page's own Step 5 example shows.
Claim dropped rather than restated.
- Renaming "orchestration" → "flow" in the evaluation-sequence rules silently asserted
legacy-orchestrator precedence for `keboola.flow`, where neither task-level
`variableValuesId` nor run-level overrides are declared. Those bullets are now scoped
to legacy flows explicitly.
- The exception list read as though a `keboola.flow` configuration may carry placeholders
while the next sentence said it may not; it now names both flow components.
Pre-existing, but on pages this PR makes canonical:
- "If you omit *thirdVar*, it will be replaced by an empty string" is wrong.
`configuration-variables-resolver` collects every unresolved placeholder and throws
`Missing values for placeholders: …`. It also contradicted the new UI page, which
states the error correctly. Replaced with both real error strings.
- The static flow-variable example used `"value": 3600`; the live `keboola.flow` schema
declares `value` as a string, so an unquoted number fails validation. Same for the
`variableValuesData` example and the tutorial's `"value": 1`.
- **Tutorial blocker:** the run-job body inlined `'$VARIABLES_VALUES'` unquoted, so bash
word-split a multi-line value — curl got a JSON fragment truncated at
`"values":` plus 12 stray argv words, and only zsh happened to work. Now a heredoc on
stdin: verified ARGC=10 and a byte-identical, `json.load`-valid body in both shells.
- The tutorial said default values live in "additional configurations"; they are
configuration rows of the same variable configuration, referenced by
`variables_values_id`.
Also: the legacy task-payload claim is inherited from developers.keboola.com and is
absent from every public orchestrator schema, so it now carries a caution saying so
rather than reading as current behaviour. And `PageTitle.astro` still keyed its emoji off
`transformations/variables`, so the icon vanished with the move.
The two remaining broken anchors on the API page (`config-file/#input-mapping--basic`)
resolve once #1069 lands — it converts those `---` headings to em dashes, which slug to
exactly the two-dash form linked here.
Verified: build clean, 309 pages, audit unchanged at 54 broken links / 0 missing images /
155 total, no new broken anchors.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Placement decided: Flows (owner, 2026-08-05)Jordan's option from the 07-30 call. The loop this closesOverriding a configuration variable from a flow was documented in four places, two of them stale:
They collapse into one section, Corrected against the live flow schemas
Shared Code moved outIt substitutes code, not values, and only for transformations → Verification
Left for the owner
|
…-api-recut # Conflicts: # public/transformations/variables/orchestration-parameters.png # public/transformations/variables/task-parameters.png # src/content/docs/flows/index.md # src/content/docs/transformations/variables/index.md # src/content/docs/transformations/variables/orchestration-parameters.png # src/content/docs/transformations/variables/task-parameters.png
… name
Jordan ruled Components on the 08-05 sync; Matyáš confirmed on 08-07
("Call it Variables and I don't mind wherever it is. Components as a page is
fine."), which also settles the second question — there is no separate
"Variables API" product, the calls are configuration/Storage API plus Vault.
- /flows/variables/** -> /components/variables/** (3 pages, 6 assets)
- "Variables API" -> "Variables Through the API", parallel to the UI page
- nav: the group moves from Conditional Flows to Components, next to Running
Jobs in Parallel rather than buried under the connector catalogues
- 43 references repointed; PageTitle emoji key follows the slug
No new redirects: /flows/variables/ only ever existed on this branch, so the
five live URLs (/transformations/variables/*, /integrate/variables/*) still
point at the canonical page — verified in dist.
Moved to Components (08-08)Placement is settled, so the move is folded in here rather than left to a follow-up PR.
What changed
No new redirects were needed. 43 references repointed across 12 files; the |
What & why
Re-cut of phase-2 batch 4 (was #1033, stacked on the big-bang #1027) as a standalone per-unit PR off
main, per the 2026-07-27 pivot. Same content/placement as #1033, but with no dependency on #1027's dots-UI / temp "Developer Docs" nav group — so it can be reviewed and merged on its own.Moves the 2 Variables API pages under the canonical Variables page:
/transformations/variables/api/+/transformations/variables/api/tutorial//integrate/variables/*URLs keep working viaredirect_from.Verification
npm run buildclean — 258 pages.keboola.variablesconfig +{{var}}placeholder resolves at runtime and the value lands in the output data — job94591978,status: success(default-values path). The inlinevariableValuesDataoverride path is verified againstkeboola-sdk-gosource.node scripts/audit-phase2.mjs: 0 missing images. Broken internal links are all forward-refs from these pages to sibling batches not yet onmain(/storage/api,/components/extractors/generic-extractor,/integrate/jobs,/extend/*) — they heal as those units land; acceptable during the incremental merge.Supersedes
Replaces the stacked #1033 (which will be closed together with the #1027 big-bang stack once the per-unit queue is drained).
🤖 Generated with Claude Code
Placement / dedup audit (2026-08-03)
Ran the placement/dedup pass. Unlike Generic Extractor, this is not a clean stub-replace —
the nav already disambiguates (
Variables & Shared Code→Variables API→Tutorial), sothere's no twin-entry problem. What's left is genuinely owner/SME decisions, so I applied
only one safe fix and am surfacing the rest rather than pre-deciding:
Applied: retitled the API page's frontmatter
Variables→Variables API(it collided withthe existing Variables page's title; nav already calls it "Variables API").
Open decisions (for Jordan / Matias — not touched):
flows/index.md› ## Variables — the current, canonical treatment (conditional-flows UI + JSON).transformations/variables/index.md› ### Flow Usage — outdated (old orchestration screenshots).…/api/› ## Orchestrator Integration — outdated term ("orchestration" ×22, pre-conditional-flows).→ Recommendation: make
flows/index.mdcanonical; trim the Variables "Flow Usage" section to alink, and reframe the API page's "Orchestrator Integration" to "Flows" terminology + link. Touches
the Flows section, so worth a joint call.
transformations/variables/index.mdand API inthis page. Complementary, no dedicated Shared Code home (the nav group is "Variables & Shared Code").
→ Recommendation: cross-link rather than merge; low urgency.
transformations). Jordan raised this on 07-30 → Matias's call. Left as-is pending that decision.