diff --git a/.check-schema/index.js b/.check-schema/index.js index 25fb6881..8355fc01 100644 --- a/.check-schema/index.js +++ b/.check-schema/index.js @@ -9,22 +9,53 @@ const main = async () => { // console.log("RefParser", JSON.stringify(schema)) var errors = []; - function getPageProps(tokens) { + function getExtraProps(o) { + return { + default: (o.default ? "`" + o.default + "`" : undefined), + pattern: (o.pattern ? "`" + (o.pattern?.replaceAll("\\", "\\\\") || "") + "`" : undefined), + minimum: (o.minimum ? "`" + o.minimum + "`" : undefined), + maximum: (o.maximum ? "`" + o.maximum + "`" : undefined) + }; + } + + function getType(i) { + // console.log(i); + var type = "`" + (i.type || "object") + "`"; + if (i.enum) type = "`enum`" + ` [ ${i.enum.map((e) => ("`" + e + "`")).join(", ")} ]`; + if (i.items?.enum) type = `${"`array`"}${i.items.enum ? " of `enum`" + ` [ ${i.items.enum.map((e) => ("`" + e + "`")).join(", ")} ]` : ""}`; + else if (i.items) type = `${"`array`"}${(i.items.type ? " of `" + (i.items.type) + "`" : "")}`; + return type; + } + + function getPageProps(pageTokens) { var foundHeadings = []; - tokens - .filter(({ depth, type }) => type == "heading" && depth == 3) - .forEach(({ type, text }) => { - if (text && type === "heading") { - // console.log("heading", t); - foundHeadings.push(text) - } - }); - tokens - .filter(({ depth, type }) => type == "heading" && depth > 3) - .forEach(({ type, text }) => { - if (text && type === "heading") { - // console.log("heading", t); - foundHeadings.push(text) + // console.log("tokens", tokens); + pageTokens + .forEach(({ type, depth, tokens }, i) => { + if (type === "heading" && depth >= 3) { + var h = [] + // console.log("tokens", tokens); + // console.log("heading", tokens[i + 1]); + // h.push(text) + tokens + .filter(({ type }) => type === "text") + .forEach(({ text }) => { + h.push(text) + }); + tokens + .filter(({ type }) => type === "escape") + .forEach(({ text }) => h.push(text === "*")); + if (h.length == 1) h.push(false); + if (pageTokens.length > i + 1 && pageTokens[i + 1].type === "blockquote") { + var b = pageTokens[i + 1]; + // console.log("blockquote", b); + b.tokens + .filter(({ type }) => type === "paragraph") + .forEach(({ text }) => { + h.push(...text.split(" | ")) + }); + } + foundHeadings.push(h) } }); return foundHeadings; @@ -38,7 +69,9 @@ const main = async () => { if (!i || !!i.deprecated) return //recurse + var patternProperties = false; if (i.patternProperties) { + patternProperties = true; i = i.patternProperties[Object.keys(i.patternProperties)[0]]; } if (i.properties && Object.keys(i.properties).length) { @@ -54,6 +87,10 @@ const main = async () => { .forEach(({ properties, required }) => props.push(...getObjProps(k, properties, required)) ); + i.allOf?.filter(({ properties }) => !!properties) + .forEach(({ properties, required }) => + props.push(...getObjProps(k, properties, required)) + ); i.items?.anyOf?.filter(({ properties }) => !!properties) .forEach(({ properties, required }) => props.push(...getObjProps(`${k}[]`, properties, required)) @@ -75,39 +112,51 @@ const main = async () => { if (!!!i) return var req = !!reqKeys?.includes(k); var path = [attr, k].filter((s) => !!s).join("."); + var type = getType(i); + if (patternProperties) type = "`object` as map of named:" + type; + if (i.properties && Object.keys(i.properties).length) { - props.push([path, "object", req, i.default || i.const]); + props.push([path, req, type, getExtraProps(i)]); } else if (i.additionalProperties) { if (i.additionalProperties.oneOf) { props.push([ path, - i.additionalProperties.oneOf.map(({ type }) => type).join(","), req, - i.const, + "`object` as map of named: " + i.additionalProperties.oneOf + .map(getType) + .join(" or ") + " properties" + , + getExtraProps(i) ]); } else { - props.push([path, i.additionalProperties.type, req, i.default || i.const]); + type = "`object` as map of named: `" + i.additionalProperties.type + "` properties"; + props.push([path, req, type, getExtraProps(i)]); } } else if (i.items) { - props.push([path, "array", req, i.default || i.const]); + props.push([path, req, type, getExtraProps(i)]); } else if (i.type) { - if (i.const) path = `${path}: ${i.const}`; - props.push([path, i.type, req, i.default || i.const]); + if (i.const) { + path = `${path}: ${i.const}`; + type = "`const`"; + } + props.push([path, req, type, getExtraProps(i)]); } else if (i.const) { - props.push([`${path}: ${i.const}`, "string", req, i.default || i.const]); + props.push([`${path}: ${i.const}`, req, "`const`", getExtraProps(i)]); } else if (i.enum?.length) { - i.enum.forEach((e) => props.push([`${path}: ${e}`, e, req, i.default || i.const])); - } else if (i.const) { - props.push([path, i.const, req, i.default || i.const]); + i.enum.forEach((e) => props.push([`${path}: ${e}`, req, type, getExtraProps(i)])); + // } else if (i.const) { + // props.push([path, req, type, getExtraProps(i)]); } else if (i.oneOf) { props.push([ path, - i.oneOf - .filter(({ type }) => !!type) - .map(({ type }) => type) - .join(","), req, - i.const, + i.oneOf + .map(getType) + .filter((value, index, array) => + array.indexOf(value) === index + ) + .join(", "), + getExtraProps(i) ]); } // console.log('props', JSON.stringify(props)); @@ -128,6 +177,7 @@ const main = async () => { ...(props?.properties || {}), ...(then.properties || {}), options: (then.properties?.options != false ? { + ...then.properties?.options, properties: { ...(props?.properties?.options?.properties || {}), ...(then.properties?.options?.properties || {}), @@ -151,13 +201,16 @@ const main = async () => { ...(then.properties || {}), ...(properties || {}), options: (then.properties?.options != false ? { + ...then.properties?.options, properties: { ...(then.properties?.options?.properties || {}), ...(properties?.options?.properties || {}), } } : {}), routes: (then.properties?.routes != false ? { + ...then.properties?.routes, items: { + ...then.properties?.routes?.items, properties: { ...(bindings.properties?.routes?.items?.properties || {}), ...(then.properties?.routes?.items?.properties || {}), @@ -178,7 +231,9 @@ const main = async () => { ...bindings.properties, ...(then.properties || {}), routes: (then.properties?.routes != false ? { + ...then.properties?.routes, items: { + ...then.properties?.routes?.items, properties: { ...(bindings.properties?.routes?.items?.properties || {}), ...(then.properties?.routes?.items?.properties || {}), @@ -239,27 +294,75 @@ const main = async () => { // console.log('schemaAttrs', schemaAttrs) // get page headers and schema props - var pageHeaders = mdAttrs.filter((value, index, array) => - array.indexOf(value) === index - ); - var schemaProps = schemaAttrs.map((a) => (`${a[0]}${a[2]==true?'\\*':''}`)).filter((value, index, array) => - array.indexOf(value) === index - ); + var pageHeaders = mdAttrs.reduce((o, a) => ( + { + ...o, [a[0]]: { + name: a[0], + required: a[1] || false, + type: a[2] || '', + extra: (a[3] || ''), + } + }), {}); + var schemaProps = schemaAttrs.reduce((o, a) => ( + { + ...o, [a[0]]: { + name: a[0], + required: a[1] || false, + type: a[2] || '', + extra: (a[3] ? Object.entries(a[3]).filter(([_, o]) => (!!o)).map(([k, o]) => (`${k.charAt(0).toUpperCase() + k.slice(1).toLowerCase()}: ${o}`)).join(' ') : ''), + } + }), {}); + + // console.log('pageHeaders', pageHeaders) + // console.log('schemaProps', schemaProps) // print diff check - var addDiff = schemaProps.filter((x) => - !pageHeaders.includes(x) - ) - var removeDiff = pageHeaders.filter((x) => - !schemaProps.includes(x) - ) + // Object.entries(obj).forEach(([k, i]) { name, required, type, default } + var addDiff = Object.entries(schemaProps).map(([k, o]) => { + // console.log(k, o, pageHeaders[k]); + if (pageHeaders[k] && + (pageHeaders[k].name != o.name + || pageHeaders[k].required != o.required + || pageHeaders[k].type != o.type + || pageHeaders[k].extra != o.extra) + ) { + var p = { + name: o.name + }; + if (pageHeaders[k].required != o.required) p.required = o.required; + if (pageHeaders[k].type != o.type) p.type = o.type; + if (pageHeaders[k].extra != o.extra) p.extra = o.extra?.replaceAll("\\\\", "\\"); + return p + } else if (!pageHeaders[k]) { + return o + } + }).filter((x) => !!x); + var removeDiff = Object.entries(pageHeaders).map(([k, o]) => { + if (schemaProps[k] && + (schemaProps[k].name != o.name + || schemaProps[k].required != o.required + || schemaProps[k].type != o.type + || schemaProps[k].extra != o.extra) + ) { + var p = { + name: o.name + }; + if (schemaProps[k].required != o.required) p.required = o.required; + if (schemaProps[k].type != o.type) p.type = o.type; + if (schemaProps[k].extra != o.extra) p.extra = o.extra?.replaceAll("\\\\", "\\"); + return p + } else if (!schemaProps[k]) { + return o + } + }).filter((x) => !!x); + console.log(folder, name, "add", addDiff, "remove", removeDiff); if (addDiff.length + removeDiff.length) { process.exitCode = 1; - console.log(folder, name, "add", addDiff, "remove", removeDiff); + // console.log(folder, name, "add", addDiff, "remove", removeDiff); // console.log("findings", folder, name, schemaProps, pageHeaders); } } else { - errors.push(`missing ${name}`); + errors.push(`missing ${folder} ${name}`); process.exitCode = 1; } }); diff --git a/.check-schema/zilla-schema.json b/.check-schema/zilla-schema.json index 5f9754fd..2254cf9c 100644 --- a/.check-schema/zilla-schema.json +++ b/.check-schema/zilla-schema.json @@ -333,15 +333,16 @@ "options": { "properties": { "interval": { - "type": "number" + "type": "number", + "default": 30 }, "signals": { "type": "array", "items": { + "type": "string", "enum": [ "metrics", - "logs", - "traces" + "logs" ] } }, @@ -406,6 +407,7 @@ "endpoints": { "type": "array", "items": { + "type": "object", "properties": { "scheme": { "title": "Scheme", @@ -726,7 +728,7 @@ "type": "object", "patternProperties": { "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": { - "title": "Authorization", + "title": "Guard", "type": "object", "properties": { "credentials": { @@ -901,7 +903,8 @@ "enum": [ "live", "historical" - ] + ], + "default": "historical" }, "deltaType": { "type": "string", @@ -911,11 +914,75 @@ ], "deprecated": true }, + "transforms": { + "title": "Transforms", + "type": "array", + "oneOf": [ + { + "items": [ + { + "type": "object", + "additionalProperties": false, + "properties": { + "extract-headers": { + "type": "object", + "patternProperties": { + "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": { + "type": "string", + "pattern": "^\\$\\{message\\.value\\.([A-Za-z_][A-Za-z0-9_]*)\\}$" + } + }, + "additionalProperties": false + }, + "extract-key": { + "type": "string", + "additionalProperties": false + } + } + } + ] + }, + { + "items": [ + { + "type": "object", + "additionalProperties": false, + "properties": { + "extract-headers": { + "type": "object", + "patternProperties": { + "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": { + "type": "string", + "pattern": "^\\$\\{message\\.value\\.([A-Za-z_][A-Za-z0-9_]*)\\}$" + } + }, + "additionalProperties": false + } + } + } + ] + }, + { + "items": [ + { + "type": "object", + "additionalProperties": false, + "properties": { + "extract-key": { + "type": "string", + "additionalProperties": false + } + } + } + ] + } + ] + }, "key": { - "$ref": "#/$defs/converter" + "$ref": "#/$defs/converter/model" }, "value": { - "$ref": "#/$defs/converter" + "$ref": "#/$defs/converter/model" } } } @@ -1016,6 +1083,7 @@ "additionalProperties": false }, "tls": { + "type": "object", "properties": { "version": { "title": "Version", @@ -1050,10 +1118,7 @@ "title": "Application Protocols", "type": "array", "items": { - "type": [ - "string", - "null" - ] + "type": "string" } }, "mutual": { @@ -1063,7 +1128,8 @@ "required", "requested", "none" - ] + ], + "default": "none" }, "signers": { "title": "Vault Signer Certificates", @@ -1124,6 +1190,7 @@ "mqtt-kafka", "openapi", "openapi-asyncapi", + "pgsql", "proxy", "sse", "sse-kafka", @@ -1229,10 +1296,16 @@ "vault": false, "options": false, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "additionalProperties": false, "properties": { "address": { @@ -1422,10 +1495,16 @@ "additionalProperties": false }, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "additionalProperties": false, "properties": { "api-id": { @@ -1650,11 +1729,18 @@ ] }, "vault": false, + "options": false, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "method": { "title": "Method", @@ -1721,35 +1807,28 @@ }, "additionalProperties": false }, - "catalog": - { + "catalog": { + "type": "object", + "patternProperties": { + "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": { "type": "object", - "patternProperties": - { - "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": - { - "type": "object", - "properties": - { - "subject": - { - "type": "string" - }, - "version": - { - "type": "string", - "default": "latest" - } - }, - "required": - [ - "subject" - ], - "additionalProperties": false + "properties": { + "subject": { + "type": "string" }, - "additionalProperties": false - } - } + "version": { + "type": "string", + "default": "latest" + } + }, + "required": [ + "subject" + ], + "additionalProperties": false + }, + "additionalProperties": false + } + } } }, { @@ -1854,10 +1933,16 @@ "additionalProperties": false }, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "method": { "title": "Method", @@ -1905,6 +1990,7 @@ "title": "Filters", "type": "array", "items": { + "type": "object", "properties": { "key": { "title": "Key", @@ -1942,7 +2028,8 @@ "none", "leader_only", "in_sync_replicas" - ] + ], + "default": "in_sync_replicas" }, "key": { "title": "Key", @@ -2028,7 +2115,11 @@ "properties": { "policy": { "title": "Policy", - "type": "string" + "type": "string", + "enum": [ + "same-origin", + "cross-origin" + ] } }, "oneOf": [ @@ -2140,7 +2231,7 @@ "type": "object", "patternProperties": { "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": { - "$ref": "#/$defs/validator" + "$ref": "#/$defs/validator/model" } } }, @@ -2151,7 +2242,7 @@ "type": "object", "patternProperties": { "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": { - "$ref": "#/$defs/validator" + "$ref": "#/$defs/validator/model" } } }, @@ -2159,7 +2250,7 @@ "type": "object", "patternProperties": { "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": { - "$ref": "#/$defs/validator" + "$ref": "#/$defs/validator/model" } } } @@ -2167,7 +2258,7 @@ "additionalProperties": false }, "content": { - "$ref": "#/$defs/validator" + "$ref": "#/$defs/validator/model" }, "responses": { "type": "array", @@ -2197,12 +2288,12 @@ "type": "object", "patternProperties": { "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": { - "$ref": "#/$defs/validator" + "$ref": "#/$defs/validator/model" } } }, "content": { - "$ref": "#/$defs/validator" + "$ref": "#/$defs/validator/model" } }, "anyOf": [ @@ -2254,10 +2345,16 @@ "additionalProperties": false }, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "headers": { "title": "Headers", @@ -2332,10 +2429,16 @@ "vault": false, "options": false, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "path": { "title": "Path", @@ -2442,10 +2545,16 @@ "additionalProperties": false }, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "method": { "title": "Method", @@ -2453,7 +2562,8 @@ }, "path": { "title": "Path", - "type": "string" + "type": "string", + "pattern": "^/" } }, "additionalProperties": false @@ -2476,6 +2586,7 @@ "title": "Filters", "type": "array", "items": { + "type": "object", "properties": { "key": { "title": "Key", @@ -2549,7 +2660,8 @@ "none", "leader_only", "in_sync_replicas" - ] + ], + "default": "in_sync_replicas" }, "key": { "title": "Key", @@ -2622,10 +2734,16 @@ }, "vault": false, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "topic": { "title": "Topic", @@ -2676,10 +2794,10 @@ "type": "string" }, "key": { - "$ref": "#/$defs/converter" + "$ref": "#/$defs/converter/model" }, "value": { - "$ref": "#/$defs/converter" + "$ref": "#/$defs/converter/model" } } } @@ -2765,7 +2883,8 @@ "none", "leader_only", "in_sync_replicas" - ] + ], + "default": "in_sync_replicas" }, "idempotency": { "title": "Idempotency", @@ -2815,10 +2934,16 @@ } }, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "topic": { "title": "Topic", @@ -2875,7 +3000,15 @@ ] } }, - "exit": false + "exit": false, + "entry": { + "title": "Entry", + "type": "string", + "pattern": "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$" + }, + "required": [ + "entry" + ] }, "required": [ "routes" @@ -2903,19 +3036,29 @@ }, "vault": false, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "additionalProperties": false, "properties": { "session": { "title": "Session", "type": "array", "items": { - "client-id": { - "title": "Client Id", - "type": "string" + "type": "object", + "additionalProperties": false, + "properties": { + "client-id": { + "title": "Client Id", + "type": "string" + } } } }, @@ -2923,19 +3066,27 @@ "title": "Subscribe", "type": "array", "items": { - "topic": { - "title": "Topic", - "type": "string" + "type": "object", + "additionalProperties": false, + "properties": { + "topic": { + "title": "Topic", + "type": "string" + } } } }, "publish": { - "title": "Subscribe", + "title": "Publish", "type": "array", "items": { - "topic": { - "title": "Topic", - "type": "string" + "type": "object", + "additionalProperties": false, + "properties": { + "topic": { + "title": "Topic", + "type": "string" + } } } } @@ -2992,13 +3143,13 @@ "type": "string" }, "content": { - "$ref": "#/$defs/validator" + "$ref": "#/$defs/validator/model" }, "user-properties": { "type": "object", "patternProperties": { "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": { - "$ref": "#/$defs/validator" + "$ref": "#/$defs/validator/model" } } } @@ -3113,10 +3264,16 @@ "additionalProperties": false }, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "anyOf": [ { "properties": { @@ -3124,6 +3281,7 @@ "title": "Subscribe", "type": "array", "items": { + "type": "object", "properties": { "topic": { "title": "Topic", @@ -3141,6 +3299,7 @@ "title": "Publish", "type": "array", "items": { + "type": "object", "properties": { "topic": { "title": "Topic", @@ -3291,18 +3450,6 @@ "required": [ "exit" ] - }, - { - "properties": { - "routes": { - "required": [ - "exit" - ] - } - }, - "required": [ - "routes" - ] } ] }, @@ -3311,13 +3458,6 @@ "kind": { "const": "client" }, - "routes": { - "items": { - "properties": { - "exit": false - } - } - }, "exit": false } } @@ -3427,10 +3567,16 @@ "additionalProperties": false }, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "api-id": { "title": "ApiId", @@ -3477,6 +3623,38 @@ ] } }, + { + "if": { + "properties": { + "type": { + "const": "pgsql" + } + } + }, + "then": { + "properties": { + "type": { + "const": "pgsql" + }, + "kind": { + "enum": [ + "client", + "server" + ] + }, + "vault": false, + "options": false, + "routes": false + }, + "anyOf": [ + { + "required": [ + "exit" + ] + } + ] + } + }, { "if": { "properties": { @@ -3499,10 +3677,16 @@ "vault": false, "options": false, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "additionalProperties": false, "properties": { "transport": { @@ -3656,7 +3840,7 @@ "type": "string" }, "content": { - "$ref": "#/$defs/validator" + "$ref": "#/$defs/validator/model" } }, "anyOf": [ @@ -3674,10 +3858,16 @@ "additionalProperties": false }, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "path": { "title": "Path", @@ -3727,10 +3917,16 @@ "vault": false, "options": false, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "path": { "title": "Path", @@ -3750,6 +3946,7 @@ "title": "Filters", "type": "array", "items": { + "type": "object", "properties": { "key": { "title": "Key", @@ -3827,10 +4024,16 @@ "$ref": "#/$defs/options/binding/tcp" }, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "authority": { "title": "Authority", @@ -3942,10 +4145,16 @@ ] }, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "authority": { "title": "Authority", @@ -3990,6 +4199,18 @@ } } }, + "if": { + "properties": { + "kind": { + "const": "server" + } + } + }, + "then": { + "required": [ + "vault" + ] + }, "anyOf": [ { "required": [ @@ -4019,7 +4240,19 @@ "const": "server" }, "options": { - "$ref": "#/$defs/options/binding/tls" + "$ref": "#/$defs/options/binding/tls", + "oneOf": [ + { + "required": [ + "keys" + ] + }, + { + "required": [ + "signers" + ] + } + ] } } }, @@ -4055,10 +4288,16 @@ }, "vault": false, "routes": { + "title": "Routes", + "type": "array", "items": { + "type": "object", "properties": { "when": { + "title": "When", + "type": "array", "items": { + "type": "object", "properties": { "protocol": { "title": "Subprotocol", @@ -4147,14 +4386,6 @@ ] }, "converter": { - "oneOf": [ - { - "$ref": "#/$defs/converter/types" - }, - { - "$ref": "#/$defs/converter/model" - } - ], "types": { "type": "string", "enum": [ @@ -4221,7 +4452,10 @@ "type": "object", "properties": { "strategy": { - "type": "string" + "type": "string", + "enum": [ + "topic" + ] }, "version": { "type": "string", @@ -4426,7 +4660,10 @@ "type": "object", "properties": { "strategy": { - "type": "string" + "type": "string", + "enum": [ + "topic" + ] }, "version": { "type": "string", @@ -4513,7 +4750,10 @@ "type": "object", "properties": { "strategy": { - "type": "string" + "type": "string", + "enum": [ + "topic" + ] }, "version": { "type": "string", @@ -4601,22 +4841,16 @@ } }, "validator": { - "oneOf": [ - { - "$ref": "#/$defs/validator/types" - }, - { - "$ref": "#/$defs/validator/model" - } - ], "types": { "type": "string", "enum": [ + "avro", "double", "float", "int32", "int64", "json", + "protobuf", "string" ] }, @@ -4795,7 +5029,10 @@ "type": "object", "properties": { "strategy": { - "type": "string" + "type": "string", + "enum": [ + "topic" + ] }, "version": { "type": "string", diff --git a/src/reference/config/bindings/.partials/cataloged.md b/src/reference/config/bindings/.partials/cataloged.md index 1601cedf..8c8e0e47 100644 --- a/src/reference/config/bindings/.partials/cataloged.md +++ b/src/reference/config/bindings/.partials/cataloged.md @@ -1,20 +1,38 @@ ### catalog -> `object` +> `object` as map of named:`array` To map defined catalog for schema retrieval based on catalog specific parameters. Any of the possible combination can be configured. > `id` + +```yaml +catalog: + my_catalog: + id: unique-catalog-id +``` + ----- > `strategy` -> `version` + +```yaml +catalog: + my_catalog: + - strategy: topic +``` + ----- > `subject` -> `version` + +```yaml +catalog: + my_catalog: + subject: http +``` #### catalog.strategy\* -> `enum` [ "topic" ] +> `enum` [ `topic` ] To determine the subject based on the specified strategy @@ -26,7 +44,7 @@ Unique identifier for schema categorization in the catalog. #### catalog.version -> `string` | Default: `"latest"` +> `string` | Default: `latest` Specific iteration or version of a registered schema in the defined catalog. diff --git a/src/reference/config/bindings/.partials/options-http-auth.md b/src/reference/config/bindings/.partials/options-http-auth.md index eeed25fc..969b4265 100644 --- a/src/reference/config/bindings/.partials/options-http-auth.md +++ b/src/reference/config/bindings/.partials/options-http-auth.md @@ -6,18 +6,18 @@ Defines how to extract credentials from the HTTP request. #### credentials.cookies -> `map` of `name: value` properties +> `object` as map of named: `string` properties Named cookie value pattern with `{credentials}`. #### credentials.headers -> `map` of `name: value` properties +> `object` as map of named: `string` properties Named header value pattern with `{credentials}`, e.g. `"Bearer` `{credentials}"`. #### credentials.query -> `map` of `name: value` properties +> `object` as map of named: `string` properties Named query parameter value pattern with `{credentials}`. diff --git a/src/reference/config/bindings/.partials/options-kafka-sasl.md b/src/reference/config/bindings/.partials/options-kafka-sasl.md index e80408fd..fec71f9d 100644 --- a/src/reference/config/bindings/.partials/options-kafka-sasl.md +++ b/src/reference/config/bindings/.partials/options-kafka-sasl.md @@ -1,13 +1,13 @@ #### sasl.mechanism -> `enum` [ "plain", "scram-sha-1", "scram-sha-256", "scram-sha-512" ] +> `enum` [ `plain`, `scram-sha-1`, `scram-sha-256`, `scram-sha-512` ] Supports `plain` and `scram` mechanisms. #### sasl.mechanism: plain -> `string` +> `const` Configure credentials for the `plain` sasl mechanism. @@ -25,7 +25,7 @@ SASL password. #### sasl.mechanism: scram-sha-1 -> `string` +> `const` Configure credentials for the `scram-sha-1` sasl mechanism. @@ -43,7 +43,7 @@ SASL password. #### sasl.mechanism: scram-sha-256 -> `string` +> `const` Configure credentials for the `scram-sha-256` sasl mechanism. @@ -61,7 +61,7 @@ SASL password. #### sasl.mechanism: scram-sha-512 -> `string` +> `const` Configure credentials for the `scram-sha-512` sasl mechanism. diff --git a/src/reference/config/bindings/.partials/options-kafka-topics.md b/src/reference/config/bindings/.partials/options-kafka-topics.md index 56e0cf4f..d7cf9cda 100644 --- a/src/reference/config/bindings/.partials/options-kafka-topics.md +++ b/src/reference/config/bindings/.partials/options-kafka-topics.md @@ -12,9 +12,9 @@ Enforce validation for key #### key.model\* -> `model` [ [`avro`](../../models/avro.md), [`json`](../../models/avro.md), [`protobuf`](../../models/protobuf.md), [`string`](../../models/string.md), [`double`](../../models/double.md), [`float`](../../models/float.md), [`int32`](../../models/int32.md), [`int64`](../../models/int64.md) ] +> `enum` [ `avro`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ] -A schema or type to validate the topic's key. +A schema or type to validate the topic's key. Refer to the individual [model](../../models) docs for type specific implementation. #### topics[].value @@ -24,6 +24,10 @@ Enforce validation for value #### value.model\* -> `model` [ [`avro`](../../models/avro.md), [`json`](../../models/avro.md), [`protobuf`](../../models/protobuf.md), [`string`](../../models/string.md), [`double`](../../models/double.md), [`float`](../../models/float.md), [`int32`](../../models/int32.md), [`int64`](../../models/int64.md) ] +> `enum` [ `avro`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ] -A schema or type to validate the topic's value. +A schema or type to validate the topic's value. Refer to the individual [model](../../models) docs for type specific implementation. + +#### topics[].transforms + +> `array` diff --git a/src/reference/config/bindings/.partials/options-tcp.md b/src/reference/config/bindings/.partials/options-tcp.md index 60ddf638..1cac7bb5 100644 --- a/src/reference/config/bindings/.partials/options-tcp.md +++ b/src/reference/config/bindings/.partials/options-tcp.md @@ -6,6 +6,6 @@ Hostname or IP address. #### tcp.port -> `integer` | `string` | `array` of `integer` | `array` of `string` +> `integer`, `string`, `array` Port number(s), including port number ranges. diff --git a/src/reference/config/bindings/.partials/options-tls.md b/src/reference/config/bindings/.partials/options-tls.md index 3db31ee1..b29812d2 100644 --- a/src/reference/config/bindings/.partials/options-tls.md +++ b/src/reference/config/bindings/.partials/options-tls.md @@ -24,9 +24,9 @@ A list of reference names for the Vault signer certificate. #### tls.trustcacerts -> `boolean` | Default: `true` when trust is `null` +> `boolean` -Trust CA certificates. +Trust CA certificates. This property will be considered set to `true` when [tls.trust](#tls-trust) is `null`. #### tls.sni @@ -42,6 +42,6 @@ Application protocols. #### tls.mutual -> `enum` [ "required", "requested", "none" ] | Default: `"none"` +> `enum` [ `required`, `requested`, `none` ] | Default: `none` Mutual authentication. diff --git a/src/reference/config/bindings/.partials/telemetry-grpc.md b/src/reference/config/bindings/.partials/telemetry-grpc.md index b593a572..5e493d9c 100644 --- a/src/reference/config/bindings/.partials/telemetry-grpc.md +++ b/src/reference/config/bindings/.partials/telemetry-grpc.md @@ -6,7 +6,7 @@ Defines the desired telemetry for the binding. #### telemetry.metrics -> `enum` [ "stream", "grpc" ] +> `array` Telemetry metrics to track diff --git a/src/reference/config/bindings/.partials/telemetry-http.md b/src/reference/config/bindings/.partials/telemetry-http.md index 83497d03..0b346d16 100644 --- a/src/reference/config/bindings/.partials/telemetry-http.md +++ b/src/reference/config/bindings/.partials/telemetry-http.md @@ -6,7 +6,7 @@ Defines the desired telemetry for the binding. #### telemetry.metrics -> `enum` [ "stream", "http" ] +> `array` Telemetry metrics to track diff --git a/src/reference/config/bindings/.partials/telemetry.md b/src/reference/config/bindings/.partials/telemetry.md index be3daac4..1a73677d 100644 --- a/src/reference/config/bindings/.partials/telemetry.md +++ b/src/reference/config/bindings/.partials/telemetry.md @@ -6,7 +6,7 @@ Defines the desired telemetry for the binding. #### telemetry.metrics -> `enum` [ "stream" ] +> `array` Telemetry metrics to track diff --git a/src/reference/config/bindings/amqp/.partials/routes.md b/src/reference/config/bindings/amqp/.partials/routes.md index fa47ec68..1ea08587 100644 --- a/src/reference/config/bindings/amqp/.partials/routes.md +++ b/src/reference/config/bindings/amqp/.partials/routes.md @@ -14,7 +14,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. @@ -47,7 +47,7 @@ Link address. #### when[].capabilities -> `enum` [ "send_only", "receive_only", "send_and_receive" ] | Default: `"send_and_receive"` +> `enum` [ `send_only`, `receive_only`, `send_and_receive` ] | Default: `send_and_receive` Send or receive, or both. diff --git a/src/reference/config/bindings/asyncapi/.partials/options.md b/src/reference/config/bindings/asyncapi/.partials/options.md index af50cead..20302064 100644 --- a/src/reference/config/bindings/asyncapi/.partials/options.md +++ b/src/reference/config/bindings/asyncapi/.partials/options.md @@ -1,12 +1,12 @@ #### options.specs -> `object` as map of named properties +> `object` as map of named:`object` specs specific options #### specs.catalog -> `object` as map of named properties +> `object` as map of named:`object` To map defined catalog for schema retrieval based on catalog specific parameters. @@ -18,7 +18,7 @@ Subject name used when storing the catalog artifact. #### catalog.version -> `string` | Default: `"latest"` +> `string` | Default: `latest` Specific iteration or version of a registered schema in the defined catalog. @@ -28,13 +28,13 @@ Specific iteration or version of a registered schema in the defined catalog. #### servers[].url -> `string` +> `string` | Pattern: `^([a-zA-Z0-9\\\\.-]+)(:(\\\\{[a-zA-Z_]+\\\\}|[0-9]+))?$` The server to match based on the server's `url` in an asyncapi `2.x` spec only. #### servers[].host -> `string` +> `string` | Pattern: `^([a-zA-Z0-9\\\\.-]+)(:(\\\\{[a-zA-Z_]+\\\\}|[0-9]+))?$` The server to match based on the server's `host` in an asyncapi `3.x` spec only. @@ -58,7 +58,7 @@ Hostname or IP address. #### tcp.port -> `integer` | `string` | `array` of `integer` | `array` of `string` +> `integer`, `string`, `array` Port number(s), including port number ranges. @@ -70,7 +70,7 @@ http specific options. #### http.authorization -> `object` as map of named properties +> `object` as map of named:`object` Authorization by guard for the `HTTP/1.1` and `HTTP/2` protocols. @@ -90,19 +90,19 @@ Defines how to extract credentials from the HTTP request. #### credentials.cookies -> `map` of `name: value` properties +> `object` as map of named: `string` properties Named cookie value pattern with `{credentials}`. #### credentials.headers -> `map` of `name: value` properties +> `object` as map of named: `string` properties Named header value pattern with `{credentials}`, e.g. `"Bearer` `{credentials}"`. #### credentials.query -> `map` of `name: value` properties +> `object` as map of named: `string` properties Named query parameter value pattern with `{credentials}`. @@ -138,9 +138,9 @@ A list of reference names for the Vault signer certificate. #### tls.trustcacerts -> `boolean` | Default: `true` when trust is `null` +> `boolean` -Trust CA certificates. +Trust CA certificates. This property will be considered set to `true` when [tls.trust](#tls-trust) is `null`. #### tls.sni @@ -156,6 +156,6 @@ Application protocols. #### tls.mutual -> `enum` [ "required", "requested", "none" ] | Default: `"none"` +> `enum` [ `required`, `requested`, `none` ] | Default: `none` Mutual authentication. diff --git a/src/reference/config/bindings/asyncapi/.partials/routes.md b/src/reference/config/bindings/asyncapi/.partials/routes.md index 42e38837..1b3ca397 100644 --- a/src/reference/config/bindings/asyncapi/.partials/routes.md +++ b/src/reference/config/bindings/asyncapi/.partials/routes.md @@ -24,7 +24,7 @@ Conditional `asyncapi`-specific routes for adapting streams. #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. diff --git a/src/reference/config/bindings/asyncapi/client.md b/src/reference/config/bindings/asyncapi/client.md index 065c13c5..8db7bd7b 100644 --- a/src/reference/config/bindings/asyncapi/client.md +++ b/src/reference/config/bindings/asyncapi/client.md @@ -49,7 +49,7 @@ Topic configuration. #### topics[].defaultOffset -> `enum` [ "live", "historical" ] | Default: `"historical"` +> `enum` [ `live`, `historical` ] | Default: `historical` Fetch offset to use for new consumers @@ -113,9 +113,13 @@ messages: mqttMessages ### options.http +> `object` + +http specific options. + #### http.authorization -> `object` as map of named properties +> `object` as map of named:`object` Authorization by guard for the `HTTP/1.1` and `HTTP/2` protocols. @@ -131,9 +135,11 @@ authorization: ### options.mqtt +> `object` + #### mqtt.authorization -> `object` as map of named properties +> `object` as map of named:`object` Authorization by guard for the `HTTP/1.1` and `HTTP/2` protocols. diff --git a/src/reference/config/bindings/asyncapi/proxy.md b/src/reference/config/bindings/asyncapi/proxy.md index 0c74931d..d979d6a6 100644 --- a/src/reference/config/bindings/asyncapi/proxy.md +++ b/src/reference/config/bindings/asyncapi/proxy.md @@ -49,7 +49,7 @@ Topic configuration. #### topics[].defaultOffset -> `enum` [ "live", "historical" ] | Default: `"historical"` +> `enum` [ `live`, `historical` ] | Default: `historical` Fetch offset to use for new consumers @@ -113,9 +113,13 @@ messages: mqttMessages ### options.http +> `object` + +http specific options. + #### http.authorization -> `object` as map of named properties +> `object` as map of named:`object` Authorization by guard for the `HTTP/1.1` and `HTTP/2` protocols. @@ -131,9 +135,11 @@ authorization: ### options.mqtt +> `object` + #### mqtt.authorization -> `object` as map of named properties +> `object` as map of named:`object` Authorization by guard for the `HTTP/1.1` and `HTTP/2` protocols. diff --git a/src/reference/config/bindings/asyncapi/server.md b/src/reference/config/bindings/asyncapi/server.md index 4051bdaf..593fc0ed 100644 --- a/src/reference/config/bindings/asyncapi/server.md +++ b/src/reference/config/bindings/asyncapi/server.md @@ -49,7 +49,7 @@ Topic configuration. #### topics[].defaultOffset -> `enum` [ "live", "historical" ] | Default: `"historical"` +> `enum` [ `live`, `historical` ] | Default: `historical` Fetch offset to use for new consumers @@ -113,9 +113,13 @@ messages: mqttMessages ### options.http +> `object` + +http specific options. + #### http.authorization -> `object` as map of named properties +> `object` as map of named:`object` Authorization by guard for the `HTTP/1.1` and `HTTP/2` protocols. @@ -131,9 +135,11 @@ authorization: ### options.mqtt +> `object` + #### mqtt.authorization -> `object` as map of named properties +> `object` as map of named:`object` Authorization by guard for the `HTTP/1.1` and `HTTP/2` protocols. diff --git a/src/reference/config/bindings/filesystem/.partials/options.md b/src/reference/config/bindings/filesystem/.partials/options.md index 94f15b59..5657249f 100644 --- a/src/reference/config/bindings/filesystem/.partials/options.md +++ b/src/reference/config/bindings/filesystem/.partials/options.md @@ -18,6 +18,6 @@ File system URI or directory name with trailing slash. #### options.symlinks -> `enum` [ "follow", "ignore" ] | Default: `"ignore"` +> `enum` [ `follow`, `ignore` ] | Default: `ignore` How to treat symbolic links. diff --git a/src/reference/config/bindings/grpc-kafka/.partials/options.md b/src/reference/config/bindings/grpc-kafka/.partials/options.md index b53212c2..642e3502 100644 --- a/src/reference/config/bindings/grpc-kafka/.partials/options.md +++ b/src/reference/config/bindings/grpc-kafka/.partials/options.md @@ -27,7 +27,7 @@ Metadata header used to specify the idempotency key when adapting `grpc` request #### idempotency.metadata -> `string` | Default: `"idempotency-key"` +> `string` | Default: `idempotency-key` The `grpc` metadata header name for idempotency key. @@ -39,13 +39,13 @@ Properties used when handling stream recovery. #### reliability.field -> `integer` | Default: `32767` +> `integer` | Default: `32767` Minimum: `1` Maximum: `536870911` The `grpc` unknown field number to send the `message-id`. #### reliability.metadata -> `string` | Default: `"last-message-id"` +> `string` | Default: `last-message-id` The `grpc` metadata header name for the last `message-id` seen when resuming a stream. @@ -57,30 +57,30 @@ Kafka request message headers injected when adapting `grpc` request-response str #### correlation.headers\* -> `map` of `name: value` properties +> `object` Kafka request message reply to and correlation id header names injected when adapting `grpc` request-response streams to `kafka` topic streams. #### headers.service -> `string` | Default: `"zilla:service"` +> `string` | Default: `zilla:service` Kafka header name for `grpc` service. #### headers.method -> `string` | Default: `"zilla:method"` +> `string` | Default: `zilla:method` Kafka header name for `grpc` method. #### headers.correlation-id -> `string` | Default: `"zilla:correlation-id"` +> `string` | Default: `zilla:correlation-id` Kafka header name for request-response correlation identifier. #### headers.reply-to -> `string` | Default: `"zilla:reply-to"` +> `string` | Default: `zilla:reply-to` Kafka header name for reply-to topic. diff --git a/src/reference/config/bindings/grpc-kafka/.partials/routes.md b/src/reference/config/bindings/grpc-kafka/.partials/routes.md index 12180f09..219debee 100644 --- a/src/reference/config/bindings/grpc-kafka/.partials/routes.md +++ b/src/reference/config/bindings/grpc-kafka/.partials/routes.md @@ -46,7 +46,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` Roles required by named guard. @@ -76,13 +76,13 @@ routes: #### when[].method -> `string` +> `string` | Pattern: `^(?[^/]+)/(?[^/]+)` Pattern matching the fully qualified name of a `grpc` service method, in the format `/` allowing wildcard `*` for the method to indicate any method. #### when[].metadata -> `map` of `name: value` properties +> `object` as map of named: `string` or `object` properties Metadata header name value pairs (all match). @@ -107,18 +107,18 @@ routes: exit: kafka_cache_client ``` -#### routes[].with +#### routes[].with\* -> **oneOf**: [fetch](#with-capability-fetch) | [produce](#with-capability-produce) +> `object` -Defines the route with the `fetch` capability. +Defines the route with the [fetch](#with-capability-fetch) capability. ```yaml with: capability: fetch ``` -Defines the route with the `produce` capability. +Defines the route with the [produce](#with-capability-produce) capability. ```yaml with: @@ -127,7 +127,7 @@ with: #### with.capability: fetch\* -> `object` +> `const` Kafka parameters for matched route when adapting `grpc` request-response streams to `kafka` topic fetch streams. @@ -167,13 +167,13 @@ The filter criteria for the Kafka message key. #### filters[].headers -> `map` of `name: value` properties +> `object` as map of named: `string` properties The filter criteria for the Kafka message headers. #### with.capability: produce\* -> `object` +> `const` Kafka parameters for matched route when adapting `grpc` request-response streams to `kafka` topic produce streams. @@ -200,7 +200,7 @@ The name of a Kafka topic for requests. #### with.acks -> `enum` [ "none", "leader_only", "in_sync_replicas" ] | Default: `"in_sync_replicas"` +> `enum` [ `none`, `leader_only`, `in_sync_replicas` ] | Default: `in_sync_replicas` Kafka acknowledgment mode @@ -212,7 +212,7 @@ The Kafka message key to include with each message. #### with.overrides -> `map` of `name: value` properties +> `object` as map of named: `string` properties The Kafka message headers to inject with each message. diff --git a/src/reference/config/bindings/grpc/.partials/routes.md b/src/reference/config/bindings/grpc/.partials/routes.md index 1d32e025..855e4f5c 100644 --- a/src/reference/config/bindings/grpc/.partials/routes.md +++ b/src/reference/config/bindings/grpc/.partials/routes.md @@ -21,7 +21,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` Roles required by named guard. @@ -57,7 +57,7 @@ gRPC service method name, such as `example.EchoService/EchoUnary`, or service me #### when[].metadata -> `map` of `name: value` properties +> `object` as map of named: `string` or `object` properties Metadata header name value pairs (all match). diff --git a/src/reference/config/bindings/grpc/server.md b/src/reference/config/bindings/grpc/server.md index 6d189ba2..4eed2ad7 100644 --- a/src/reference/config/bindings/grpc/server.md +++ b/src/reference/config/bindings/grpc/server.md @@ -19,7 +19,7 @@ The grpc server binding adapts `http` request-response streams to `grpc` request ### catalog -> `object` as map of named properties +> `object` as map of named:`object` To map defined catalog for schema retrieval based on catalog specific parameters. @@ -31,7 +31,7 @@ Subject name used when storing the catalog artifact. #### catalog.version -> `string` | Default: `"latest"` +> `string` | Default: `latest` Specific iteration or version of a registered schema in the defined catalog. diff --git a/src/reference/config/bindings/http-filesystem/.partials/routes.md b/src/reference/config/bindings/http-filesystem/.partials/routes.md index f47940a1..78cdcc79 100644 --- a/src/reference/config/bindings/http-filesystem/.partials/routes.md +++ b/src/reference/config/bindings/http-filesystem/.partials/routes.md @@ -15,7 +15,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. diff --git a/src/reference/config/bindings/http-kafka/.partials/options.md b/src/reference/config/bindings/http-kafka/.partials/options.md index 16477cb0..b0099a49 100644 --- a/src/reference/config/bindings/http-kafka/.partials/options.md +++ b/src/reference/config/bindings/http-kafka/.partials/options.md @@ -22,7 +22,7 @@ HTTP request header used to specify the idempotency key when adapting `http` req #### idempotency.header\* -> `string` | Default: `"idempotency-key"` +> `string` | Default: `idempotency-key` HTTP request header name for idempotency key. @@ -34,18 +34,18 @@ Kafka request message headers injected when adapting `http` request-response str #### correlation.headers\* -> `map` of `name: value` properties +> `object` Kafka request message reply to and correlation id header names injected when adapting `http` request-response streams to `kafka` topic streams. #### headers.reply-to -> `string` | Default: `"zilla:reply-to"` +> `string` | Default: `zilla:reply-to` Kafka header name for reply-to topic. #### headers.correlation-id -> `string` | Default: `"zilla:correlation-id"` +> `string` | Default: `zilla:correlation-id` Kafka header name for request-response correlation identifier. diff --git a/src/reference/config/bindings/http-kafka/.partials/routes.md b/src/reference/config/bindings/http-kafka/.partials/routes.md index 434cf32a..52d70c10 100644 --- a/src/reference/config/bindings/http-kafka/.partials/routes.md +++ b/src/reference/config/bindings/http-kafka/.partials/routes.md @@ -66,7 +66,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` Roles required by named guard. @@ -99,7 +99,7 @@ HTTP Method, such as `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS #### when[].path -> `string` +> `string` | Pattern: `^/` Path with optional embedded parameter names, such as `/{topic}`. @@ -116,18 +116,18 @@ routes: exit: kafka_cache_client ``` -#### routes[].with +#### routes[].with\* -> **oneOf**: [Fetch](#with-capability-fetch) | [Produce](#with-capability-produce) +> `object` -Defines the route with the Fetch capability. +Defines the route with the [Fetch](#with-capability-fetch) capability. ```yaml with: capability: fetch ``` -Defines the route with the Produce capability. +Defines the route with the [Produce](#with-capability-produce) capability. ```yaml with: @@ -136,7 +136,7 @@ with: #### with.capability: fetch\* -> `object` +> `const` Kafka parameters for matched route when adapting `http` request-response streams to `kafka` topic fetch streams. @@ -155,7 +155,7 @@ with: merge: content-type: application/json patch: - initial: "[]" + initial: [] path: /- ``` @@ -179,7 +179,7 @@ Message key, optionally referencing path parameter such as `${params.key}`. #### filters[].headers -> `map` of `name: value` properties +> `object` as map of named: `string` properties Message headers, with value optionally referencing path parameter such as `${params.headerX}`. @@ -219,7 +219,7 @@ JSON Patch path to include each Kafka message in unified HTTP response. #### with.capability: produce\* -> `object` +> `const` Kafka parameters for matched route when adapting `http` request-response streams to `kafka` topic produce streams. @@ -252,7 +252,7 @@ Kafka topic name, optionally referencing path parameter such as `${params.topic} #### with.acks -> `enum` [ "none", "leader_only", "in_sync_replicas" ] | Default: `"in_sync_replicas"` +> `enum` [ `none`, `leader_only`, `in_sync_replicas` ] | Default: `in_sync_replicas` Kafka acknowledgement mode @@ -264,7 +264,7 @@ Kafka message key, optionally referencing path parameter such as `${params.id}`. #### with.overrides -> `map` of `name: value` properties +> `object` as map of named: `string` properties Kafka message headers, with values optionally referencing path parameter. @@ -276,7 +276,7 @@ Kafka reply-to topic name. #### with.async -> `map` of `name: value` properties +> `object` as map of named: `string` properties Allows an HTTP response to be retrieved asynchronously. diff --git a/src/reference/config/bindings/http/.partials/options.md b/src/reference/config/bindings/http/.partials/options.md index 741d17ce..6f6bb9b1 100644 --- a/src/reference/config/bindings/http/.partials/options.md +++ b/src/reference/config/bindings/http/.partials/options.md @@ -11,45 +11,49 @@ Enforce validation for the request content. #### content.model\* -> `model` [ [`avro`](../../../models/avro.md), [`json`](../../../models/avro.md), [`protobuf`](../../../models/protobuf.md), [`string`](../../../models/string.md), [`double`](../../../models/double.md), [`float`](../../../models/float.md), [`int32`](../../../models/int32.md), [`int64`](../../../models/int64.md) ] +> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] -A schema or type to validate the request content. +A schema or type to validate the request content. Refer to the individual [model](../../models) docs for type specific implementation. #### requests[].content-type -> `string` +> `array` of `string` #### requests[].headers -> `string` +> `object` as map of named:`object` #### requests[].method -> `enum` [ "GET", "PUT", "POST", "DELETE", "OPTIONS", "HEAD", "PATCH", "TRACE" ] +> `enum` [ `GET`, `PUT`, `POST`, `DELETE`, `OPTIONS`, `HEAD`, `PATCH`, `TRACE` ] #### requests[].params -> `string` +> `object` #### params.path -> `object` of a named [`model`](../../../models/) +> `object` as map of named:`object` Enforce validation for path #### path.model\* -> `model` [ [`avro`](../../../models/avro.md), [`json`](../../../models/avro.md), [`protobuf`](../../../models/protobuf.md), [`string`](../../../models/string.md), [`double`](../../../models/double.md), [`float`](../../../models/float.md), [`int32`](../../../models/int32.md), [`int64`](../../../models/int64.md) ] +> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] + +A schema or type to validate the path content. Refer to the individual [model](../../models) docs for type specific implementation. #### params.query -> `object` of a named [`model`](../../../models/) +> `object` as map of named:`object` Enforce validation for query #### query.model\* -> `model` [ [`avro`](../../../models/avro.md), [`json`](../../../models/avro.md), [`protobuf`](../../../models/protobuf.md), [`string`](../../../models/string.md), [`double`](../../../models/double.md), [`float`](../../../models/float.md), [`int32`](../../../models/int32.md), [`int64`](../../../models/int64.md) ] +> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] + +A schema or type to validate the query content. Refer to the individual [model](../../models) docs for type specific implementation. #### requests[].path @@ -61,7 +65,15 @@ Enforce validation for query #### responses[].content -> `string` +> `object` + +Enforce validation for the response content. + +#### content.model\* + +> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] + +A schema or type to validate the response content. Refer to the individual [model](../../models) docs for type specific implementation. #### responses[].content-type @@ -69,7 +81,7 @@ Enforce validation for query #### responses[].headers -> `map` of "name: [model](../../../models/)" properties +> `object` as map of named:`object` Enforce validation for response headers. @@ -82,18 +94,22 @@ headers: #### headers.model\* -> `model` [ [`avro`](../../../models/avro.md), [`json`](../../../models/avro.md), [`protobuf`](../../../models/protobuf.md), [`string`](../../../models/string.md), [`double`](../../../models/double.md), [`float`](../../../models/float.md), [`int32`](../../../models/int32.md), [`int64`](../../../models/int64.md) ] +> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] + +A schema or type to validate the headers content. Refer to the individual [model](../../models) docs for type specific implementation. #### responses[].status -> `string` +> `integer`, `array` of `integer` #### options.versions +> `array` of `enum` [ `http/1.1`, `h2` ] | Default: `http/1.1,h2` + Supported protocol versions. #### options.overrides -> `map` of `name: value` properties +> `object` as map of named: `string` properties Request header overrides. diff --git a/src/reference/config/bindings/http/.partials/routes.md b/src/reference/config/bindings/http/.partials/routes.md index 92fba136..b5de48f8 100644 --- a/src/reference/config/bindings/http/.partials/routes.md +++ b/src/reference/config/bindings/http/.partials/routes.md @@ -15,7 +15,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. @@ -43,7 +43,7 @@ routes: #### when[].headers -> `map` of `name: value` properties +> `object` as map of named: `string` properties Header name value pairs (all match). diff --git a/src/reference/config/bindings/http/server.md b/src/reference/config/bindings/http/server.md index 6c4db7c5..4788ec2c 100644 --- a/src/reference/config/bindings/http/server.md +++ b/src/reference/config/bindings/http/server.md @@ -41,19 +41,19 @@ options: #### options.access-control -> **oneOf**: [same-origin](#access-control-policy-same-origin) | [cross-origin](#access-control-policy-cross-origin) +> `object` -Access control policy for the `HTTP` protocol. +Defines the [same-origin](#access-control-policy-same-origin) or [cross-origin](#access-control-policy-cross-origin) access control policy for the `HTTP` protocol. #### access-control.policy -> `enum` [ "same-origin" , "cross-origin" ] +> `enum` [ `same-origin`, `cross-origin` ] Supported access control policies. #### access-control.policy: same-origin -> `string` +> `const` Extra properties aren't needed when using Same Origin access control for the `HTTP` protocol. @@ -65,7 +65,7 @@ options: #### access-control.policy: cross-origin -> `object` +> `const` Additional properties that cover Cross Origin Resource Sharing (CORS) access control for the `HTTP` protocol. @@ -77,10 +77,13 @@ options: #### access-control.allow -> `object` | Default: all origins, methods and headers, without credentials +> `object` + +Sets the CORS allowed request origins, methods, headers and credentials for the `HTTP` protocol. -Allowed cross-origin request origins, methods, headers and credentials. -CORS allowed request origins, methods, headers and credentials for the `HTTP` protocol. +::: important +Omission of the allow object means Zilla will allow all origins, methods and headers, without credentials. +::: #### allow.origins @@ -108,16 +111,20 @@ Support `fetch` credentials mode `include`. #### access-control.max-age -> `integer` +> `number` Maximum cache age (in seconds) for allowed headers and methods. #### access-control.expose -> `object` | Default: all response headers +> `object` Exposed cross-origin response headers. +::: important +Omission means all response headers. +::: + #### expose.headers > `array` of `string` @@ -126,7 +133,7 @@ Exposed response headers. #### options.authorization -> `object` as map of named objects +> `object` as map of named:`object` Authorization by a named guard for the `HTTP/1.1` and `HTTP/2` protocols. diff --git a/src/reference/config/bindings/kafka-grpc/.partials/options.md b/src/reference/config/bindings/kafka-grpc/.partials/options.md index 5263b610..d1c1b996 100644 --- a/src/reference/config/bindings/kafka-grpc/.partials/options.md +++ b/src/reference/config/bindings/kafka-grpc/.partials/options.md @@ -20,7 +20,7 @@ options: #### options.acks -> `enum` [ "none", "leader_only", "in_sync_replicas" ] +> `enum` [ `none`, `leader_only`, `in_sync_replicas` ] | Default: `in_sync_replicas` The `kafka` acknowledgment mode. @@ -32,7 +32,7 @@ Metadata header used to specify the idempotency key when adapting `kafka` topic #### idempotency.metadata -> `string` | Default: `"idempotency-key"`. +> `string` | Default: `idempotency-key` The `grpc` metadata header name for idempotency key. @@ -50,24 +50,24 @@ Kafka request message correlation header names used when adapting `kafka` topic #### headers.service -> `string` | Default: `"zilla:service"` +> `string` | Default: `zilla:service` Kafka header name for `grpc` service. #### headers.method -> `string` | Default: `"zilla:method"` +> `string` | Default: `zilla:method` Kafka header name for `grpc` method. #### headers.correlation-id -> `string` | Default: `"zilla:correlation-id"` +> `string` | Default: `zilla:correlation-id` Kafka header name for request-response correlation identifier. #### headers.reply-to -> `string` | Default: `"zilla:reply-to"` +> `string` | Default: `zilla:reply-to` Kafka header name for reply-to topic. diff --git a/src/reference/config/bindings/kafka-grpc/.partials/routes.md b/src/reference/config/bindings/kafka-grpc/.partials/routes.md index 0bd2c541..b0a540cf 100644 --- a/src/reference/config/bindings/kafka-grpc/.partials/routes.md +++ b/src/reference/config/bindings/kafka-grpc/.partials/routes.md @@ -21,7 +21,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` Roles required by named guard. @@ -61,7 +61,7 @@ The name of a Kafka topic for requests. #### when[].headers -> `map` of `name: value` properties +> `object` as map of named: `string` properties Header name value pairs (all match). @@ -73,7 +73,7 @@ The name of the Kafka topic for correlated responses. #### when[].method -> `string` +> `string` | Pattern: `^(?[^/]+)/(?[^/]+)` Pattern matching the fully qualified name of a `grpc` service method, in the format `/` allowing wildcard `*` for the method to indicate any method. @@ -90,7 +90,7 @@ routes: exit: kafka_cache_client ``` -#### routes[].with +#### routes[].with\* > `object` diff --git a/src/reference/config/bindings/kafka-grpc/remote_server.md b/src/reference/config/bindings/kafka-grpc/remote_server.md index dca4754f..9221440f 100644 --- a/src/reference/config/bindings/kafka-grpc/remote_server.md +++ b/src/reference/config/bindings/kafka-grpc/remote_server.md @@ -12,6 +12,19 @@ The kafka-grpc remote_server binding ## Configuration (\* required) +### entry\* + +> `string` | Pattern: `^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$` + +The name of the binding that will be the entrypoint for Kafka streams. + +```yaml + kafka_grpc_proxy: + type: kafka-grpc + kind: remote_server + entry: kafka_cache_client +``` + diff --git a/src/reference/config/bindings/kafka/.partials/routes.md b/src/reference/config/bindings/kafka/.partials/routes.md index 6c6ef4fd..d7a92119 100644 --- a/src/reference/config/bindings/kafka/.partials/routes.md +++ b/src/reference/config/bindings/kafka/.partials/routes.md @@ -6,7 +6,7 @@ Conditional `kafka`-specific routes. #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. diff --git a/src/reference/config/bindings/kafka/cache_server.md b/src/reference/config/bindings/kafka/cache_server.md index 36a37b73..1cef9d71 100644 --- a/src/reference/config/bindings/kafka/cache_server.md +++ b/src/reference/config/bindings/kafka/cache_server.md @@ -44,7 +44,7 @@ Topic configuration. #### topics[].defaultOffset -> `enum` [ "live", "historical" ] | Default: `"historical"` +> `enum` [ `live`, `historical` ] | Default: `historical` Fetch offset to use for new consumers diff --git a/src/reference/config/bindings/mqtt-kafka/.partials/options.md b/src/reference/config/bindings/mqtt-kafka/.partials/options.md index 117f3e88..98de2122 100644 --- a/src/reference/config/bindings/mqtt-kafka/.partials/options.md +++ b/src/reference/config/bindings/mqtt-kafka/.partials/options.md @@ -75,7 +75,7 @@ MQTT `publish`-specific options. #### publish.qosMax\* -> `enum` [ "at_most_once", "at_least_once", "exactly_once" ] | default: "exactly_once" +> `enum` [ `at_most_once`, `at_least_once`, `exactly_once` ] | Default: `exactly_once` Highest allowed QOS level. diff --git a/src/reference/config/bindings/mqtt-kafka/.partials/routes.md b/src/reference/config/bindings/mqtt-kafka/.partials/routes.md index 367e0973..08506c7c 100644 --- a/src/reference/config/bindings/mqtt-kafka/.partials/routes.md +++ b/src/reference/config/bindings/mqtt-kafka/.partials/routes.md @@ -18,7 +18,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. @@ -87,7 +87,7 @@ MQTT topic filter pattern. Next binding when following this route. -#### routes[].with +#### routes[].with\* > `object` diff --git a/src/reference/config/bindings/mqtt/.partials/routes.md b/src/reference/config/bindings/mqtt/.partials/routes.md index 39a650a1..033caaa3 100644 --- a/src/reference/config/bindings/mqtt/.partials/routes.md +++ b/src/reference/config/bindings/mqtt/.partials/routes.md @@ -6,7 +6,7 @@ Conditional `mqtt`-specific routes. #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. diff --git a/src/reference/config/bindings/mqtt/client.md b/src/reference/config/bindings/mqtt/client.md index fc60bc2e..7d5077a0 100644 --- a/src/reference/config/bindings/mqtt/client.md +++ b/src/reference/config/bindings/mqtt/client.md @@ -34,7 +34,7 @@ options: #### options.authorization -> `object` as map of named objects +> `object` as map of named:`object` Authorization by a named guard. diff --git a/src/reference/config/bindings/mqtt/server.md b/src/reference/config/bindings/mqtt/server.md index 23b90432..7aae37c8 100644 --- a/src/reference/config/bindings/mqtt/server.md +++ b/src/reference/config/bindings/mqtt/server.md @@ -34,7 +34,7 @@ options: #### options.authorization -> `object` as map of named objects +> `object` as map of named:`object` Authorization by a named guard. @@ -50,7 +50,7 @@ authorization: #### options.versions -> `array` of `enum` [ "v5", "v3.1.1" ] +> `array` of `enum` [ `v3.1.1`, `v5` ] Supported protocol versions. @@ -68,19 +68,19 @@ Topic name. #### topics[].content -> `object` of a named [`model`](../../models/) +> `object` Enforce validation for content #### content.model\* -> `model` [ [`avro`](../../models/avro.md), [`json`](../../models/avro.md), [`protobuf`](../../models/protobuf.md), [`string`](../../models/string.md), [`double`](../../models/double.md), [`float`](../../models/float.md), [`int32`](../../models/int32.md), [`int64`](../../models/int64.md) ] +> `enum` [ `avro`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ] -A schema or type to validate the request content. +A schema or type to validate the request content. Refer to the individual [model](../../models) docs for type specific implementation. #### topics[].user-properties -> `map` of "name: [model](../../models/)" properties +> `object` as map of named:`object` Enforce validation for user provided properties. @@ -93,7 +93,9 @@ user-properties: #### user-properties.model\* -> `model` [ [`avro`](../../models/avro.md), [`json`](../../models/avro.md), [`protobuf`](../../models/protobuf.md), [`string`](../../models/string.md), [`double`](../../models/double.md), [`float`](../../models/float.md), [`int32`](../../models/int32.md), [`int64`](../../models/int64.md) ] +> `enum` [ `avro`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ] + +A schema or type to validate the user-properties content. Refer to the individual [model](../../models) docs for type specific implementation. diff --git a/src/reference/config/bindings/openapi-asyncapi/.partials/options.md b/src/reference/config/bindings/openapi-asyncapi/.partials/options.md index 39624bbe..55762e26 100644 --- a/src/reference/config/bindings/openapi-asyncapi/.partials/options.md +++ b/src/reference/config/bindings/openapi-asyncapi/.partials/options.md @@ -30,11 +30,11 @@ OpenAPI and AsyncAPI specs definition. #### specs.openapi\* -> `object` of `name: value` properties +> `object` as map of named:`object` #### openapi.catalog -> `object` as map of named properties +> `object` as map of named:`object` catalog specific options. @@ -46,17 +46,17 @@ Subject name used when storing the catalog artifact. #### catalog.version -> `string` +> `string` | Default: `latest` Catalog artifact version to use. #### specs.asyncapi\* -> `object` of `name: value` properties +> `object` as map of named:`object` #### asyncapi.catalog -> `object` as map of named properties +> `object` as map of named:`object` `catalog` catalog specific options. @@ -68,6 +68,6 @@ Subject name used when storing the catalog artifact. #### catalog.version -> `string` +> `string` | Default: `latest` Catalog artifact version to use. diff --git a/src/reference/config/bindings/openapi-asyncapi/.partials/routes.md b/src/reference/config/bindings/openapi-asyncapi/.partials/routes.md index 0670376e..c207f308 100644 --- a/src/reference/config/bindings/openapi-asyncapi/.partials/routes.md +++ b/src/reference/config/bindings/openapi-asyncapi/.partials/routes.md @@ -6,7 +6,7 @@ Conditional `openapi-asyncapi`-specific routes for adapting `openapi` operations #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. @@ -49,7 +49,7 @@ routes: exit: asyncapi_client ``` -#### routes[].with +#### routes[].with\* > `object` diff --git a/src/reference/config/bindings/openapi/.partials/options.md b/src/reference/config/bindings/openapi/.partials/options.md index aa09cb7c..854bb170 100644 --- a/src/reference/config/bindings/openapi/.partials/options.md +++ b/src/reference/config/bindings/openapi/.partials/options.md @@ -18,13 +18,13 @@ options: #### options.specs -> `object` as map of named properties +> `object` as map of named:`object` `specs` specific options #### specs.catalog -> `object` as map of named properties +> `object` as map of named:`object` catalog specific options. @@ -36,7 +36,7 @@ Subject name used when storing the catalog artifact. #### catalog.version -> `string` +> `string` | Default: `latest` Catalog artifact version to use. @@ -46,7 +46,7 @@ Catalog artifact version to use. #### servers[].url -> `string` +> `string` | Pattern: `^([a-zA-Z0-9\\\\.-]+)(:(\\\\{[a-zA-Z_]+\\\\}|[0-9]+))?$` The server url to match in openapi spec @@ -54,11 +54,11 @@ The server url to match in openapi spec > `object` -`http` specific options. +http specific options. #### http.authorization -> `object` as map of named properties +> `object` as map of named:`object` Authorization by guard for the `HTTP/1.1` and `HTTP/2` protocols. @@ -78,19 +78,19 @@ Defines how to extract credentials from the HTTP request. #### credentials.cookies -> `map` of `name: value` properties +> `object` as map of named: `string` properties Named cookie value pattern with `{credentials}`. #### credentials.headers -> `map` of `name: value` properties +> `object` as map of named: `string` properties Named header value pattern with `{credentials}`, e.g. `"Bearer` `{credentials}"`. #### credentials.query -> `map` of `name: value` properties +> `object` as map of named: `string` properties Named query parameter value pattern with `{credentials}`. @@ -108,7 +108,7 @@ Hostname or IP address. #### tcp.port -> `integer` | `string` | `array` of `integer` | `array` of `string` +> `integer`, `string`, `array` Port number(s), including port number ranges. @@ -144,9 +144,9 @@ A list of reference names for the Vault signer certificate. #### tls.trustcacerts -> `boolean` | Default: `true` when trust is `null` +> `boolean` -Trust CA certificates. +Trust CA certificates. This property will be considered set to `true` when [tls.trust](#tls-trust) is `null`. #### tls.sni @@ -162,6 +162,6 @@ Application protocols. #### tls.mutual -> `enum` [ "required", "requested", "none" ] | Default: `"none"` +> `enum` [ `required`, `requested`, `none` ] | Default: `none` Mutual authentication. diff --git a/src/reference/config/bindings/proxy/.partials/routes.md b/src/reference/config/bindings/proxy/.partials/routes.md index 554de621..e0516ed4 100644 --- a/src/reference/config/bindings/proxy/.partials/routes.md +++ b/src/reference/config/bindings/proxy/.partials/routes.md @@ -16,7 +16,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. @@ -36,13 +36,13 @@ Read more: [When a route matches](../../../../../concepts/bindings.md#when-a-rou #### when[].transport -> `enum` [ "stream", "datagram" ] +> `enum` [ `stream`, `datagram` ] Transport type. #### when[].family -> `enum` [ "inet", "inet4", "inet6", "unix" ] +> `enum` [ `inet`, `inet4`, `inet6`, `unix` ] Address family. @@ -104,7 +104,7 @@ Port number. #### info.secure -> `string` +> `object` #### secure.cipher diff --git a/src/reference/config/bindings/sse-kafka/.partials/routes.md b/src/reference/config/bindings/sse-kafka/.partials/routes.md index 42a26066..2c298b78 100644 --- a/src/reference/config/bindings/sse-kafka/.partials/routes.md +++ b/src/reference/config/bindings/sse-kafka/.partials/routes.md @@ -17,7 +17,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. @@ -88,7 +88,7 @@ Message key, optionally referencing path parameter such as `${params.key}`. #### filters[].headers -> `map` of `name: value` properties +> `object` as map of named: `string` properties Message headers, with value optionally referencing path parameter such as `${params.headerX}`. @@ -100,6 +100,6 @@ Defines the SSE event syntax used when delivering Kafka messages to SSE clients. #### event.id -> `enum` [ `"${etag}"`, `"["${base64(key)}","${etag}"]"` ] | Default: `"${etag}"` +> `enum` [ `${etag}`, `["${base64(key)}","${etag}"]` ] | Default: `${etag}` Format of `id` field in `sse` `event` diff --git a/src/reference/config/bindings/sse/.partials/options.md b/src/reference/config/bindings/sse/.partials/options.md index 50aa89b9..fdaec620 100644 --- a/src/reference/config/bindings/sse/.partials/options.md +++ b/src/reference/config/bindings/sse/.partials/options.md @@ -35,6 +35,6 @@ Enforce validation for the request content. #### content.model\* -> `model` [ [`avro`](../../../models/avro.md), [`json`](../../../models/avro.md), [`protobuf`](../../../models/protobuf.md), [`string`](../../../models/string.md), [`double`](../../../models/double.md), [`float`](../../../models/float.md), [`int32`](../../../models/int32.md), [`int64`](../../../models/int64.md) ] +> `enum` [ `avro`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ] -A schema or type to validate the request content. +A schema or type to validate the request content. Refer to the individual [model](../../models) docs for type specific implementation. diff --git a/src/reference/config/bindings/sse/.partials/routes.md b/src/reference/config/bindings/sse/.partials/routes.md index f89e22e2..4935c240 100644 --- a/src/reference/config/bindings/sse/.partials/routes.md +++ b/src/reference/config/bindings/sse/.partials/routes.md @@ -16,7 +16,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. diff --git a/src/reference/config/bindings/tcp/.partials/options.md b/src/reference/config/bindings/tcp/.partials/options.md index 2afb95ae..2d7d490c 100644 --- a/src/reference/config/bindings/tcp/.partials/options.md +++ b/src/reference/config/bindings/tcp/.partials/options.md @@ -18,6 +18,6 @@ Hostname or IP address. #### options.port -> `integer` | `string` | `array` of `integer` | `array` of `string` +> `integer`, `string`, `array` Port number(s), including port number ranges. diff --git a/src/reference/config/bindings/tcp/.partials/routes.md b/src/reference/config/bindings/tcp/.partials/routes.md index 4d0a2fe0..f7d19894 100644 --- a/src/reference/config/bindings/tcp/.partials/routes.md +++ b/src/reference/config/bindings/tcp/.partials/routes.md @@ -1,6 +1,6 @@ #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. @@ -19,12 +19,12 @@ Associated authority. #### when[].cidr -> `string` +> `string` | Pattern: `^[0-9a-fA-F:.]+/(\\d{1,3})$` CIDR mask. #### when[].port -> `integer` | `string` | `array` of `integer` | `array` of `string` +> `integer`, `string`, `array` Port number(s), including port number ranges. diff --git a/src/reference/config/bindings/tls/.partials/options.md b/src/reference/config/bindings/tls/.partials/options.md index f0e62237..2027bfc5 100644 --- a/src/reference/config/bindings/tls/.partials/options.md +++ b/src/reference/config/bindings/tls/.partials/options.md @@ -40,9 +40,9 @@ A list of reference names for the Vault signer certificate. #### options.trustcacerts -> `boolean` | Default: `true` when trust is `null` +> `boolean` -Trust CA certificates. +Trust CA certificates. This property will be considered set to `true` when [tls.trust](#tls-trust) is `null`. #### options.sni @@ -58,6 +58,6 @@ Application protocols. #### options.mutual -> `enum` [ "required", "requested", "none" ] | Default: `"none"` +> `enum` [ `required`, `requested`, `none` ] | Default: `none` Mutual authentication diff --git a/src/reference/config/bindings/tls/.partials/routes.md b/src/reference/config/bindings/tls/.partials/routes.md index 0a760c34..d8b332c7 100644 --- a/src/reference/config/bindings/tls/.partials/routes.md +++ b/src/reference/config/bindings/tls/.partials/routes.md @@ -13,7 +13,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. @@ -51,7 +51,7 @@ Application protocol. #### when[].port -> `integer` | `string` | `array` of `integer` | `array` of `string` +> `integer`, `string`, `array` Port number(s), including port number ranges. diff --git a/src/reference/config/bindings/ws/.partials/routes.md b/src/reference/config/bindings/ws/.partials/routes.md index c3a6e844..00f844b6 100644 --- a/src/reference/config/bindings/ws/.partials/routes.md +++ b/src/reference/config/bindings/ws/.partials/routes.md @@ -13,7 +13,7 @@ routes: #### routes[].guarded -> `object` as named map of `string:string` `array` +> `object` as map of named:`array` of `string` List of roles required by each named guard to authorize this route. diff --git a/src/reference/config/catalogs/.partials/options-schema-registry.md b/src/reference/config/catalogs/.partials/options-schema-registry.md index 391a28ce..dce0b7a1 100644 --- a/src/reference/config/catalogs/.partials/options-schema-registry.md +++ b/src/reference/config/catalogs/.partials/options-schema-registry.md @@ -10,12 +10,12 @@ Schema Registry URL to access schemas via API calls. #### options.context -> `string` | Default: `"default"` +> `string` | Default: `default` Schema context represents an independent scope in the Schema Registry. #### options.max-age -> `integer` | Default: `300` +> `number` | Default: `300` The maximum duration in seconds to keep a cached schema before fetching the schema again. diff --git a/src/reference/config/catalogs/apicurio-registry.md b/src/reference/config/catalogs/apicurio-registry.md index 3536d342..854a5dea 100644 --- a/src/reference/config/catalogs/apicurio-registry.md +++ b/src/reference/config/catalogs/apicurio-registry.md @@ -36,24 +36,24 @@ Apicurio URL to access schemas or AsyncAPI/OpenAPI definitions via API calls. #### options.group-id -> `string` +> `string` | Default: `default` The artifact group ID represents an independent scope in Apicurio. #### options.use-id -> `enum` [ "globalId", "contentId" ] | Default: `"globalId"` +> `enum` [ `globalId`, `contentId` ] | Default: `globalId` Use global or content identifier for resolving schemas in Apicurio. #### options.id-encoding -> `enum` [ "default", "legacy" ] | Default: `"default"` +> `enum` [ `default`, `legacy` ] | Default: `default` Store identifiers as Apicurio default 8-byte long or legacy 4-byte integer. #### options.max-age -> `integer` | Default: `300` +> `number` | Default: `300` The maximum duration in seconds to keep a cached schema before fetching the schema again. diff --git a/src/reference/config/catalogs/aws-glue.md b/src/reference/config/catalogs/aws-glue.md index 50a7c41c..14e7eda5 100644 --- a/src/reference/config/catalogs/aws-glue.md +++ b/src/reference/config/catalogs/aws-glue.md @@ -37,12 +37,12 @@ The AWS Glue Registry name to access schemas. #### options.max-age -> `number` | Default: `"300"` +> `number` | Default: `300` Configures the time to live in `seconds` for the schema information retrieved against the latest version. The default is 300 seconds or 5 minutes. #### options.compression -> `enum` [ "none", "zlib" ] | Default: `"none"` +> `enum` [ `none`, `zlib` ] | Default: `none` Configures the compression level for the message payloads that are serialized by the models configured in this catalog. diff --git a/src/reference/config/catalogs/filesystem.md b/src/reference/config/catalogs/filesystem.md index d4643126..277a7702 100644 --- a/src/reference/config/catalogs/filesystem.md +++ b/src/reference/config/catalogs/filesystem.md @@ -27,7 +27,7 @@ catalogs: #### options.subjects -> `object` as map of named objects +> `object` as map of named:`object` Unique identifier for artifact categorization in the catalog. diff --git a/src/reference/config/catalogs/inline.md b/src/reference/config/catalogs/inline.md index dfee1f97..0a502a4c 100644 --- a/src/reference/config/catalogs/inline.md +++ b/src/reference/config/catalogs/inline.md @@ -41,7 +41,7 @@ catalog: #### options.subjects -> `object` as map of named objects +> `object` as map of named:`object` Unique identifier for schema categorization in the registry. @@ -53,6 +53,6 @@ Definition specifying data structure and format in detail. #### subjects.version -> `string` | Default: `"latest"` +> `string` | Default: `latest` Specific iteration or version of a registered schema. diff --git a/src/reference/config/guards/jwt.md b/src/reference/config/guards/jwt.md index b0679ab5..1028b389 100644 --- a/src/reference/config/guards/jwt.md +++ b/src/reference/config/guards/jwt.md @@ -91,15 +91,19 @@ Audience claim. #### options.challenge -> `integer` +> `number` Challenge period (seconds). #### options.keys -> `array` of `object` +> `string`, `array` of `object` -If not provided, relies on the `issuer` to infer the location of a remote `.well-known/jwks.json` file. +If not provided, the `jwt` vault relies on the issuer to infer the location of a remote `.well-known/jwks.json` file. + +If a `string` is provided, the value is expected to be a URI. + +If an `array` of objects is provided, the value is expected to be a list of object with the supported keys and their values. ::: note Supported keys diff --git a/src/reference/config/models/.partials/cataloged.md b/src/reference/config/models/.partials/cataloged.md index 71534680..0590abf6 100644 --- a/src/reference/config/models/.partials/cataloged.md +++ b/src/reference/config/models/.partials/cataloged.md @@ -1,6 +1,6 @@ ### catalog -> `object` +> `object` as map of named:`array` To map defined catalog for schema retrieval based on catalog specific parameters. Any of the possible combination can be configured. @@ -20,13 +20,13 @@ Define specific schema id to refer from catalog. #### catalog.version -> `string` | Default: `"latest"` +> `string` | Default: `latest` Specific iteration or version of a registered schema in the defined catalog. #### catalog.strategy\* -> `enum` [ "topic" ] +> `enum` [ `topic` ] To determine the subject based on the specified strategy diff --git a/src/reference/config/models/.partials/integer.md b/src/reference/config/models/.partials/integer.md new file mode 100644 index 00000000..d1202c4f --- /dev/null +++ b/src/reference/config/models/.partials/integer.md @@ -0,0 +1,11 @@ +### format + +> `enum` [ `binary`, `text` ] | Default: `text` + +### multiple + +> `integer` + +### range + +> `string` | Pattern: `((?:\\(|\\[))(-?\\d+)?,(-?\\d+)?((?:\\)|\\]))` diff --git a/src/reference/config/models/.partials/number.md b/src/reference/config/models/.partials/number.md index 7c60adf0..5eba4b16 100644 --- a/src/reference/config/models/.partials/number.md +++ b/src/reference/config/models/.partials/number.md @@ -1,11 +1,11 @@ ### format -> `enum` [ "binary", "text" ] | Default: `"text"` +> `enum` [ `binary`, `text` ] | Default: `text` -### range +### multiple -> `string` | Pattern: "((?:\\(|\\[))(-?\\d+)?,(-?\\d+)?((?:\\)|\\]))" +> `number` -### multiple +### range -> `integer` +> `string` | Pattern: `((?:\\(|\\[))(-?\\d+(?:\\.\\d+)?)?,(-?\\d+(?:\\.\\d+)?)?((?:\\)|\\]))` diff --git a/src/reference/config/models/avro.md b/src/reference/config/models/avro.md index edae95e4..359e3418 100644 --- a/src/reference/config/models/avro.md +++ b/src/reference/config/models/avro.md @@ -26,11 +26,13 @@ catalog: ### model: avro +> `const` + Specifies the model is `avro`. ### view -> `enum` [ "json" ] +> `enum` [ `json` ] Transforms the model from this data type to the Avro schema on produce and to this data type from the Avro schema on consume. diff --git a/src/reference/config/models/double.md b/src/reference/config/models/double.md index 8f184c20..f9147008 100644 --- a/src/reference/config/models/double.md +++ b/src/reference/config/models/double.md @@ -16,6 +16,8 @@ model: double ### model: double +> `const` + Specifies the model is a `double`. diff --git a/src/reference/config/models/float.md b/src/reference/config/models/float.md index 88fb32b8..b0ee9be8 100644 --- a/src/reference/config/models/float.md +++ b/src/reference/config/models/float.md @@ -16,6 +16,12 @@ model: float ### model: float +> `const` + Specifies the model is a `float`. + +### range + +> `string` | Pattern: `((?:\\(|\\[))(-?\\d+(?:\\.\\d+)?)?,(-?\\d+(?:\\.\\d+)?)?((?:\\)|\\]))` diff --git a/src/reference/config/models/int32.md b/src/reference/config/models/int32.md index ab26450b..71da490c 100644 --- a/src/reference/config/models/int32.md +++ b/src/reference/config/models/int32.md @@ -17,6 +17,8 @@ model: int32 ### model: int32 +> `const` + Specifies the model is a `int32`. - + diff --git a/src/reference/config/models/int64.md b/src/reference/config/models/int64.md index 91460a19..101664e9 100644 --- a/src/reference/config/models/int64.md +++ b/src/reference/config/models/int64.md @@ -16,6 +16,8 @@ model: int64 ### model: int64 +> `const` + Specifies the model is a `int64`. - + diff --git a/src/reference/config/models/json.md b/src/reference/config/models/json.md index b4602315..c11b007f 100644 --- a/src/reference/config/models/json.md +++ b/src/reference/config/models/json.md @@ -25,6 +25,8 @@ catalog: ### model: json +> `const` + Specifies the model is `json`. diff --git a/src/reference/config/models/protobuf.md b/src/reference/config/models/protobuf.md index 37aec51f..911ee805 100644 --- a/src/reference/config/models/protobuf.md +++ b/src/reference/config/models/protobuf.md @@ -28,19 +28,19 @@ catalog: ### model: protobuf -> `string` +> `const` Specifies the model is a `protobuf`. ### view -> `enum` [ "json" ] +> `enum` [ `json` ] Transforms the model from this data type to the Protobuf schema on produce and to this data type from the Protobuf schema on consume. ### catalog -> `object` +> `object` as map of named:`array` To map defined catalog for schema retrieval based on catalog specific parameters. Any of the possible combination can be configured. @@ -63,13 +63,13 @@ Define specific schema id to refer from catalog. #### catalog.version -> `string` | Default: `"latest"` +> `string` | Default: `latest` Specific iteration or version of a registered schema in the defined catalog. #### catalog.strategy\* -> `enum` [ "topic" ] +> `enum` [ `topic` ] To determine the subject based on the specified strategy diff --git a/src/reference/config/models/string.md b/src/reference/config/models/string.md index 9d775f62..ad30a956 100644 --- a/src/reference/config/models/string.md +++ b/src/reference/config/models/string.md @@ -14,6 +14,8 @@ Defines a model to enforce validation for string data. ### model: string +> `const` + Specifies the model is a `string`. ```yaml {1} @@ -26,19 +28,19 @@ pattern: ^wait=\d+$ ### encoding -> `enum` [ "utf_8","utf_16" ] +> `enum` [ `utf_8`, `utf_16` ] Define character encoding for unicode. ### minLength -> `integer` | minimum: 1 +> `integer` | Minimum: `1` Define string minimum length. ### maxLength -> `integer` | minimum: 1 +> `integer` | Minimum: `1` Define string maximum length. diff --git a/src/reference/config/overview.md b/src/reference/config/overview.md index 9d3fbed8..0b9d8c3c 100644 --- a/src/reference/config/overview.md +++ b/src/reference/config/overview.md @@ -36,7 +36,7 @@ Namespace name. ### bindings -> `object` as map of named [`binding`](./bindings/) properties +> `object` as map of named:[`binding`](./bindings/) properties Each configured `binding` represents a step in the pipeline as data streams are decoded, translated or encoded according to a specific protocol `type`. @@ -52,7 +52,7 @@ Unconditional `exit` binding acting as a default if none of the conditional rout ### guards -> `object` as map of named [`guard`](./guards/) properties +> `object` as map of named:[`guard`](./guards/) properties Each configured `guard` represents a security checkpoint for one or more bindings based on a specific implementation `type`. @@ -62,7 +62,7 @@ Associated roles can be enforced during routing by only following routes `guarde ### vaults -> `object` as map of named [`vault`](./vaults/) properties +> `object` as map of named:[`vault`](./vaults/) properties Each configured `vault` represents a container for digital keys and certificates based on a specific implementation `type`. @@ -70,7 +70,7 @@ Vaults can be used by specific protocol bindings, such as `tls`, to negotiate sh ### catalogs -> `object` as map of named [`catalog`](./catalogs/) properties +> `object` as map of named:[`catalog`](./catalogs/) properties Each configured `catalog` represent a catalog of schemas of various format based on a specific implementation `type`. @@ -98,7 +98,7 @@ Default attributes to optionally include when exporting metrics. #### exporters -> `object` as map of named [`exporter`](./telemetry/exporters/) properties +> `object` as map of named:[`exporter`](./telemetry/exporters/) properties Map of named exporters. diff --git a/src/reference/config/telemetry/exporters/aws-cloudwatch.md b/src/reference/config/telemetry/exporters/aws-cloudwatch.md index 9610cc3b..4981c233 100644 --- a/src/reference/config/telemetry/exporters/aws-cloudwatch.md +++ b/src/reference/config/telemetry/exporters/aws-cloudwatch.md @@ -62,9 +62,9 @@ To avoid conflicts with Amazon Web Services service namespaces, you should not s #### metrics.interval -> `integer` +> `integer` | Default: `30` -Interval in seconds to push data to the Amazon CloudWatch. Default: 30 seconds. +Interval in seconds to push data to the Amazon CloudWatch. #### options.logs diff --git a/src/reference/config/telemetry/exporters/otlp.md b/src/reference/config/telemetry/exporters/otlp.md index 605b610d..5485e036 100644 --- a/src/reference/config/telemetry/exporters/otlp.md +++ b/src/reference/config/telemetry/exporters/otlp.md @@ -46,13 +46,13 @@ options: #### options.interval -> `integer` | Default: `30` +> `number` | Default: `30` Interval in seconds to push data to the collector. #### options.signals -> `array` of `enum` [ "logs", "metrics" ] +> `array` of `enum` [ `metrics`, `logs` ] Specifies what signals should be exported. The default behavior is to export all supported signals. @@ -64,7 +64,7 @@ Contains details for the OpenTelemetry Protocol collector endpoint. #### endpoint.protocol -> `enum` [ "http" ] | Default: `"http"` +> `enum` [ `http` ] | Default: `http` Specifies the protocol to use for exporting data for exporting data to the [OTEL Collector](https://opentelemetry.io/docs/collector/). diff --git a/src/reference/config/telemetry/exporters/prometheus.md b/src/reference/config/telemetry/exporters/prometheus.md index a135defd..a60ea015 100644 --- a/src/reference/config/telemetry/exporters/prometheus.md +++ b/src/reference/config/telemetry/exporters/prometheus.md @@ -47,13 +47,13 @@ Contains `prometheus` endpoints. #### endpoints[].scheme\* -> `enum` [ "http" ] +> `enum` [ `http` ] URL scheme to accept for endpoint. #### endpoints[].port\* -> `int` +> `integer` URL port to accept for endpoint. diff --git a/src/reference/config/telemetry/exporters/syslog.md b/src/reference/config/telemetry/exporters/syslog.md index 074b620f..2d345ca8 100644 --- a/src/reference/config/telemetry/exporters/syslog.md +++ b/src/reference/config/telemetry/exporters/syslog.md @@ -100,7 +100,7 @@ The port of the syslog server. #### options.protocol* -> `enum` [ "tcp", "udp", "tls" ] | Default: `"tcp"` +> `enum` [ `tcp`, `udp`, `tls` ] | Default: `tcp` The protocol to use to communicate with the syslog server. Valid values are: `tcp`, `udp`, `tls`. diff --git a/src/reference/config/vaults/filesystem.md b/src/reference/config/vaults/filesystem.md index eb968fda..c7bb1d8a 100644 --- a/src/reference/config/vaults/filesystem.md +++ b/src/reference/config/vaults/filesystem.md @@ -57,10 +57,9 @@ Relative path to keystore. #### keys.type -> `string` +> `string` | Default: `pkcs12` -Keystore type,\ -defaults to `"pkcs12"` +Keystore type. #### keys.password @@ -82,10 +81,9 @@ Relative path to keystore. #### trust.type -> `string` +> `string` | Default: `pkcs12` -Keystore type,\ -defaults to `"pkcs12"` +Keystore type. #### trust.password @@ -107,10 +105,9 @@ Relative path to keystore. #### signers.type -> `string` +> `string` | Default: `pkcs12` -Keystore type.\ -defaults to `"pkcs12"` +Keystore type. #### signers.password