diff --git a/ci-templates/azure-devops/azure-pipelines.yml b/ci-templates/azure-devops/azure-pipelines.yml
index 5326bce..5b58a29 100644
--- a/ci-templates/azure-devops/azure-pipelines.yml
+++ b/ci-templates/azure-devops/azure-pipelines.yml
@@ -33,7 +33,7 @@ stages:
version: 22.x
# An exact version: change it when you upgrade, as
# https://docs.ingestron.io/docs/how-to/upgrade#choose-the-version-you-run says.
- - script: npm install -g ingestron@2.3.1
+ - script: npm install -g ingestron@2.4.0
displayName: Install Ingestron
- script: ingestron check
displayName: ingestron check
diff --git a/ci-templates/azure-devops/ingestron-check.yml b/ci-templates/azure-devops/ingestron-check.yml
index 0e4dab4..ee04b68 100644
--- a/ci-templates/azure-devops/ingestron-check.yml
+++ b/ci-templates/azure-devops/ingestron-check.yml
@@ -15,7 +15,7 @@ steps:
version: 22.x
# An exact version: change it when you upgrade, as
# https://docs.ingestron.io/docs/how-to/upgrade#choose-the-version-you-run says.
- - script: npm install -g ingestron@2.3.1
+ - script: npm install -g ingestron@2.4.0
displayName: Install Ingestron
- script: ingestron check
displayName: ingestron check
diff --git a/ci-templates/github-actions/deploy.yml b/ci-templates/github-actions/deploy.yml
index 7c6c959..bd2ae6c 100644
--- a/ci-templates/github-actions/deploy.yml
+++ b/ci-templates/github-actions/deploy.yml
@@ -29,7 +29,7 @@ jobs:
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 22
- - run: npm install -g ingestron@2.3.1
+ - run: npm install -g ingestron@2.4.0
- run: ingestron check
build:
diff --git a/ci-templates/github-actions/ingestron-check.yml b/ci-templates/github-actions/ingestron-check.yml
index e238faa..47ba79f 100644
--- a/ci-templates/github-actions/ingestron-check.yml
+++ b/ci-templates/github-actions/ingestron-check.yml
@@ -18,5 +18,5 @@ jobs:
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 22
- - run: npm install -g ingestron@2.3.1
+ - run: npm install -g ingestron@2.4.0
- run: ingestron check
diff --git a/components/mdx.tsx b/components/mdx.tsx
index a344809..8cf48d4 100644
--- a/components/mdx.tsx
+++ b/components/mdx.tsx
@@ -37,6 +37,7 @@ import {
ZonesNotApplied,
} from "@/components/reference/pack-intent";
import { KitFacts, KitFile, KitIntent, KitList } from "@/components/reference/kits";
+import { RecipeCatalog, RecipeList, RecipePlaceholders } from "@/components/reference/recipes";
import { ErrorCodes, LoadingCodes } from "@/components/reference/error-codes";
import { ExtensionCommands } from "@/components/reference/extension-commands";
import { ExamplesList } from "@/components/reference/examples-list";
@@ -106,6 +107,9 @@ export function getMDXComponents(components?: MDXComponents) {
KitFacts,
KitFile,
KitIntent,
+ RecipeList,
+ RecipePlaceholders,
+ RecipeCatalog,
CliCommands,
BuiltInTemplates,
ProjectSources,
diff --git a/components/reference/connector-page.tsx b/components/reference/connector-page.tsx
index 7c85f5e..1f52979 100644
--- a/components/reference/connector-page.tsx
+++ b/components/reference/connector-page.tsx
@@ -20,6 +20,7 @@ import { ConnectorSettings } from "./connector-settings";
import { ExamplesList } from "./examples-list";
import { Inline } from "./inline";
import { NativeReadSettings } from "./native-read-settings";
+import { ConnectorRecipes } from "./recipes";
import { SettingsSections } from "./settings-sections";
/** Words only one connector needs, placed in one of its page's slots.
@@ -55,6 +56,7 @@ export function ConnectorPage({ id, children }: { id: string; children?: ReactNo
+
+
+
+
+
+
+ {recipes().map((recipe) => (
+ Recipe
+ Gets
+ Inputs
+ Used by default for
+
+
+ ))}
+
+
+ {recipe.title} (
+ {recipe.id})
+ {kindWords[recipe.kind]}
+
+ {Object.keys(recipe.inputs).length === 0
+ ? "None"
+ : Object.keys(recipe.inputs).map((name, index) => (
+
+ {name}
+
+
+
{`{${name}}`} is {`{${firstInput()}}`}, is an input of the recipe: the
+ value the connection gives in metadata.with, or the input’s default.
+ {recipe.id}
+ {recipe.ask.save}
+ {block.text}
+ ), + )} + {inputs.length > 0 && ( +| Input | +What to write | +Default | +
|---|---|---|
+ {name}
+ |
+ {input.description} | +{input.default === undefined ? "None" : {input.default}} |
+
+ Documentation: +
+
+ {how === "default" ? (
+ <>
+ A connection with no metadata uses the{" "}
+ {recipe.title} recipe.
+ >
+ ) : how === "named" ? (
+ <>
+ Name the {recipe.title} recipe in the
+ connection’s metadata.from: {recipe.id}.
+ >
+ ) : (
+ <>
+ If the source is one the {recipe.title} recipe
+ describes, name it in the connection’s metadata.from:{" "}
+ {recipe.id}.
+ >
+ )}{" "}
+ It asks someone to save {recipe.ask.save}.
+
{name}
+ metadata.with
+