From 97ebd748e13167d02c8dbe5542867a9ca44cba47 Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Tue, 6 Oct 2026 16:36:14 +1100 Subject: [PATCH 1/3] docs: regenerate with @stackql/provider-utils 0.7.11 and the source repo link Bumps @stackql/provider-utils to 0.7.11, passes --source-project to the doc generation target and regenerates the markdown docs, so the provider summary links to the source repository. Co-Authored-By: Claude Fable 5.1 --- Makefile | 4 ++- bin/generate-docs.mjs | 4 ++- package-lock.json | 68 ++++++++++++++++++++++++++++++++++--------- package.json | 2 +- website/docs/index.md | 1 + 5 files changed, 63 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index eb462a5..a44243a 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,7 @@ SHELL := bash .DEFAULT_GOAL := help PROVIDER := snowflake +SOURCE_PROJECT ?= https://github.com/stackql-registry/stackql-provider-$(PROVIDER) SERVICES_DIR := provider-dev/openapi/src/$(PROVIDER) SERVERS := [{"url": "https://{endpoint}.snowflakecomputing.com", "variables": {"endpoint": {"default": "orgname-accountname", "description": "Organization and account identifier (orgname-accountname)"}}}] PROVIDER_CONFIG := {"auth": {"type": "bearer", "credentialsenvvar": "SNOWFLAKE_PAT"}, "snake_case_aliases": true} @@ -89,7 +90,8 @@ docs: ## generate the website docs from the generated provider --provider-name $(PROVIDER) \ --provider-dir ./$(SERVICES_DIR)/v00.00.00000 \ --output-dir ./website \ - --provider-data-dir ./provider-dev/docgen/provider-data + --provider-data-dir ./provider-dev/docgen/provider-data \ + --source-project $(SOURCE_PROJECT) node provider-dev/docgen/sanitize_docs.mjs website: ## build the docusaurus microsite (vendors shared config first) diff --git a/bin/generate-docs.mjs b/bin/generate-docs.mjs index 4be9b84..fec1d6b 100644 --- a/bin/generate-docs.mjs +++ b/bin/generate-docs.mjs @@ -14,6 +14,7 @@ async function generateDocs() { const providerDir = getArg('--provider-dir'); const outputDir = getArg('--output-dir'); const providerDataDir = getArg('--provider-data-dir'); + const sourceProject = getArg('--source-project'); if (!providerName || !providerDir || !outputDir || !providerDataDir) { console.error('Error: Missing required arguments'); @@ -31,7 +32,8 @@ async function generateDocs() { providerName, providerDir, outputDir, - providerDataDir + providerDataDir, + sourceProject }); console.log('Documentation generated successfully:', result); diff --git a/package-lock.json b/package-lock.json index 65bd7e3..6ecd3a4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@apidevtools/swagger-parser": "^12.1.0", "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.7.7", + "@stackql/provider-utils": "^0.7.11", "js-yaml": "^5.2.1" }, "engines": { @@ -113,6 +113,30 @@ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", "license": "MIT" }, + "node_modules/@jsep-plugin/assignment": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", + "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@jsep-plugin/regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", + "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, "node_modules/@so-ric/colorspace": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz", @@ -125,11 +149,11 @@ }, "node_modules/@stackql/deno-openapi-dereferencer": { "name": "@jsr/stackql__deno-openapi-dereferencer", - "version": "0.3.1", - "resolved": "https://npm.jsr.io/~/11/@jsr/stackql__deno-openapi-dereferencer/0.3.1.tgz", - "integrity": "sha512-7Ucdom3SYxvzp7VwzulQMe66E+1LeCZIprFQ70PwRPIUfL90bYNQDrLfe5L1WaB+X7StWdHmoFSFxoa9RDlN7w==", + "version": "0.3.2", + "resolved": "https://npm.jsr.io/~/11/@jsr/stackql__deno-openapi-dereferencer/0.3.2.tgz", + "integrity": "sha512-Qj5B0pl2Rsec+GHwGGIh9254AQfEplkD82HW9FEhQR+vZvzhEgF2Ap72hmdLq8rWOGV4soSnQ4sFYorE2pIT5Q==", "dependencies": { - "jsonpath-plus": "7.0.0" + "jsonpath-plus": "^10.3.0" } }, "node_modules/@stackql/pgwire-lite": { @@ -142,13 +166,13 @@ } }, "node_modules/@stackql/provider-utils": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.7.7.tgz", - "integrity": "sha512-wPjnsk8UWeXD0YhhZ/OJJ1uFyZ0a/ZgTKuUYrmMV9hTJ1/QZ+hpRW2Btni7MPVpnodKHex5UFjpnP4OX9czDHw==", + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.7.11.tgz", + "integrity": "sha512-yRy0nbWzI8IkAZlN2WCMxz/9pdD11EXTx85U+e6pQzIq61CtUpVLklW70Z4fMTTGwLa9nzLqWCNPS5+LBBY0+g==", "license": "MIT", "dependencies": { "@apidevtools/swagger-parser": "^10.1.1", - "@stackql/deno-openapi-dereferencer": "npm:@jsr/stackql__deno-openapi-dereferencer@^0.3.1", + "@stackql/deno-openapi-dereferencer": "npm:@jsr/stackql__deno-openapi-dereferencer@^0.3.2", "csv-parser": "^3.2.0", "js-yaml": "^4.1.0", "pluralize": "^8.0.0" @@ -416,6 +440,15 @@ "js-yaml": "bin/js-yaml.mjs" } }, + "node_modules/jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + } + }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -423,12 +456,21 @@ "license": "MIT" }, "node_modules/jsonpath-plus": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.0.0.tgz", - "integrity": "sha512-MH4UnrWrU1hJGVEyEyjvYgONkzNTO6Yol0nq18EMnUQ/ZC5cTuJheirXXIwu1b9mZ6t3XL0P79gPsu+zlTnDIQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.4.0.tgz", + "integrity": "sha512-T92WWatJXmhBbKsgH/0hl+jxjdXrifi5IKeMY02DWggRxX0UElcbVzPlmgLTbvsPeW1PasQ6xE2Q75stkhGbsA==", "license": "MIT", + "dependencies": { + "@jsep-plugin/assignment": "^1.3.0", + "@jsep-plugin/regex": "^1.0.4", + "jsep": "^1.4.0" + }, + "bin": { + "jsonpath": "bin/jsonpath-cli.js", + "jsonpath-plus": "bin/jsonpath-cli.js" + }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/kuler": { diff --git a/package.json b/package.json index a7c78b4..1ca7592 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "dependencies": { "@apidevtools/swagger-parser": "^12.1.0", "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.7.7", + "@stackql/provider-utils": "^0.7.11", "js-yaml": "^5.2.1" }, "keywords": [ diff --git a/website/docs/index.md b/website/docs/index.md index 89e089e..4a33437 100644 --- a/website/docs/index.md +++ b/website/docs/index.md @@ -23,6 +23,7 @@ Cloud data platform - query and provision Snowflake control plane resources (dat total services: __13__ total resources: __88__ +source project: __[stackql-provider-snowflake](https://github.com/stackql-registry/stackql-provider-snowflake)__ ::: From 1fdf08ac0c6e47a408f901d8687b34eda6cb97d7 Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Tue, 6 Oct 2026 16:36:15 +1100 Subject: [PATCH 2/3] website: add the Back to StackQL Docs sidebar link Opens the docs sidebar with a link to /stackqldocs, the redirect to the main stackql.io docs, matching the query library site and the provider template. Styled by the new .sidebar-back-link rules in the site stylesheet. No generated docs or dependencies change. Co-Authored-By: Claude Fable 5.1 --- website/sidebars.js | 13 +++++++++++++ website/src/css/global.css | 22 +++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/website/sidebars.js b/website/sidebars.js index f719984..fe6cbb3 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -2,6 +2,19 @@ import { providerTitle } from './provider.js'; const sidebars = { mainSidebar: [ + // Way back to the main stackql.io docs, as on the query library site. + // '/stackqldocs' is a shared-config redirect route (registered on this + // site by the vendored redirects plugin) that forwards to + // https://stackql.io/, so the link renders as internal - no external-link + // icon - and the broken-link checker validates it. The arrow and the + // divider come from the .sidebar-back-link rules in src/css/global.css. + { + type: 'link', + label: 'Back to StackQL Docs', + href: '/stackqldocs', + className: 'sidebar-back-link', + }, + // '/providers' is likewise a shared redirect, to https://stackql.io/providers. { type: 'link', label: 'All Providers', href: '/providers' }, { type: 'category', diff --git a/website/src/css/global.css b/website/src/css/global.css index 3e50218..0b80357 100644 --- a/website/src/css/global.css +++ b/website/src/css/global.css @@ -284,4 +284,24 @@ div:has(> .vhsImage) { .navbar__logo img[src$='stackql-registry-logo-white.svg'] { content: url('/img/stackql-registry-logo-white-mobile.svg'); } -} \ No newline at end of file +} + +/* +* sidebar: back link to the main stackql.io docs (the first item in +* sidebars.js). Same treatment as the query library site: bold label, +* leading arrow drawn here so the label stays plain text, divider below. +*/ +.sidebar-back-link { + border-bottom: 1px solid var(--ifm-color-emphasis-300); + padding-bottom: 0.5rem; + margin-bottom: 0.5rem !important; +} + +.sidebar-back-link .menu__link { + font-weight: 600; +} + +.sidebar-back-link .menu__link::before { + content: '\2190'; + margin-right: 0.5rem; +} From 8b7ec85c866f92d3ccaa07a5b496abb31ef2e986 Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Tue, 6 Oct 2026 18:47:34 +1100 Subject: [PATCH 3/3] docs: bump @stackql/provider-utils to 0.7.12 Keeps the doc generation dependency on the current release. 0.7.12 only changes the generate-docs-v2 index page (Markdown hard breaks in the Provider Summary); this provider uses the v1 generator, whose output is unchanged, so the regenerated docs are identical. Co-Authored-By: Claude Fable 5.1 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6ecd3a4..bd71510 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@apidevtools/swagger-parser": "^12.1.0", "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.7.11", + "@stackql/provider-utils": "^0.7.12", "js-yaml": "^5.2.1" }, "engines": { @@ -166,9 +166,9 @@ } }, "node_modules/@stackql/provider-utils": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.7.11.tgz", - "integrity": "sha512-yRy0nbWzI8IkAZlN2WCMxz/9pdD11EXTx85U+e6pQzIq61CtUpVLklW70Z4fMTTGwLa9nzLqWCNPS5+LBBY0+g==", + "version": "0.7.12", + "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.7.12.tgz", + "integrity": "sha512-cwlnLkW/AZ86YVthU/HmVDVlwLHsuJtiCx+w0peqO7t/NpsgLsUneH5vG2PPt+yPv3euZeQg1HeO7NOAgDQdBw==", "license": "MIT", "dependencies": { "@apidevtools/swagger-parser": "^10.1.1", diff --git a/package.json b/package.json index 1ca7592..347eb1e 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "dependencies": { "@apidevtools/swagger-parser": "^12.1.0", "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.7.11", + "@stackql/provider-utils": "^0.7.12", "js-yaml": "^5.2.1" }, "keywords": [