diff --git a/docs/plugins/introduction.mdx b/docs/plugins/introduction.mdx index 8212b09f0..77eac1f68 100644 --- a/docs/plugins/introduction.mdx +++ b/docs/plugins/introduction.mdx @@ -76,7 +76,7 @@ The `pre-parse` plugin is triggered at the first step in the execution pipeline, step to add custom logic before parsing begins. For pre-parse plugin configuration -[click here](supergraph-modeling/engine-plugins.mdx#lifecyclepluginhook-lifecyclepluginhookpreparse) +[click here](supergraph-modeling/engine-plugins.mdx#lifecyclepluginhook-lifecyclepreparsepluginhook) ### Pre-Parse Plugin Request @@ -100,7 +100,7 @@ A sample request that is sent to the `pre-parse` plugin is as follows: ``` **Note**: The request sent to the plugin can be customized based on the plugin's -[configuration](supergraph-modeling/engine-plugins.mdx#lifecyclepluginhook-lifecyclepluginhookconfigrequest). +[configuration](supergraph-modeling/engine-plugins.mdx#lifecyclepluginhook-lifecyclepreresponsepluginhookconfigrequest). ### Pre-Parse Plugin Response @@ -129,14 +129,14 @@ the metadata. Please note that if a plugin returns a `Response`, `User Error` or `Internal Error` response, the execution stops and the response is sent to the client. The subsequent plugins are not executed. -Let's take an example where the engine is confiured with two pre-parse plugins: `Pre-parse hook 1` and `Pre-parse hook -2`. +Let's take an example where the engine is confiured with two pre-parse plugins: `Pre-parse hook 1` and +`Pre-parse hook 2`. -In this example, the engine is configured with two pre-parse plugins. The engine sends the request to `Pre-parse hook -1`, which processes the request and sends a response. Now, depending on the response, the engine either continues with -the execution or stops and sends the response to the client. +In this example, the engine is configured with two pre-parse plugins. The engine sends the request to +`Pre-parse hook 1`, which processes the request and sends a response. Now, depending on the response, the engine either +continues with the execution or stops and sends the response to the client. #### Case 1: Continue @@ -152,11 +152,15 @@ The `Continue` response body is ignored by DDN. The plugin can return an empty r #### Case 2: Response/ User Error/ Internal Error If `Pre-parse hook 1` returns a `Response` response (HTTP status code is 200) or a `User Error` response (HTTP status -code is 400) or an `Internal Error` response (HTTP status code is 500), the engine stops the execution and sends -the response to the client. The subsequent plugins are not executed. - - +code is 400) or an `Internal Error` response (HTTP status code is 500), the engine stops the execution and sends the +response to the client. The subsequent plugins are not executed. + + If all the pre-parse plugins return a `Continue` response (HTTP status code 204), the engine continues with the execution and sends the response generated by the engine to the client. diff --git a/docs/supergraph-modeling/engine-plugins.mdx b/docs/supergraph-modeling/engine-plugins.mdx index 878e86e12..cfb22bd3a 100644 --- a/docs/supergraph-modeling/engine-plugins.mdx +++ b/docs/supergraph-modeling/engine-plugins.mdx @@ -54,30 +54,29 @@ definition: variables: {} ``` -| Field | Description | Reference | -| --------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | -| `name` | The name of the lifecycle plugin hook. | [LifecyclePluginHookPreParse](#lifecyclepluginhook-lifecyclepluginhookpreparse) | -| `url` | The URL to access the plugin. | [LifecyclePluginHookPreParse](#lifecyclepluginhook-lifecyclepluginhookpreparse) | -| `pre` | The stage of the request lifecycle. | [LifecyclePluginHookPreParse](#lifecyclepluginhook-lifecyclepluginhookpreparse) | -| `config` | Configuration for the plugin. | [LifecyclePluginHookConfig](#lifecyclepluginhook-lifecyclepluginhookconfig) | -| `config.request` | The shape of the request object. | [LifecyclePluginHookConfigRequest](#lifecyclepluginhook-lifecyclepluginhookconfigrequest) | -| `config.request.headers` | The headers that should be included for each request. | [LifecyclePluginHookHeadersConfig](#lifecyclepluginhook-lifecyclepluginhookheadersconfig) | -| `config.request.rawRequest` | The configuration of the raw request, including any queries or variables. | [RawRequestConfig](#lifecyclepluginhook-rawrequestconfig) | +| Field | Description | Reference | +| --------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `name` | The name of the lifecycle plugin hook. | [LifecyclePluginHookPreParse](#lifecyclepluginhook-lifecyclepreparsepluginhook) | +| `url` | The URL to access the plugin. | [LifecyclePluginHookPreParse](#lifecyclepluginhook-lifecyclepreparsepluginhook) | +| `pre` | The stage of the request lifecycle. | [LifecyclePluginHookPreParse](#lifecyclepluginhook-lifecyclepreparsepluginhook) | +| `config` | Configuration for the plugin. | [PreParse](#lifecyclepluginhook-lifecyclepreparsepluginhookconfig) or [PreResponse](#lifecyclepluginhook-lifecyclepreresponsepluginhookconfig) | +| `config.request` | The shape of the request object. | [PreParse](#lifecyclepluginhook-lifecyclepreparsepluginhookconfigrequest) or [PreResponse](#lifecyclepluginhook-lifecyclepreresponsepluginhookconfigrequest) | +| `config.request.headers` | The headers that should be included for each request. | [LifecyclePluginHookHeadersConfig](#lifecyclepluginhook-lifecyclepluginhookheadersconfig) | +| `config.request.rawRequest` | The configuration of the raw request, including any queries or variables. | [RawRequestConfig](#lifecyclepluginhook-rawrequestconfig) | ## Metadata structure - ### LifecyclePluginHook {#lifecyclepluginhook-lifecyclepluginhook} Definition of a lifecycle plugin hook. -| Key | Value | Required | Description | -|-----|-----|-----|-----| -| `kind` | `LifecyclePluginHook` | true | | -| `version` | `v1` | true | | -| `definition` | [LifecyclePluginHookPreParse](#lifecyclepluginhook-lifecyclepluginhookpreparse) | true | Definition of a lifecycle plugin hook - version 1. | +| Key | Value | Required | Description | +| ------------ | ------------------------------------------------------------------- | -------- | -------------------------------------------------- | +| `kind` | `LifecyclePluginHook` | true | | +| `version` | `v1` | true | | +| `definition` | [LifecyclePluginHookV1](#lifecyclepluginhook-lifecyclepluginhookv1) | true | Definition of a lifecycle plugin hook - version 1. | - **Example:** +**Example:** ```yaml kind: LifecyclePluginHook @@ -99,91 +98,117 @@ definition: variables: {} ``` +#### LifecyclePluginHookV1 {#lifecyclepluginhook-lifecyclepluginhookv1} -#### LifecyclePluginHookPreParse {#lifecyclepluginhook-lifecyclepluginhookpreparse} +Definition of a lifecycle plugin hook - version 1. -Definition of a lifecycle plugin hook for the pre-parse stage. +**One of the following values:** -| Key | Value | Required | Description | -|-----|-----|-----|-----| -| `pre` | `parse` | true | | -| `name` | string | true | The name of the lifecycle plugin hook. | -| `url` | [EnvironmentValue](#lifecyclepluginhook-environmentvalue) | true | The URL to access the lifecycle plugin hook. | -| `config` | [LifecyclePluginHookConfig](#lifecyclepluginhook-lifecyclepluginhookconfig) | true | Configuration for the lifecycle plugin hook. | +| Value | Description | +| ------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | +| [LifecyclePreParsePluginHook](#lifecyclepluginhook-lifecyclepreparsepluginhook) | Definition of a lifecycle plugin hook for the pre-parse stage. | +| [LifecyclePreResponsePluginHook](#lifecyclepluginhook-lifecyclepreresponsepluginhook) | Definition of a lifecycle plugin hook for the pre-response stage. | +#### LifecyclePreResponsePluginHook {#lifecyclepluginhook-lifecyclepreresponsepluginhook} +Definition of a lifecycle plugin hook for the pre-response stage. -#### LifecyclePluginHookConfig {#lifecyclepluginhook-lifecyclepluginhookconfig} +| Key | Value | Required | Description | +| -------- | ------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------- | +| `pre` | `response` | true | | +| `name` | string | true | The name of the lifecycle plugin hook. | +| `url` | [EnvironmentValue](#lifecyclepluginhook-environmentvalue) | true | The URL to access the lifecycle plugin hook. | +| `config` | [LifecyclePreResponsePluginHookConfig](#lifecyclepluginhook-lifecyclepreresponsepluginhookconfig) | true | Configuration for the lifecycle plugin hook. | + +#### LifecyclePreResponsePluginHookConfig {#lifecyclepluginhook-lifecyclepreresponsepluginhookconfig} Configuration for a lifecycle plugin hook. -| Key | Value | Required | Description | -|-----|-----|-----|-----| -| `request` | [LifecyclePluginHookConfigRequest](#lifecyclepluginhook-lifecyclepluginhookconfigrequest) | true | Configuration for the request to the lifecycle plugin hook. | +| Key | Value | Required | Description | +| --------- | --------------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------- | +| `request` | [LifecyclePreResponsePluginHookConfigRequest](#lifecyclepluginhook-lifecyclepreresponsepluginhookconfigrequest) | true | Configuration for the request to the lifecycle plugin hook. | +#### LifecyclePreResponsePluginHookConfigRequest {#lifecyclepluginhook-lifecyclepreresponsepluginhookconfigrequest} +Configuration for a lifecycle plugin hook request. -#### LifecyclePluginHookConfigRequest {#lifecyclepluginhook-lifecyclepluginhookconfigrequest} +| Key | Value | Required | Description | +| ------------- | ------------------------------------------------------------------------------------------------ | -------- | --------------------------------------------------------------------- | +| `headers` | [LifecyclePluginHookHeadersConfig](#lifecyclepluginhook-lifecyclepluginhookheadersconfig) / null | false | Configuration for the headers. | +| `session` | [LeafConfig](#lifecyclepluginhook-leafconfig) / null | false | Configuration for the session (includes roles and session variables). | +| `rawRequest` | [RawRequestConfig](#lifecyclepluginhook-rawrequestconfig) | true | Configuration for the raw request. | +| `rawResponse` | [LeafConfig](#lifecyclepluginhook-leafconfig) / null | false | Configuration for the response. | -Configuration for a lifecycle plugin hook request. +#### LifecyclePreParsePluginHook {#lifecyclepluginhook-lifecyclepreparsepluginhook} -| Key | Value | Required | Description | -|-----|-----|-----|-----| -| `headers` | [LifecyclePluginHookHeadersConfig](#lifecyclepluginhook-lifecyclepluginhookheadersconfig) / null | false | Configuration for the headers. | -| `session` | [LeafConfig](#lifecyclepluginhook-leafconfig) / null | false | Configuration for the session (includes roles and session variables). | -| `rawRequest` | [RawRequestConfig](#lifecyclepluginhook-rawrequestconfig) | true | Configuration for the raw request. | +Definition of a lifecycle plugin hook for the pre-parse stage. +| Key | Value | Required | Description | +| -------- | ------------------------------------------------------------------------------------------- | -------- | -------------------------------------------- | +| `pre` | `parse` | true | | +| `name` | string | true | The name of the lifecycle plugin hook. | +| `url` | [EnvironmentValue](#lifecyclepluginhook-environmentvalue) | true | The URL to access the lifecycle plugin hook. | +| `config` | [LifecyclePreParsePluginHookConfig](#lifecyclepluginhook-lifecyclepreparsepluginhookconfig) | true | Configuration for the lifecycle plugin hook. | +#### LifecyclePreParsePluginHookConfig {#lifecyclepluginhook-lifecyclepreparsepluginhookconfig} -#### RawRequestConfig {#lifecyclepluginhook-rawrequestconfig} +Configuration for a lifecycle plugin hook. -Configuration for the raw request. +| Key | Value | Required | Description | +| --------- | --------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------- | +| `request` | [LifecyclePreParsePluginHookConfigRequest](#lifecyclepluginhook-lifecyclepreparsepluginhookconfigrequest) | true | Configuration for the request to the lifecycle plugin hook. | -| Key | Value | Required | Description | -|-----|-----|-----|-----| -| `query` | [LeafConfig](#lifecyclepluginhook-leafconfig) / null | false | Configuration for the query. | -| `variables` | [LeafConfig](#lifecyclepluginhook-leafconfig) / null | false | Configuration for the variables. | +#### LifecyclePreParsePluginHookConfigRequest {#lifecyclepluginhook-lifecyclepreparsepluginhookconfigrequest} + +Configuration for a lifecycle plugin hook request. + +| Key | Value | Required | Description | +| ------------ | ------------------------------------------------------------------------------------------------ | -------- | --------------------------------------------------------------------- | +| `headers` | [LifecyclePluginHookHeadersConfig](#lifecyclepluginhook-lifecyclepluginhookheadersconfig) / null | false | Configuration for the headers. | +| `session` | [LeafConfig](#lifecyclepluginhook-leafconfig) / null | false | Configuration for the session (includes roles and session variables). | +| `rawRequest` | [RawRequestConfig](#lifecyclepluginhook-rawrequestconfig) | true | Configuration for the raw request. | + +#### RawRequestConfig {#lifecyclepluginhook-rawrequestconfig} +Configuration for the raw request. +| Key | Value | Required | Description | +| ----------- | ---------------------------------------------------- | -------- | -------------------------------- | +| `query` | [LeafConfig](#lifecyclepluginhook-leafconfig) / null | false | Configuration for the query. | +| `variables` | [LeafConfig](#lifecyclepluginhook-leafconfig) / null | false | Configuration for the variables. | #### LeafConfig {#lifecyclepluginhook-leafconfig} Leaf Configuration. | Key | Value | Required | Description | -|-----|-----|-----|-----| - - +| --- | ----- | -------- | ----------- | #### LifecyclePluginHookHeadersConfig {#lifecyclepluginhook-lifecyclepluginhookheadersconfig} Configuration for a lifecycle plugin hook headers. -| Key | Value | Required | Description | -|-----|-----|-----|-----| -| `additional` | [HttpHeaders](#lifecyclepluginhook-httpheaders) / null | false | Additional headers to be sent with the request. | -| `forward` | [string] | false | Headers to be forwarded from the incoming request. | - - +| Key | Value | Required | Description | +| ------------ | ------------------------------------------------------ | -------- | -------------------------------------------------- | +| `additional` | [HttpHeaders](#lifecyclepluginhook-httpheaders) / null | false | Additional headers to be sent with the request. | +| `forward` | [string] | false | Headers to be forwarded from the incoming request. | #### HttpHeaders {#lifecyclepluginhook-httpheaders} -Key value map of HTTP headers to be sent with an HTTP request. The key is the header name and the value is a potential reference to an environment variable. - -| Key | Value | Required | Description | -|-----|-----|-----|-----| -| `` | [EnvironmentValue](#lifecyclepluginhook-environmentvalue) | false | | - +Key value map of HTTP headers to be sent with an HTTP request. The key is the header name and the value is a potential +reference to an environment variable. +| Key | Value | Required | Description | +| ------------- | --------------------------------------------------------- | -------- | ----------- | +| `` | [EnvironmentValue](#lifecyclepluginhook-environmentvalue) | false | | #### EnvironmentValue {#lifecyclepluginhook-environmentvalue} Either a literal string or a reference to a Hasura secret - **Must have exactly one of the following fields:** -| Key | Value | Required | Description | -|-----|-----|-----|-----| -| `value` | string | false | | -| `valueFromEnv` | string | false | | +| Key | Value | Required | Description | +| -------------- | ------ | -------- | ----------- | +| `value` | string | false | | +| `valueFromEnv` | string | false | | diff --git a/docs/supergraph-modeling/models.mdx b/docs/supergraph-modeling/models.mdx index 6185cd855..50d6196de 100644 --- a/docs/supergraph-modeling/models.mdx +++ b/docs/supergraph-modeling/models.mdx @@ -464,7 +464,7 @@ The name of a collection in a data connector. #### DataConnectorName {#model-dataconnectorname} -The name of a data connector. +The name of the data connector backing this model. **Value:** string @@ -510,7 +510,7 @@ The name of a user-defined type. #### ModelName {#model-modelname} -The name of the data model. +The name of data model. **Value:** string \ No newline at end of file diff --git a/docs/supergraph-modeling/relationships.mdx b/docs/supergraph-modeling/relationships.mdx index 74e8f8c19..05665f055 100644 --- a/docs/supergraph-modeling/relationships.mdx +++ b/docs/supergraph-modeling/relationships.mdx @@ -330,7 +330,7 @@ kind: Relationship version: v1 definition: name: Articles - source: author + sourceType: author target: model: name: Articles diff --git a/utilities/generate-metadata-docs/hml_schema_resolved.json b/utilities/generate-metadata-docs/hml_schema_resolved.json index 1d57514b5..aa8206eaa 100644 --- a/utilities/generate-metadata-docs/hml_schema_resolved.json +++ b/utilities/generate-metadata-docs/hml_schema_resolved.json @@ -3635,11 +3635,16 @@ "required": ["name", "objectType", "orderableFields"], "properties": { "name": { - "$id": "https://hasura.io/jsonschemas/metadata/ModelName", - "title": "ModelName", "description": "The name of the data model.", - "type": "string", - "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$" + "allOf": [ + { + "$id": "https://hasura.io/jsonschemas/metadata/ModelName", + "title": "ModelName", + "description": "The name of data model.", + "type": "string", + "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$" + } + ] }, "objectType": { "description": "The type of the objects of which this model is a collection.", @@ -3699,12 +3704,11 @@ "required": ["collection", "dataConnectorName"], "properties": { "dataConnectorName": { + "$id": "https://hasura.io/jsonschemas/metadata/DataConnectorName", + "title": "DataConnectorName", "description": "The name of the data connector backing this model.", - "allOf": [ - { - "$ref": "#/definitions/SubgraphObject/anyOf/0/anyOf/1/oneOf/0/oneOf/0/properties/definition/properties/name/allOf/0" - } - ] + "type": "string", + "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$" }, "collection": { "description": "The collection in the data connector that backs this model.", @@ -4285,7 +4289,7 @@ "version": "v1", "definition": { "name": "Articles", - "source": "author", + "sourceType": "author", "target": { "model": { "name": "Articles", @@ -4387,7 +4391,7 @@ "description": "The name of the data model.", "allOf": [ { - "$ref": "#/definitions/SubgraphObject/anyOf/0/anyOf/1/oneOf/12/oneOf/0/properties/definition/properties/modelName/allOf/0" + "$ref": "#/definitions/SubgraphObject/anyOf/0/anyOf/1/oneOf/8/oneOf/0/properties/definition/properties/name/allOf/0" } ] }, @@ -4935,11 +4939,7 @@ "description": "The name of the model for which permissions are being defined.", "allOf": [ { - "$id": "https://hasura.io/jsonschemas/metadata/ModelName", - "title": "ModelName", - "description": "The name of data model.", - "type": "string", - "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$" + "$ref": "#/definitions/SubgraphObject/anyOf/0/anyOf/1/oneOf/8/oneOf/0/properties/definition/properties/name/allOf/0" } ] }, @@ -5417,7 +5417,7 @@ "description": "Definition of a lifecycle plugin hook - version 1.", "oneOf": [ { - "title": "LifecyclePluginHookPreParse", + "title": "LifecyclePreParsePluginHook", "description": "Definition of a lifecycle plugin hook for the pre-parse stage.", "type": "object", "required": ["config", "name", "pre", "url"], @@ -5466,8 +5466,8 @@ "description": "Configuration for the lifecycle plugin hook.", "allOf": [ { - "$id": "https://hasura.io/jsonschemas/metadata/LifecyclePluginHookConfig", - "title": "LifecyclePluginHookConfig", + "$id": "https://hasura.io/jsonschemas/metadata/LifecyclePreParsePluginHookConfig", + "title": "LifecyclePreParsePluginHookConfig", "description": "Configuration for a lifecycle plugin hook.", "type": "object", "required": ["request"], @@ -5476,8 +5476,8 @@ "description": "Configuration for the request to the lifecycle plugin hook.", "allOf": [ { - "$id": "https://hasura.io/jsonschemas/metadata/LifecyclePluginHookConfigRequest", - "title": "LifecyclePluginHookConfigRequest", + "$id": "https://hasura.io/jsonschemas/metadata/LifecyclePreParsePluginHookConfigRequest", + "title": "LifecyclePreParsePluginHookConfigRequest", "description": "Configuration for a lifecycle plugin hook request.", "type": "object", "required": ["rawRequest"], @@ -5581,6 +5581,102 @@ } }, "additionalProperties": false + }, + { + "title": "LifecyclePreResponsePluginHook", + "description": "Definition of a lifecycle plugin hook for the pre-response stage.", + "type": "object", + "required": ["config", "name", "pre", "url"], + "properties": { + "pre": { + "type": "string", + "enum": ["response"] + }, + "name": { + "description": "The name of the lifecycle plugin hook.", + "type": "string" + }, + "url": { + "description": "The URL to access the lifecycle plugin hook.", + "allOf": [ + { + "$ref": "#/definitions/SubgraphObject/anyOf/0/anyOf/1/oneOf/14/oneOf/0/properties/definition/oneOf/0/properties/url/allOf/0" + } + ] + }, + "config": { + "description": "Configuration for the lifecycle plugin hook.", + "allOf": [ + { + "$id": "https://hasura.io/jsonschemas/metadata/LifecyclePreResponsePluginHookConfig", + "title": "LifecyclePreResponsePluginHookConfig", + "description": "Configuration for a lifecycle plugin hook.", + "type": "object", + "required": ["request"], + "properties": { + "request": { + "description": "Configuration for the request to the lifecycle plugin hook.", + "allOf": [ + { + "$id": "https://hasura.io/jsonschemas/metadata/LifecyclePreResponsePluginHookConfigRequest", + "title": "LifecyclePreResponsePluginHookConfigRequest", + "description": "Configuration for a lifecycle plugin hook request.", + "type": "object", + "required": ["rawRequest"], + "properties": { + "headers": { + "description": "Configuration for the headers.", + "anyOf": [ + { + "$ref": "#/definitions/SubgraphObject/anyOf/0/anyOf/1/oneOf/14/oneOf/0/properties/definition/oneOf/0/properties/config/allOf/0/properties/request/allOf/0/properties/headers/anyOf/0" + }, + { + "type": "null" + } + ] + }, + "session": { + "description": "Configuration for the session (includes roles and session variables).", + "anyOf": [ + { + "$ref": "#/definitions/SubgraphObject/anyOf/0/anyOf/1/oneOf/14/oneOf/0/properties/definition/oneOf/0/properties/config/allOf/0/properties/request/allOf/0/properties/session/anyOf/0" + }, + { + "type": "null" + } + ] + }, + "rawRequest": { + "description": "Configuration for the raw request.", + "allOf": [ + { + "$ref": "#/definitions/SubgraphObject/anyOf/0/anyOf/1/oneOf/14/oneOf/0/properties/definition/oneOf/0/properties/config/allOf/0/properties/request/allOf/0/properties/rawRequest/allOf/0" + } + ] + }, + "rawResponse": { + "description": "Configuration for the response.", + "anyOf": [ + { + "$ref": "#/definitions/SubgraphObject/anyOf/0/anyOf/1/oneOf/14/oneOf/0/properties/definition/oneOf/0/properties/config/allOf/0/properties/request/allOf/0/properties/session/anyOf/0" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false + } + ] + } + }, + "additionalProperties": false + } + ] + } + }, + "additionalProperties": false } ] } diff --git a/utilities/generate-metadata-docs/yaml_schema_resolved.json b/utilities/generate-metadata-docs/yaml_schema_resolved.json index a81f9527c..12d2db1a6 100644 --- a/utilities/generate-metadata-docs/yaml_schema_resolved.json +++ b/utilities/generate-metadata-docs/yaml_schema_resolved.json @@ -5,10 +5,6 @@ { "title": "CliMetadataObject", "$ref": "#/definitions/CliMetadataObject" - }, - { - "title": "CliConfigObject", - "$ref": "#/definitions/CliConfigObject" } ], "definitions": { @@ -29,15 +25,6 @@ } ] }, - "CliConfigObject": { - "$schema": "http://json-schema.org/draft-07/schema#", - "anyOf": [ - { - "title": "ContextYaml", - "$ref": "#/definitions/ContextYaml" - } - ] - }, "Supergraph": { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", @@ -312,152 +299,6 @@ "title": "RegionConfigurationV2" } } - }, - "ContextYaml": { - "$schema": "http://json-schema.org/draft-07/schema#", - "anyOf": [ - { - "$ref": "#/definitions/ContextYaml/definitions/ProjectContextV2" - }, - { - "$ref": "#/definitions/ContextYaml/definitions/ProjectContextV3" - } - ], - "description": "DDN project Context.", - "title": "ProjectContext", - "definitions": { - "ProjectContextV2": { - "type": "object", - "properties": { - "kind": { - "type": "string", - "const": "Context" - }, - "version": { - "type": "string", - "const": "v2" - }, - "definition": { - "$ref": "#/definitions/ContextYaml/definitions/ContextV2Definition" - } - }, - "required": ["kind", "version", "definition"], - "additionalProperties": false - }, - "ContextV2Definition": { - "type": "object", - "properties": { - "current": { - "type": "string", - "description": "Current Active Context." - }, - "contexts": { - "$ref": "#/definitions/ContextYaml/definitions/Contexts", - "description": "Configured contexts." - } - }, - "additionalProperties": false, - "description": "Context V2 Definition.", - "title": "ContextV2Definition" - }, - "Contexts": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/ContextYaml/definitions/ContextV2Config" - }, - "description": "Configured contexts.", - "title": "Contexts" - }, - "ContextV2Config": { - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "Project Name." - }, - "supergraph": { - "type": "string", - "description": "Supergraph Config path." - }, - "subgraph": { - "type": "string", - "description": "Subgraph Config path." - }, - "localEnvFile": { - "type": "string", - "description": "Path to .env file to be used for local operations." - }, - "cloudEnvFile": { - "type": "string", - "description": "Path to .env file to be used for DDN cloud operations." - } - }, - "additionalProperties": false, - "description": "Context Configuration.", - "title": "ContextV2Config" - }, - "ProjectContextV3": { - "type": "object", - "properties": { - "kind": { - "type": "string", - "const": "Context" - }, - "version": { - "type": "string", - "const": "v3" - }, - "definition": { - "$ref": "#/definitions/ContextYaml/definitions/ContextV3Definition" - } - }, - "required": ["kind", "version", "definition"], - "additionalProperties": false - }, - "ContextV3Definition": { - "type": "object", - "additionalProperties": false, - "properties": { - "scripts": { - "$ref": "#/definitions/ContextYaml/definitions/Scripts", - "description": "Configured scripts." - }, - "current": { - "type": "string", - "description": "Current Active Context." - }, - "contexts": { - "$ref": "#/definitions/ContextYaml/definitions/Contexts", - "description": "Configured contexts." - } - }, - "description": "Context V3 Definition.", - "title": "ContextV3Definition" - }, - "Scripts": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/ContextYaml/definitions/ScriptConfig" - }, - "description": "Configured scripts.", - "title": "Scripts" - }, - "ScriptConfig": { - "type": "object", - "properties": { - "bash": { - "type": "string" - }, - "powershell": { - "type": "string" - } - }, - "required": ["bash", "powershell"], - "additionalProperties": false, - "description": "Script Config.", - "title": "ScriptConfig" - } - } } } }