From ff92f14959f0d758dc4a401d2e7086526c0654cd Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Tue, 23 Sep 2025 14:10:04 +0530 Subject: [PATCH 1/4] fix schema check based on latest zilla schema --- .../.partials/options-kafka-topics.md | 8 +++--- .../bindings/grpc-kafka/.partials/routes.md | 2 +- src/reference/config/bindings/grpc/server.md | 25 +++---------------- .../http-filesystem/.partials/routes.md | 12 +++++++++ .../bindings/http-kafka/.partials/routes.md | 10 +++++--- .../config/bindings/http/.partials/options.md | 22 ++++++++-------- .../config/bindings/http/.partials/routes.md | 4 +-- .../bindings/mqtt-kafka/.partials/routes.md | 4 +-- .../config/bindings/mqtt/.partials/routes.md | 8 +++--- src/reference/config/bindings/mqtt/server.md | 8 +++--- .../pgsql-kafka/.partials/cataloged.md | 2 +- .../config/bindings/pgsql-kafka/proxy.md | 1 + src/reference/config/bindings/pgsql/client.md | 1 + src/reference/config/bindings/pgsql/server.md | 1 + .../bindings/risingwave/.partials/options.md | 16 ++++++------ .../bindings/risingwave/.partials/routes.md | 22 ++++++++++++---- .../config/bindings/risingwave/proxy.md | 12 ++++++++- .../bindings/sse-kafka/.partials/routes.md | 4 +-- .../config/bindings/sse/.partials/options.md | 4 +-- .../config/bindings/sse/.partials/routes.md | 4 +-- .../.partials/options-schema-registry.md | 12 ++++----- .../config/catalogs/apicurio-registry.md | 4 +++ src/reference/config/catalogs/filesystem.md | 4 +++ src/reference/config/catalogs/inline.md | 4 +++ src/reference/config/vaults/filesystem.md | 2 +- 25 files changed, 113 insertions(+), 83 deletions(-) diff --git a/src/reference/config/bindings/.partials/options-kafka-topics.md b/src/reference/config/bindings/.partials/options-kafka-topics.md index 9f4146e8..73b5f347 100644 --- a/src/reference/config/bindings/.partials/options-kafka-topics.md +++ b/src/reference/config/bindings/.partials/options-kafka-topics.md @@ -6,24 +6,24 @@ Topic name. #### topics[].key -> `enum` [ `avro`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ], `object` +> `enum` [ `avro`, `boolean`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ], `object` Enforce validation for key #### key.model\* -> `enum` [ `avro`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ] +> `enum` [ `avro`, `boolean`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ] A schema or type to validate the topic's key. Refer to the individual [model](../../models/) docs for type specific implementation. #### topics[].value -> `enum` [ `avro`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ], `object` +> `enum` [ `avro`, `boolean`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ], `object` Enforce validation for value #### value.model\* -> `enum` [ `avro`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ] +> `enum` [ `avro`, `boolean`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ] A schema or type to validate the topic's value. Refer to the individual [model](../../models/) docs for type specific implementation. diff --git a/src/reference/config/bindings/grpc-kafka/.partials/routes.md b/src/reference/config/bindings/grpc-kafka/.partials/routes.md index e0d7b38e..514583c4 100644 --- a/src/reference/config/bindings/grpc-kafka/.partials/routes.md +++ b/src/reference/config/bindings/grpc-kafka/.partials/routes.md @@ -233,7 +233,7 @@ Supports dynamic parameter substitution using the following pattern: - `${guarded['jwt'].identity}` – Substitutes a guarded identity value. -#### with.reply-to\* +#### with.reply-to > `string` diff --git a/src/reference/config/bindings/grpc/server.md b/src/reference/config/bindings/grpc/server.md index 841e3a47..588df139 100644 --- a/src/reference/config/bindings/grpc/server.md +++ b/src/reference/config/bindings/grpc/server.md @@ -12,30 +12,13 @@ The grpc server binding adapts `http` request-response streams to `grpc` request ## Configuration (\* required) -### catalog +### options -> `object` as map of named `array` +> `object` -To map defined catalog for schema retrieval based on catalog specific parameters. - -```yaml -catalog: - my_catalog: - - subject: http -``` - -#### catalog[].subject\* - -> `string` - -Unique identifier for schema categorization in the catalog. - -#### catalog[].version - -> `string` | Default: `latest` - -Specific iteration or version of a registered schema in the defined catalog. +The `server` specific options. + diff --git a/src/reference/config/bindings/http-filesystem/.partials/routes.md b/src/reference/config/bindings/http-filesystem/.partials/routes.md index 0a712dae..21104d93 100644 --- a/src/reference/config/bindings/http-filesystem/.partials/routes.md +++ b/src/reference/config/bindings/http-filesystem/.partials/routes.md @@ -39,6 +39,12 @@ routes: - path: /{path} ``` +#### when[].method + +> `enum` [ `GET`, `PUT`, `POST`, `DELETE`, `HEAD` ] + +HTTP method + #### when[].path > `string` @@ -69,3 +75,9 @@ Filesystem parameters used when adapting `http` data streams into `filesystem` d > `string` Topic name, optionally referencing path parameter such as `${params.path}`. + +#### with.directory\* + +> `string` + +Optionally referencing path parameter such as `${params.directory}`. diff --git a/src/reference/config/bindings/http-kafka/.partials/routes.md b/src/reference/config/bindings/http-kafka/.partials/routes.md index e378a967..0d6c83e4 100644 --- a/src/reference/config/bindings/http-kafka/.partials/routes.md +++ b/src/reference/config/bindings/http-kafka/.partials/routes.md @@ -76,9 +76,7 @@ routes: - read:items ``` -##### Dynamic guarded routes - -Dynamic guarded routes allow roles to be evaluated at runtime based on the incoming HTTP request. +**Dynamic guarded routes**: Allow roles to be evaluated at runtime based on the incoming HTTP request. ```yaml routes: @@ -308,6 +306,12 @@ Kafka message headers, with values optionally referencing path parameter. Kafka reply-to topic name. +#### with.correlation-id + +> `string` + +Correlation-Id Kafka Header. + #### with.async > `object` as map of named `string` properties diff --git a/src/reference/config/bindings/http/.partials/options.md b/src/reference/config/bindings/http/.partials/options.md index 188f6fae..e846a6a2 100644 --- a/src/reference/config/bindings/http/.partials/options.md +++ b/src/reference/config/bindings/http/.partials/options.md @@ -7,13 +7,13 @@ Options to configure typed validations for request fields. #### requests[].content -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` +> `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` Enforce validation for the request content. #### content.model\* -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] +> `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ] A schema or type to validate the request content. Refer to the individual [model](../../../models/) docs for type specific implementation. @@ -25,7 +25,7 @@ Content type of the HTTP request. #### requests[].headers -> `object` as map of named `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` as map of named `object` properties +> `object` as map of named `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` as map of named `object` properties Enforce validation for request headers. @@ -43,25 +43,25 @@ Query parameters of the HTTP request. #### params.path -> `object` as map of named `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` as map of named `object` properties +> `object` as map of named `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` as map of named `object` properties Enforce validation for path #### path.model\* -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] +> `enum` [ `boolean`, `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` as map of named `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` as map of named `object` properties +> `object` as map of named `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` as map of named `object` properties Enforce validation for query #### query.model\* -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] +> `enum` [ `boolean`, `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. @@ -79,14 +79,14 @@ Options to configure typed validations for response fields. #### responses[].content -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` +> `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` Enforce validation for the response content. #### content.model\* -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] +> `enum` [ `boolean`, `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. @@ -99,7 +99,7 @@ Content type of the HTTP response. #### responses[].headers -> `object` as map of named `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` as map of named `object` properties +> `object` as map of named `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` as map of named `object` properties Enforce validation for response headers. @@ -112,7 +112,7 @@ headers: #### headers.model\* -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] +> `enum` [ `boolean`, `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. diff --git a/src/reference/config/bindings/http/.partials/routes.md b/src/reference/config/bindings/http/.partials/routes.md index 2ba5a600..9afd1b71 100644 --- a/src/reference/config/bindings/http/.partials/routes.md +++ b/src/reference/config/bindings/http/.partials/routes.md @@ -26,9 +26,7 @@ routes: - read:items ``` -##### Dynamic guarded routes - -Dynamic guarded routes allow roles to be evaluated at runtime based on the incoming HTTP request. +**Dynamic guarded routes**: Allow roles to be evaluated at runtime based on the incoming HTTP request. ```yaml routes: diff --git a/src/reference/config/bindings/mqtt-kafka/.partials/routes.md b/src/reference/config/bindings/mqtt-kafka/.partials/routes.md index 53cc0047..91956ff2 100644 --- a/src/reference/config/bindings/mqtt-kafka/.partials/routes.md +++ b/src/reference/config/bindings/mqtt-kafka/.partials/routes.md @@ -59,7 +59,7 @@ Array of MQTT topic filters matching topic names for publish. #### publish[].topic -> `string` +> `string` | Pattern: `^(\\/?([\\w{}\\.-]*|\\+)(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?)$` MQTT topic filter pattern. @@ -77,7 +77,7 @@ Array of MQTT topic filters matching topic names for subscribe. #### subscribe[].topic -> `string` +> `string` | Pattern: `^(\\/?([\\w{}\\.-]*|\\+)(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?)$` MQTT topic filter pattern. diff --git a/src/reference/config/bindings/mqtt/.partials/routes.md b/src/reference/config/bindings/mqtt/.partials/routes.md index 98f9629a..78029578 100644 --- a/src/reference/config/bindings/mqtt/.partials/routes.md +++ b/src/reference/config/bindings/mqtt/.partials/routes.md @@ -56,7 +56,7 @@ Array of MQTT topic configs for publish capability. #### publish[].topic -> `string` +> `string` | Pattern: `^(\\/?([\\w{}\\.-]*|\\+)(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?)$` The MQTT topic to match on that supports standard MQTT wildcards `/+/`, `/#`. @@ -64,7 +64,7 @@ Also, supports embedded parameters (e.g., `{id}`) for dynamic topic matching. #### publish[].params -> `object` as map of named `string` +> `object` as map of named `string` properties | Pattern: `^[a-zA-Z0-9{}\\[\\]\\.\\$']*$` Enforce validation of topic embedded parameters. @@ -87,7 +87,7 @@ Array of MQTT topic configs for subscribe capability. #### subscribe[].topic -> `string` +> `string` | Pattern: `^(\\/?([\\w{}\\.-]*|\\+)(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?)$` The MQTT topic to match on that supports standard MQTT wildcards `/+/`, `/#`. @@ -95,7 +95,7 @@ Also, supports embedded parameters (e.g., `{id}`) for dynamic topic matching. #### subscribe[].params -> `object` as map of named `string` +> `object` as map of named `string` properties | Pattern: `^[a-zA-Z0-9{}\\[\\]\\.\\$']*$` Enforce validation of topic embedded parameters. diff --git a/src/reference/config/bindings/mqtt/server.md b/src/reference/config/bindings/mqtt/server.md index f422964d..5f199142 100644 --- a/src/reference/config/bindings/mqtt/server.md +++ b/src/reference/config/bindings/mqtt/server.md @@ -68,19 +68,19 @@ Topic name. #### topics[].content -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` +> `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` Enforce validation for content #### content.model\* -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] +> `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ] A schema or type to validate the request content. Refer to the individual [model](../../models/) docs for type specific implementation. #### topics[].user-properties -> `object` as map of named `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` as map of named `object` properties +> `object` as map of named `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` as map of named `object` properties Enforce validation for user provided properties. @@ -93,7 +93,7 @@ user-properties: #### user-properties.model\* -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] +> `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `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/pgsql-kafka/.partials/cataloged.md b/src/reference/config/bindings/pgsql-kafka/.partials/cataloged.md index ba1bbfa2..f76a03f7 100644 --- a/src/reference/config/bindings/pgsql-kafka/.partials/cataloged.md +++ b/src/reference/config/bindings/pgsql-kafka/.partials/cataloged.md @@ -1,4 +1,4 @@ -### catalog\* +### catalog > `object` as map of named `array` diff --git a/src/reference/config/bindings/pgsql-kafka/proxy.md b/src/reference/config/bindings/pgsql-kafka/proxy.md index 5308ff86..6c9ec29a 100644 --- a/src/reference/config/bindings/pgsql-kafka/proxy.md +++ b/src/reference/config/bindings/pgsql-kafka/proxy.md @@ -21,3 +21,4 @@ The pgsql-kafka proxy binding for adapting `pgsql` request-response streams to ` ```yaml exit: pgsql_tcp_client ``` + diff --git a/src/reference/config/bindings/pgsql/client.md b/src/reference/config/bindings/pgsql/client.md index 1147de24..f35cdc19 100644 --- a/src/reference/config/bindings/pgsql/client.md +++ b/src/reference/config/bindings/pgsql/client.md @@ -19,3 +19,4 @@ The pgsql `client` binding receives inbound application streams and route throug ```yaml exit: pgsql_tcp_client ``` + diff --git a/src/reference/config/bindings/pgsql/server.md b/src/reference/config/bindings/pgsql/server.md index 61eb4f69..f14a1565 100644 --- a/src/reference/config/bindings/pgsql/server.md +++ b/src/reference/config/bindings/pgsql/server.md @@ -19,3 +19,4 @@ The pgsql server binding receives inbound network stream, producing higher level ```yaml exit: risingwave_proxy ``` + diff --git a/src/reference/config/bindings/risingwave/.partials/options.md b/src/reference/config/bindings/risingwave/.partials/options.md index 1a82ca15..30a38151 100644 --- a/src/reference/config/bindings/risingwave/.partials/options.md +++ b/src/reference/config/bindings/risingwave/.partials/options.md @@ -22,19 +22,19 @@ options: #### options.udf -> `object` as map of named `array` +> `array` of `object` Define UDF server ##### udf[].server -> `string` +> `string` | Pattern: `^([a-zA-Z0-9\\\\.-]+)(:(\\\\{[a-zA-Z_]+\\\\}|[0-9]+))?$` UDF Server location ##### udf[].language -> `string` | Default: `java` +> `enum` [ `java`, `python` ] | Default: `java` UDF language @@ -48,7 +48,7 @@ Kafka properties and message formatting > `object` -###### kafka.properties.bootstrap.server +###### properties.bootstrap.server > `string` @@ -56,15 +56,15 @@ Kafka bootstrap server ##### kafka.format -> `object` +> `enum` [ `avro`, `boolean`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ], `object` -###### kafka.format.model +###### format.model\* -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] +> `enum` [ `avro`, `boolean`, `double`, `float`, `int32`, `int64`, `json`, `protobuf`, `string` ] A schema or type to validate the request content. Refer to the individual [model](../../../models/) docs for type specific implementation. -##### kafka.format.catalog\* +##### catalog > `object` as map of named `array` diff --git a/src/reference/config/bindings/risingwave/.partials/routes.md b/src/reference/config/bindings/risingwave/.partials/routes.md index 632cb8b1..b9a637b7 100644 --- a/src/reference/config/bindings/risingwave/.partials/routes.md +++ b/src/reference/config/bindings/risingwave/.partials/routes.md @@ -1,6 +1,6 @@ -### routes\* +### routes -> `array` of `object` +> `array` Conditional `risingwave` specific routes. @@ -18,7 +18,7 @@ routes: #### routes[].when -> `array` of `object` +> `array` List of conditions (any match) to match this route when adapting `risingwave` request-response streams. Read more: [When a route matches](/concepts/protocol/README.md#route-matches) @@ -32,9 +32,21 @@ routes: #### when[].commands -> `array` of `string` +> `array` of `enum` [ `CREATE TOPIC`, `ALTER TOPIC`, `DROP TOPIC` ] + +#### routes[].guarded + +> `object` as map of named `array` of `string` + +List of roles required by each named guard to authorize this route. + +```yaml +routes: + - guarded: + my_guard: + - read:items +``` -> `enum` [ `CREATE TOPIC`, `ALTER TOPIC`, `DROP TOPIC` ] #### routes[].exit diff --git a/src/reference/config/bindings/risingwave/proxy.md b/src/reference/config/bindings/risingwave/proxy.md index 8b544a42..913f03a8 100644 --- a/src/reference/config/bindings/risingwave/proxy.md +++ b/src/reference/config/bindings/risingwave/proxy.md @@ -15,4 +15,14 @@ The risingwave proxy binding for adapting `risingwave` request-response streams. - +### exit\* + +> `string` + +Default exit binding when no conditional routes are viable. + +```yaml +exit: server +``` + + diff --git a/src/reference/config/bindings/sse-kafka/.partials/routes.md b/src/reference/config/bindings/sse-kafka/.partials/routes.md index 0df0512c..972301f4 100644 --- a/src/reference/config/bindings/sse-kafka/.partials/routes.md +++ b/src/reference/config/bindings/sse-kafka/.partials/routes.md @@ -28,9 +28,7 @@ routes: - read:items ``` -##### Dynamic guarded routes - -Dynamic guarded routes allow roles to be evaluated at runtime based on the incoming request. +**Dynamic guarded routes**: Allow roles to be evaluated at runtime based on the incoming request. ```yaml routes: diff --git a/src/reference/config/bindings/sse/.partials/options.md b/src/reference/config/bindings/sse/.partials/options.md index 2bf729d9..abaa7ca9 100644 --- a/src/reference/config/bindings/sse/.partials/options.md +++ b/src/reference/config/bindings/sse/.partials/options.md @@ -29,12 +29,12 @@ The path selector. #### requests[].content -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` +> `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ], `object` Enforce validation for the request content. #### content.model\* -> `enum` [ `double`, `float`, `int32`, `int64`, `json`, `string` ] +> `enum` [ `boolean`, `double`, `float`, `int32`, `int64`, `json`, `string` ] 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 774ad956..2da28c1a 100644 --- a/src/reference/config/bindings/sse/.partials/routes.md +++ b/src/reference/config/bindings/sse/.partials/routes.md @@ -27,9 +27,7 @@ routes: - read:items ``` -##### Dynamic guarded routes - -Dynamic guarded routes allow roles to be evaluated at runtime based on the incoming request. +**Dynamic guarded routes**: Allow roles to be evaluated at runtime based on the incoming request. ```yaml routes: diff --git a/src/reference/config/catalogs/.partials/options-schema-registry.md b/src/reference/config/catalogs/.partials/options-schema-registry.md index 7be55f48..b0da21c9 100644 --- a/src/reference/config/catalogs/.partials/options-schema-registry.md +++ b/src/reference/config/catalogs/.partials/options-schema-registry.md @@ -6,7 +6,7 @@ The `schema-registry` specific options. #### options.url -> `string` +> `string` | Pattern: `^https?://` Schema Registry URL to access schemas via API calls. @@ -36,19 +36,19 @@ tls: - client1 ``` -##### options.tls.keys +##### tls.keys > `array` of `string` A list of reference names for the Vault key. -##### options.tls.trust +##### tls.trust > `array` of `string` A list of reference names for the Vault certificate. -##### options.tls.trustcacerts +##### tls.trustcacerts > `boolean` @@ -66,13 +66,13 @@ credentials: authorization: Basic dXNlcjpzZWNyZXQ= ``` -##### options.credentials.headers +##### credentials.headers > `object` Authentication headers to be included in requests to the Schema Registry. -###### options.credentials.headers.authorization +###### headers.authorization > `string` diff --git a/src/reference/config/catalogs/apicurio-registry.md b/src/reference/config/catalogs/apicurio-registry.md index a4c2109f..f19c85c9 100644 --- a/src/reference/config/catalogs/apicurio-registry.md +++ b/src/reference/config/catalogs/apicurio-registry.md @@ -60,3 +60,7 @@ Store identifiers as Apicurio default 8-byte long or legacy 4-byte integer. > `integer` | Default: `300` The maximum duration in seconds to keep a cached schema before fetching the schema again. + +### vault + +> `string` diff --git a/src/reference/config/catalogs/filesystem.md b/src/reference/config/catalogs/filesystem.md index 8a81de1d..f553f0aa 100644 --- a/src/reference/config/catalogs/filesystem.md +++ b/src/reference/config/catalogs/filesystem.md @@ -40,3 +40,7 @@ Unique identifier for artifact categorization in the catalog. > `string` Path to access artifact from the filesystem. The paths are relative to `zilla.yaml`. + +### vault + +> `string` diff --git a/src/reference/config/catalogs/inline.md b/src/reference/config/catalogs/inline.md index 70631ec4..289b91dc 100644 --- a/src/reference/config/catalogs/inline.md +++ b/src/reference/config/catalogs/inline.md @@ -60,3 +60,7 @@ Definition specifying data structure and format in detail. > `string` | Default: `latest` Specific iteration or version of a registered schema. + +### vault + +> `string` diff --git a/src/reference/config/vaults/filesystem.md b/src/reference/config/vaults/filesystem.md index a78df8ac..f2041ee4 100644 --- a/src/reference/config/vaults/filesystem.md +++ b/src/reference/config/vaults/filesystem.md @@ -120,6 +120,6 @@ Keystore password. #### options.revocation -> `enum` [ `crl`, `none` ] | Default `none` +> `enum` [ `crl` ] Certificate revocation method. From 7885b18fae8664f0628abfb925d711873c75e8f7 Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Tue, 23 Sep 2025 14:16:24 +0530 Subject: [PATCH 2/4] fix broken link --- .../config/catalogs/.partials/options-schema-registry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reference/config/catalogs/.partials/options-schema-registry.md b/src/reference/config/catalogs/.partials/options-schema-registry.md index b0da21c9..14daa85d 100644 --- a/src/reference/config/catalogs/.partials/options-schema-registry.md +++ b/src/reference/config/catalogs/.partials/options-schema-registry.md @@ -52,7 +52,7 @@ A list of reference names for the Vault certificate. > `boolean` -Trust CA certificates. When the this property is not explicitly set it will be automatically set to `true` if [options.tls.trust](#options-tls-trust) is `null`. +Trust CA certificates. When the this property is not explicitly set it will be automatically set to `true` if [tls.trust](#tls-trust) is `null`. #### options.credentials From b7d53b97a9b0a1ea71703d9133f5d97b32a4188e Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Tue, 23 Sep 2025 20:58:38 +0530 Subject: [PATCH 3/4] update --- src/reference/config/catalogs/apicurio-registry.md | 3 --- src/reference/config/catalogs/filesystem.md | 4 ---- src/reference/config/catalogs/inline.md | 4 ---- 3 files changed, 11 deletions(-) diff --git a/src/reference/config/catalogs/apicurio-registry.md b/src/reference/config/catalogs/apicurio-registry.md index f19c85c9..02add4cb 100644 --- a/src/reference/config/catalogs/apicurio-registry.md +++ b/src/reference/config/catalogs/apicurio-registry.md @@ -61,6 +61,3 @@ Store identifiers as Apicurio default 8-byte long or legacy 4-byte integer. The maximum duration in seconds to keep a cached schema before fetching the schema again. -### vault - -> `string` diff --git a/src/reference/config/catalogs/filesystem.md b/src/reference/config/catalogs/filesystem.md index f553f0aa..8a81de1d 100644 --- a/src/reference/config/catalogs/filesystem.md +++ b/src/reference/config/catalogs/filesystem.md @@ -40,7 +40,3 @@ Unique identifier for artifact categorization in the catalog. > `string` Path to access artifact from the filesystem. The paths are relative to `zilla.yaml`. - -### vault - -> `string` diff --git a/src/reference/config/catalogs/inline.md b/src/reference/config/catalogs/inline.md index 289b91dc..70631ec4 100644 --- a/src/reference/config/catalogs/inline.md +++ b/src/reference/config/catalogs/inline.md @@ -60,7 +60,3 @@ Definition specifying data structure and format in detail. > `string` | Default: `latest` Specific iteration or version of a registered schema. - -### vault - -> `string` From cf948b4efa941e7d5ef1932795fd5bab4313ddee Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Tue, 23 Sep 2025 22:09:37 +0530 Subject: [PATCH 4/4] updated zilla-plus schema --- .check-schema/zilla-schema.json | 662 +++++++++++++++++++++++++++++++- 1 file changed, 642 insertions(+), 20 deletions(-) diff --git a/.check-schema/zilla-schema.json b/.check-schema/zilla-schema.json index 90b3032a..5b8f819b 100644 --- a/.check-schema/zilla-schema.json +++ b/.check-schema/zilla-schema.json @@ -122,7 +122,18 @@ "type": { "const": "aws-acm" }, - "options": false + "options": { + "properties": { + "revocation": { + "title": "Revocation Method", + "type": "string", + "enum": [ + "crl" + ] + } + }, + "additionalProperties": false + } } } }, @@ -145,7 +156,18 @@ "aws" ] }, - "options": false + "options": { + "properties": { + "revocation": { + "title": "Revocation Method", + "type": "string", + "enum": [ + "crl" + ] + } + }, + "additionalProperties": false + } } } }, @@ -214,6 +236,13 @@ } }, "additionalProperties": false + }, + "revocation": { + "title": "Revocation Method", + "type": "string", + "enum": [ + "crl" + ] } }, "additionalProperties": false @@ -230,6 +259,8 @@ "title": "Type", "type": "string", "enum": [ + "aws-lambda", + "azure-ad", "jwt" ] }, @@ -243,6 +274,124 @@ "type" ], "allOf": [ + { + "if": { + "properties": { + "type": { + "const": "aws-lambda" + } + } + }, + "then": { + "properties": { + "type": { + "const": "aws-lambda" + }, + "options": { + "properties": { + "region": { + "title": "Region", + "type": "string" + }, + "account-id": { + "title": "Account ID", + "type": "string" + }, + "api-id": { + "title": "API ID", + "type": "string" + }, + "stage": { + "title": "Stage", + "type": "string" + }, + "function": { + "title": "Function Name", + "type": "string" + }, + "type": { + "title": "Type", + "enum": [ + "token" + ] + }, + "max-age": { + "title": "Max Age", + "type": "integer", + "default": 300, + "minimum": 0, + "maximum": 3600 + } + }, + "additionalProperties": false, + "required": [ + "api-id", + "stage", + "function", + "type" + ] + } + }, + "required": [ + "options" + ] + } + }, + { + "if": { + "properties": { + "type": { + "const": "azure-ad" + } + } + }, + "then": { + "properties": { + "type": { + "const": "azure-ad" + }, + "options": { + "properties": { + "issuer": { + "title": "Issuer", + "type": "string", + "default": "organizations" + }, + "audience": { + "title": "Audience", + "type": "string" + }, + "version": { + "title": "Version", + "enum": [ + "v1.0", + "v2.0" + ], + "default": "v2.0" + }, + "challenge": { + "title": "Challenge", + "type": "integer" + }, + "identity": { + "title": "Identity", + "type": "string", + "default": "sub" + }, + "roles": { + "title": "Roles", + "type": "string", + "default": "roles" + } + }, + "additionalProperties": false + } + }, + "required": [ + "options" + ] + } + }, { "if": { "properties": { @@ -266,6 +415,11 @@ "title": "Audience", "type": "string" }, + "roles": { + "title": "Roles", + "type": "string", + "default": "scope" + }, "keys": { "title": "Keys", "oneOf": [ @@ -660,6 +814,10 @@ "schema-registry" ] }, + "vault": { + "title": "Vault", + "type": "string" + }, "options": { "title": "Options", "type": "object" @@ -716,7 +874,7 @@ }, "max-age": { "title": "Max Age", - "type": "number", + "type": "integer", "default": 300 } }, @@ -905,6 +1063,7 @@ "type": { "const": "schema-registry" }, + "vault": true, "options": { "$ref": "#/$defs/options/catalog/schema-registry" } @@ -1422,7 +1581,8 @@ "type": "object", "properties": { "url": { - "type": "string" + "type": "string", + "pattern": "^https?://" }, "context": { "type": "string", @@ -1430,11 +1590,65 @@ }, "max-age": { "title": "Max Age", - "type": "number", + "type": "integer", "default": 300 + }, + "tls": { + "title": "TLS", + "type": "object", + "properties": { + "keys": { + "title": "Vault Keys", + "type": "array", + "items": { + "type": "string" + } + }, + "trust": { + "title": "Vault Certificates", + "type": "array", + "items": { + "type": "string" + } + }, + "trustcacerts": { + "title": "Trust CA Certificates", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "credentials": { + "title": "Credentials", + "type": "object", + "properties": { + "headers": { + "title": "Headers", + "type": "object", + "properties": { + "authorization": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false } }, - "additionalProperties": false + "additionalProperties": false, + "if": { + "properties": { + "url": { + "pattern": "^http://" + } + } + }, + "then": { + "properties": { + "tls": false + } + } } } }, @@ -1484,6 +1698,8 @@ "pgsql-kafka", "proxy", "risingwave", + "smux", + "socks", "sse", "sse-kafka", "tcp", @@ -1497,6 +1713,7 @@ "client", "server", "proxy", + "remote_client", "remote_server", "cache_client", "cache_server" @@ -1572,6 +1789,17 @@ "kind" ], "anyOf": [ + { + "properties": { + "kind": { + "const": "remote_client" + }, + "exit": false + }, + "required": [ + "entry" + ] + }, { "properties": { "kind": { @@ -1586,7 +1814,10 @@ "properties": { "kind": { "not": { - "const": "remote_server" + "enum": [ + "remote_client", + "remote_server" + ] } }, "entry": false @@ -2351,10 +2582,7 @@ "type": "string" } }, - "additionalProperties": false, - "required": [ - "reply-to" - ] + "additionalProperties": false } ], "required": [ @@ -2475,7 +2703,7 @@ }, "max-age": { "title": "Max Age", - "type": "number" + "type": "integer" }, "expose": { "title": "Expose", @@ -2765,6 +2993,16 @@ "items": { "type": "object", "properties": { + "method": { + "type": "string", + "enum": [ + "GET", + "PUT", + "POST", + "DELETE", + "HEAD" + ] + }, "path": { "title": "Path", "type": "string" @@ -2776,13 +3014,32 @@ "with": { "properties": { "path": { - "title": "Topic", + "title": "Path", + "type": "string" + }, + "directory": { + "title": "Directory", "type": "string" } }, "additionalProperties": false, - "required": [ - "path" + "anyOf": [ + { + "required": [ + "path" + ] + }, + { + "required": [ + "directory" + ] + }, + { + "required": [ + "path", + "directory" + ] + } ] } } @@ -3004,6 +3261,10 @@ "title": "Reply-To", "type": "string" }, + "correlation-id": { + "title": "Correlation-Id Kafka Header", + "type": "string" + }, "async": { "title": "Async", "type": "object", @@ -3356,17 +3617,41 @@ "vault": false, "options": { "properties": { + "oneOf": [ + { + "cluster-id": { + "title": "Cluster ID", + "type": "string" + } + }, + { + "clusters": { + "title": "Clusters", + "type": "array", + "items": { + "type": "string", + "pattern": "^[a-zA-Z0-9_-]*\\*?$" + }, + "deprecated": true + } + } + ], "external": { "type": "object", "properties": { "host": { "title": "Host", "type": "string", - "pattern": "^[^:]+(?::(\\d+)\\+)?$" + "pattern": "^[^:]+(?:-({[^}]+}|[^.]+))?(?::(\\d+)\\+)?$" }, "port": { "title": "Port", "type": "integer" + }, + "default": { + "title": "Default", + "type": "string", + "pattern": "^[^:]+$" } }, "required": [ @@ -3398,6 +3683,25 @@ "port" ], "additionalProperties": false + }, + "topics": { + "title": "Topics", + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "key": { + "$ref": "#/$defs/converter" + }, + "value": { + "$ref": "#/$defs/converter" + } + } + } } }, "additionalProperties": false, @@ -3472,7 +3776,18 @@ "topic": { "title": "Topic", "type": "string", - "pattern": "^(\\/?([\\w{}-]*|\\+)(\\/((?![-_])[\\w{}-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}-]*|\\+))*(\\/#)?)$" + "pattern": "^(\\/?([\\w{}\\.-]*|\\+)(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?)$" + }, + "params": { + "title": "Params", + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string", + "pattern": "^[a-zA-Z0-9{}\\[\\]\\.\\$']*$" + } + } } } } @@ -3487,7 +3802,18 @@ "topic": { "title": "Topic", "type": "string", - "pattern": "^(\\/?([\\w{}-]*|\\+)(\\/((?![-_])[\\w{}-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}-]*|\\+))*(\\/#)?)$" + "pattern": "^(\\/?([\\w{}\\.-]*|\\+)(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?)$" + }, + "params": { + "title": "Params", + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string", + "pattern": "^[a-zA-Z0-9{}\\[\\]\\.\\$']*$" + } + } } } } @@ -3689,7 +4015,7 @@ "topic": { "title": "Topic", "type": "string", - "pattern": "^(\\/?([\\w{}-]*|\\+)(\\/((?![-_])[\\w{}-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}-]*|\\+))*(\\/#)?)$" + "pattern": "^(\\/?([\\w{}\\.-]*|\\+)(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?)$" } }, "additionalProperties": false @@ -3709,7 +4035,7 @@ "topic": { "title": "Topic", "type": "string", - "pattern": "^(\\/?([\\w{}-]*|\\+)(\\/((?![-_])[\\w{}-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}-]*|\\+))*(\\/#)?)$" + "pattern": "^(\\/?([\\w{}\\.-]*|\\+)(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?|#|\\/|\\$SYS(\\/((?![-_])[\\w{}\\.-]*|\\+))*(\\/#)?)$" } }, "additionalProperties": false @@ -4328,6 +4654,7 @@ "type": "string", "enum": [ "CREATE TOPIC", + "ALTER TOPIC", "DROP TOPIC" ] } @@ -4345,6 +4672,265 @@ ] } }, + { + "if": { + "properties": { + "type": { + "const": "smux" + } + } + }, + "then": { + "properties": { + "type": { + "const": "smux" + }, + "kind": { + "enum": [ + "client", + "server" + ] + }, + "vault": false + } + } + }, + { + "if": { + "properties": { + "type": { + "const": "socks" + } + } + }, + "then": { + "properties": { + "type": { + "const": "socks" + }, + "kind": { + "enum": [ + "client", + "server", + "remote_server", + "remote_client" + ] + }, + "vault": false + }, + "allOf": [ + { + "if": { + "properties": { + "kind": { + "const": "client" + } + } + }, + "then": { + "properties": { + "kind": { + "const": "client" + }, + "routes": { + "type": "array", + "items": { + "properties": { + "when": { + "type": "array", + "items": { + "properties": { + "connect": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + } + } + } + } + }, + { + "if": { + "properties": { + "kind": { + "const": "server" + } + } + }, + "then": { + "properties": { + "kind": { + "const": "server" + }, + "options": { + "type": "object", + "properties": { + "authorization": { + "type": "object", + "patternProperties": { + "^[a-zA-Z]+[a-zA-Z0-9\\._\\-]*$": { + "type": "object", + "properties": { + "credentials": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "maxProperties": 1 + } + }, + "additionalProperties": false + }, + "routes": { + "type": "array", + "items": { + "properties": { + "when": { + "type": "array", + "items": { + "properties": { + "connect": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + } + } + } + } + }, + { + "if": { + "properties": { + "kind": { + "enum": [ + "remote_server", + "remote_client" + ] + } + } + }, + "then": { + "properties": { + "kind": { + "enum": [ + "remote_server", + "remote_client" + ] + }, + "routes": { + "type": "array", + "items": { + "properties": { + "when": { + "type": "array", + "items": { + "properties": { + "bind": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + } + } + } + } + }, + { + "if": { + "properties": { + "kind": { + "const": "remote_client" + } + } + }, + "then": { + "properties": { + "kind": { + "const": "remote_client" + } + }, + "anyOf": [ + { + "properties": { + "routes": { + "type": "array", + "items": { + "properties": { + "exit": false + }, + "required": [ + "when" + ] + } + } + }, + "required": [ + "routes" + ] + }, + { + "required": [ + "exit" + ] + } + ] + } + }, + { + "if": { + "properties": { + "kind": { + "const": "remote_server" + } + } + }, + "then": { + "properties": { + "kind": { + "const": "remote_server" + } + }, + "anyOf": [ + { + "properties": { + "routes": { + "type": "array", + "items": { + "required": [ + "when", + "exit" + ] + } + } + }, + "required": [ + "routes" + ] + }, + { + "required": [ + "exit" + ] + } + ] + } + } + ] + } + }, { "if": { "properties": { @@ -4949,6 +5535,7 @@ "type": "string", "enum": [ "avro", + "boolean", "double", "float", "int32", @@ -5056,6 +5643,23 @@ "additionalProperties": false } }, + { + "if": { + "properties": { + "model": { + "const": "boolean" + } + } + }, + "then": { + "properties": { + "model": { + "const": "boolean" + } + }, + "additionalProperties": false + } + }, { "if": { "properties": { @@ -5414,6 +6018,7 @@ "types": { "type": "string", "enum": [ + "boolean", "double", "float", "int32", @@ -5433,6 +6038,23 @@ "model" ], "allOf": [ + { + "if": { + "properties": { + "model": { + "const": "boolean" + } + } + }, + "then": { + "properties": { + "model": { + "const": "boolean" + } + }, + "additionalProperties": false + } + }, { "if": { "properties": {