From b78c74c5ed5c1860c3b62623581da4fcc725cc41 Mon Sep 17 00:00:00 2001 From: hawkeyexl Date: Thu, 18 Dec 2025 11:49:17 -0800 Subject: [PATCH 1/5] feat: Implement Heretto CMS uploader for automatic screenshot synchronization - Added HerettoUploader class to handle file uploads to Heretto CMS. - Integrated uploader into the existing upload process for changed screenshots. - Enhanced screenshot saving logic to track changes and source integration metadata. - Created documentation for Heretto screenshot sync feature, detailing the upload process and architecture. - Updated resolver to build file mappings and handle Heretto-specific configurations. - Introduced utility functions to find Heretto integrations based on file paths. - Added error handling and logging for upload operations to improve reliability. --- src/schemas/src_schemas/config_v3.schema.json | 18 ++++++++ .../src_schemas/screenshot_v3.schema.json | 5 +++ .../sourceIntegration_v3.schema.json | 45 +++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 src/schemas/src_schemas/sourceIntegration_v3.schema.json diff --git a/src/schemas/src_schemas/config_v3.schema.json b/src/schemas/src_schemas/config_v3.schema.json index 5b5be5c..769ff3c 100644 --- a/src/schemas/src_schemas/config_v3.schema.json +++ b/src/schemas/src_schemas/config_v3.schema.json @@ -258,6 +258,24 @@ "type": "string", "description": "Local path where Heretto content was downloaded. Set automatically during processing.", "readOnly": true + }, + "fileMapping": { + "type": "object", + "description": "Mapping of local file paths to Heretto file metadata. Set automatically during content loading.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "fileId": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "filePath": { + "type": "string", + "description": "The path of the file in Heretto." + } + } + } } }, "title": "Heretto CMS integration" diff --git a/src/schemas/src_schemas/screenshot_v3.schema.json b/src/schemas/src_schemas/screenshot_v3.schema.json index 48e6291..c801222 100644 --- a/src/schemas/src_schemas/screenshot_v3.schema.json +++ b/src/schemas/src_schemas/screenshot_v3.schema.json @@ -68,6 +68,11 @@ "$ref": "#/components/schemas/crop_element" } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "readOnly": true, + "$ref": "sourceIntegration_v3.schema.json#" } }, "title": "Capture screenshot (detailed)" diff --git a/src/schemas/src_schemas/sourceIntegration_v3.schema.json b/src/schemas/src_schemas/sourceIntegration_v3.schema.json new file mode 100644 index 0000000..d71ebc3 --- /dev/null +++ b/src/schemas/src_schemas/sourceIntegration_v3.schema.json @@ -0,0 +1,45 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "description": "Information about the source integration for a file, enabling upload of changed files back to the source CMS.", + "type": "object", + "additionalProperties": false, + "required": ["type", "integrationName"], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": ["heretto"] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] +} From b179293a3018cb27fcb66b6cbce74f07877e580c Mon Sep 17 00:00:00 2001 From: hawkeyexl Date: Fri, 19 Dec 2025 18:23:03 -0800 Subject: [PATCH 2/5] Fix build --- dist/schemas/config_v3.schema.json | 218 +++ dist/schemas/report_v3.schema.json | 200 +++ dist/schemas/resolvedTests_v3.schema.json | 418 +++++ dist/schemas/screenshot_v3.schema.json | 100 ++ dist/schemas/sourceIntegration_v3.schema.json | 50 + dist/schemas/spec_v3.schema.json | 200 +++ dist/schemas/step_v3.schema.json | 100 ++ dist/schemas/test_v3.schema.json | 200 +++ src/schemas/dereferenceSchemas.js | 1 + .../output_schemas/config_v3.schema.json | 218 +++ .../output_schemas/report_v3.schema.json | 200 +++ .../resolvedTests_v3.schema.json | 418 +++++ .../output_schemas/screenshot_v3.schema.json | 100 ++ .../sourceIntegration_v3.schema.json | 50 + .../output_schemas/spec_v3.schema.json | 200 +++ .../output_schemas/step_v3.schema.json | 100 ++ .../output_schemas/test_v3.schema.json | 200 +++ src/schemas/schemas.json | 1486 +++++++++++++++++ .../src_schemas/screenshot_v3.schema.json | 1 - 19 files changed, 4459 insertions(+), 1 deletion(-) create mode 100644 dist/schemas/sourceIntegration_v3.schema.json create mode 100644 src/schemas/output_schemas/sourceIntegration_v3.schema.json diff --git a/dist/schemas/config_v3.schema.json b/dist/schemas/config_v3.schema.json index f9e967a..ac890fd 100644 --- a/dist/schemas/config_v3.schema.json +++ b/dist/schemas/config_v3.schema.json @@ -5584,6 +5584,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -5780,6 +5830,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -8527,6 +8627,24 @@ "type": "string", "description": "Local path where Heretto content was downloaded. Set automatically during processing.", "readOnly": true + }, + "fileMapping": { + "type": "object", + "description": "Mapping of local file paths to Heretto file metadata. Set automatically during content loading.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "fileId": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "filePath": { + "type": "string", + "description": "The path of the file in Heretto." + } + } + } } }, "title": "Heretto CMS integration" @@ -13538,6 +13656,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13734,6 +13902,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/dist/schemas/report_v3.schema.json b/dist/schemas/report_v3.schema.json index 6cc1350..5868b73 100644 --- a/dist/schemas/report_v3.schema.json +++ b/dist/schemas/report_v3.schema.json @@ -6017,6 +6017,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -6213,6 +6263,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13494,6 +13594,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13690,6 +13840,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/dist/schemas/resolvedTests_v3.schema.json b/dist/schemas/resolvedTests_v3.schema.json index db578a4..ddd8a29 100644 --- a/dist/schemas/resolvedTests_v3.schema.json +++ b/dist/schemas/resolvedTests_v3.schema.json @@ -5597,6 +5597,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -5793,6 +5843,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -8540,6 +8640,24 @@ "type": "string", "description": "Local path where Heretto content was downloaded. Set automatically during processing.", "readOnly": true + }, + "fileMapping": { + "type": "object", + "description": "Mapping of local file paths to Heretto file metadata. Set automatically during content loading.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "fileId": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "filePath": { + "type": "string", + "description": "The path of the file in Heretto." + } + } + } } }, "title": "Heretto CMS integration" @@ -13551,6 +13669,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13747,6 +13915,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -22243,6 +22461,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -22439,6 +22707,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -29720,6 +30038,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -29916,6 +30284,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/dist/schemas/screenshot_v3.schema.json b/dist/schemas/screenshot_v3.schema.json index b503691..b681351 100644 --- a/dist/schemas/screenshot_v3.schema.json +++ b/dist/schemas/screenshot_v3.schema.json @@ -187,6 +187,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -383,6 +433,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/dist/schemas/sourceIntegration_v3.schema.json b/dist/schemas/sourceIntegration_v3.schema.json new file mode 100644 index 0000000..52d9e0c --- /dev/null +++ b/dist/schemas/sourceIntegration_v3.schema.json @@ -0,0 +1,50 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "description": "Information about the source integration for a file, enabling upload of changed files back to the source CMS.", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] +} \ No newline at end of file diff --git a/dist/schemas/spec_v3.schema.json b/dist/schemas/spec_v3.schema.json index 6c1d56a..4fb10e2 100644 --- a/dist/schemas/spec_v3.schema.json +++ b/dist/schemas/spec_v3.schema.json @@ -5999,6 +5999,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -6195,6 +6245,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13476,6 +13576,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13672,6 +13822,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/dist/schemas/step_v3.schema.json b/dist/schemas/step_v3.schema.json index 8960667..fd6e96b 100644 --- a/dist/schemas/step_v3.schema.json +++ b/dist/schemas/step_v3.schema.json @@ -4799,6 +4799,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -4995,6 +5045,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/dist/schemas/test_v3.schema.json b/dist/schemas/test_v3.schema.json index 9d86ed1..5e3f97b 100644 --- a/dist/schemas/test_v3.schema.json +++ b/dist/schemas/test_v3.schema.json @@ -5398,6 +5398,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -5594,6 +5644,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -12875,6 +12975,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13071,6 +13221,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/src/schemas/dereferenceSchemas.js b/src/schemas/dereferenceSchemas.js index cd1d7c5..3709834 100644 --- a/src/schemas/dereferenceSchemas.js +++ b/src/schemas/dereferenceSchemas.js @@ -44,6 +44,7 @@ async function dereferenceSchemas() { "runShell_v3.schema.json", "saveCookie_v3.schema.json", "screenshot_v3.schema.json", + "sourceIntegration_v3.schema.json", "spec_v3.schema.json", "step_v3.schema.json", "stopRecord_v3.schema.json", diff --git a/src/schemas/output_schemas/config_v3.schema.json b/src/schemas/output_schemas/config_v3.schema.json index f9e967a..ac890fd 100644 --- a/src/schemas/output_schemas/config_v3.schema.json +++ b/src/schemas/output_schemas/config_v3.schema.json @@ -5584,6 +5584,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -5780,6 +5830,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -8527,6 +8627,24 @@ "type": "string", "description": "Local path where Heretto content was downloaded. Set automatically during processing.", "readOnly": true + }, + "fileMapping": { + "type": "object", + "description": "Mapping of local file paths to Heretto file metadata. Set automatically during content loading.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "fileId": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "filePath": { + "type": "string", + "description": "The path of the file in Heretto." + } + } + } } }, "title": "Heretto CMS integration" @@ -13538,6 +13656,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13734,6 +13902,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/src/schemas/output_schemas/report_v3.schema.json b/src/schemas/output_schemas/report_v3.schema.json index 6cc1350..5868b73 100644 --- a/src/schemas/output_schemas/report_v3.schema.json +++ b/src/schemas/output_schemas/report_v3.schema.json @@ -6017,6 +6017,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -6213,6 +6263,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13494,6 +13594,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13690,6 +13840,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/src/schemas/output_schemas/resolvedTests_v3.schema.json b/src/schemas/output_schemas/resolvedTests_v3.schema.json index db578a4..ddd8a29 100644 --- a/src/schemas/output_schemas/resolvedTests_v3.schema.json +++ b/src/schemas/output_schemas/resolvedTests_v3.schema.json @@ -5597,6 +5597,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -5793,6 +5843,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -8540,6 +8640,24 @@ "type": "string", "description": "Local path where Heretto content was downloaded. Set automatically during processing.", "readOnly": true + }, + "fileMapping": { + "type": "object", + "description": "Mapping of local file paths to Heretto file metadata. Set automatically during content loading.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "fileId": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "filePath": { + "type": "string", + "description": "The path of the file in Heretto." + } + } + } } }, "title": "Heretto CMS integration" @@ -13551,6 +13669,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13747,6 +13915,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -22243,6 +22461,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -22439,6 +22707,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -29720,6 +30038,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -29916,6 +30284,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/src/schemas/output_schemas/screenshot_v3.schema.json b/src/schemas/output_schemas/screenshot_v3.schema.json index b503691..b681351 100644 --- a/src/schemas/output_schemas/screenshot_v3.schema.json +++ b/src/schemas/output_schemas/screenshot_v3.schema.json @@ -187,6 +187,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -383,6 +433,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/src/schemas/output_schemas/sourceIntegration_v3.schema.json b/src/schemas/output_schemas/sourceIntegration_v3.schema.json new file mode 100644 index 0000000..52d9e0c --- /dev/null +++ b/src/schemas/output_schemas/sourceIntegration_v3.schema.json @@ -0,0 +1,50 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "description": "Information about the source integration for a file, enabling upload of changed files back to the source CMS.", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] +} \ No newline at end of file diff --git a/src/schemas/output_schemas/spec_v3.schema.json b/src/schemas/output_schemas/spec_v3.schema.json index 6c1d56a..4fb10e2 100644 --- a/src/schemas/output_schemas/spec_v3.schema.json +++ b/src/schemas/output_schemas/spec_v3.schema.json @@ -5999,6 +5999,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -6195,6 +6245,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13476,6 +13576,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13672,6 +13822,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/src/schemas/output_schemas/step_v3.schema.json b/src/schemas/output_schemas/step_v3.schema.json index 8960667..fd6e96b 100644 --- a/src/schemas/output_schemas/step_v3.schema.json +++ b/src/schemas/output_schemas/step_v3.schema.json @@ -4799,6 +4799,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -4995,6 +5045,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/src/schemas/output_schemas/test_v3.schema.json b/src/schemas/output_schemas/test_v3.schema.json index 9d86ed1..5e3f97b 100644 --- a/src/schemas/output_schemas/test_v3.schema.json +++ b/src/schemas/output_schemas/test_v3.schema.json @@ -5398,6 +5398,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -5594,6 +5644,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -12875,6 +12975,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -13071,6 +13221,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/src/schemas/schemas.json b/src/schemas/schemas.json index 37ea4f1..ef22892 100644 --- a/src/schemas/schemas.json +++ b/src/schemas/schemas.json @@ -5982,6 +5982,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -6178,6 +6228,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -8925,6 +9025,24 @@ "type": "string", "description": "Local path where Heretto content was downloaded. Set automatically during processing.", "readOnly": true + }, + "fileMapping": { + "type": "object", + "description": "Mapping of local file paths to Heretto file metadata. Set automatically during content loading.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "fileId": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "filePath": { + "type": "string", + "description": "The path of the file in Heretto." + } + } + } } }, "title": "Heretto CMS integration" @@ -13936,6 +14054,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -14132,6 +14300,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -26352,6 +26570,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -26548,6 +26816,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -29295,6 +29613,24 @@ "type": "string", "description": "Local path where Heretto content was downloaded. Set automatically during processing.", "readOnly": true + }, + "fileMapping": { + "type": "object", + "description": "Mapping of local file paths to Heretto file metadata. Set automatically during content loading.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "fileId": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "filePath": { + "type": "string", + "description": "The path of the file in Heretto." + } + } + } } }, "title": "Heretto CMS integration" @@ -34306,6 +34642,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -34502,6 +34888,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -42998,6 +43434,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -43194,6 +43680,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -50475,6 +51011,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -50671,6 +51257,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -59662,6 +60298,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -59858,6 +60544,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -67139,6 +67875,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -67335,6 +68121,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -71165,6 +72001,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -71361,6 +72247,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -71557,6 +72493,56 @@ } ] }, + "sourceIntegration_v3": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "description": "Information about the source integration for a file, enabling upload of changed files back to the source CMS.", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] + }, "spec_v3": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "specification", @@ -77558,6 +78544,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -77754,6 +78790,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -85035,6 +86121,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -85231,6 +86367,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -92792,6 +93978,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -92988,6 +94224,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -100624,6 +101910,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -100820,6 +102156,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -108101,6 +109487,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" @@ -108297,6 +109733,56 @@ } } ] + }, + "sourceIntegration": { + "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "sourceIntegration", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "integrationName" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of integration. Currently supported: 'heretto'. Additional types may be added in the future.", + "enum": [ + "heretto" + ] + }, + "integrationName": { + "type": "string", + "description": "The name of the integration configuration in the config file. Used to look up authentication credentials." + }, + "fileId": { + "type": "string", + "description": "The unique identifier (UUID) of the file in the source CMS. If not provided, the file will be looked up by path." + }, + "filePath": { + "type": "string", + "description": "The path of the file in the source CMS. Used for lookup if fileId is not available." + }, + "contentPath": { + "type": "string", + "description": "The local path to the file that references this source. Used for resolving relative paths." + } + }, + "examples": [ + { + "type": "heretto", + "integrationName": "my-heretto", + "fileId": "8f3ed200-cbba-11e1-ac51-c82a1446d15c", + "filePath": "/db/organizations/example/repositories/docs/images/screenshot.png" + }, + { + "type": "heretto", + "integrationName": "my-heretto", + "filePath": "images/screenshot.png", + "contentPath": "/tmp/doc-detective/heretto_abc123/topic.dita" + } + ] } }, "title": "Capture screenshot (detailed)" diff --git a/src/schemas/src_schemas/screenshot_v3.schema.json b/src/schemas/src_schemas/screenshot_v3.schema.json index c801222..a231415 100644 --- a/src/schemas/src_schemas/screenshot_v3.schema.json +++ b/src/schemas/src_schemas/screenshot_v3.schema.json @@ -71,7 +71,6 @@ }, "sourceIntegration": { "description": "Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.", - "readOnly": true, "$ref": "sourceIntegration_v3.schema.json#" } }, From 26b4ce0917889d1e6f45ad1cbdf5dfe5e45c87c7 Mon Sep 17 00:00:00 2001 From: hawkeyexl Date: Mon, 22 Dec 2025 15:40:40 -0800 Subject: [PATCH 3/5] Implement screenshot handling and upload functionality - Update `saveScreenshot.js` to mark new screenshots as changed for upload. - Add a new test file `screenshot.test.js` to verify sourceIntegration preservation and changed status for screenshots. - Create a new test file `upload.test.js` to validate the upload module, including collecting changed files and integration configuration. - Modify `package-lock.json` to link to local `doc-detective-common` instead of a versioned package. - Enhance `heretto.js` to retrieve resource dependencies from the Heretto REST API, including detailed logging and XML parsing. --- dist/schemas/config_v3.schema.json | 31 ++++++++++ dist/schemas/resolvedTests_v3.schema.json | 31 ++++++++++ .../output_schemas/config_v3.schema.json | 31 ++++++++++ .../resolvedTests_v3.schema.json | 31 ++++++++++ src/schemas/schemas.json | 62 +++++++++++++++++++ src/schemas/src_schemas/config_v3.schema.json | 31 ++++++++++ 6 files changed, 217 insertions(+) diff --git a/dist/schemas/config_v3.schema.json b/dist/schemas/config_v3.schema.json index ac890fd..02711e4 100644 --- a/dist/schemas/config_v3.schema.json +++ b/dist/schemas/config_v3.schema.json @@ -8645,6 +8645,37 @@ } } } + }, + "uploadOnChange": { + "type": "boolean", + "description": "If `true`, uploads changed screenshots and other media files back to Heretto CMS after test execution.", + "default": false + }, + "resourceDependencies": { + "type": "object", + "description": "Mapping of Heretto file paths to their UUIDs and metadata. Set automatically during content loading by fetching ditamap resource dependencies.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "fullPath": { + "type": "string", + "description": "The full xmldb path of the file in Heretto." + }, + "name": { + "type": "string", + "description": "The file name." + }, + "parentFolderId": { + "type": "string", + "description": "The UUID of the parent folder in Heretto." + } + } + } } }, "title": "Heretto CMS integration" diff --git a/dist/schemas/resolvedTests_v3.schema.json b/dist/schemas/resolvedTests_v3.schema.json index ddd8a29..8126dfc 100644 --- a/dist/schemas/resolvedTests_v3.schema.json +++ b/dist/schemas/resolvedTests_v3.schema.json @@ -8658,6 +8658,37 @@ } } } + }, + "uploadOnChange": { + "type": "boolean", + "description": "If `true`, uploads changed screenshots and other media files back to Heretto CMS after test execution.", + "default": false + }, + "resourceDependencies": { + "type": "object", + "description": "Mapping of Heretto file paths to their UUIDs and metadata. Set automatically during content loading by fetching ditamap resource dependencies.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "fullPath": { + "type": "string", + "description": "The full xmldb path of the file in Heretto." + }, + "name": { + "type": "string", + "description": "The file name." + }, + "parentFolderId": { + "type": "string", + "description": "The UUID of the parent folder in Heretto." + } + } + } } }, "title": "Heretto CMS integration" diff --git a/src/schemas/output_schemas/config_v3.schema.json b/src/schemas/output_schemas/config_v3.schema.json index ac890fd..02711e4 100644 --- a/src/schemas/output_schemas/config_v3.schema.json +++ b/src/schemas/output_schemas/config_v3.schema.json @@ -8645,6 +8645,37 @@ } } } + }, + "uploadOnChange": { + "type": "boolean", + "description": "If `true`, uploads changed screenshots and other media files back to Heretto CMS after test execution.", + "default": false + }, + "resourceDependencies": { + "type": "object", + "description": "Mapping of Heretto file paths to their UUIDs and metadata. Set automatically during content loading by fetching ditamap resource dependencies.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "fullPath": { + "type": "string", + "description": "The full xmldb path of the file in Heretto." + }, + "name": { + "type": "string", + "description": "The file name." + }, + "parentFolderId": { + "type": "string", + "description": "The UUID of the parent folder in Heretto." + } + } + } } }, "title": "Heretto CMS integration" diff --git a/src/schemas/output_schemas/resolvedTests_v3.schema.json b/src/schemas/output_schemas/resolvedTests_v3.schema.json index ddd8a29..8126dfc 100644 --- a/src/schemas/output_schemas/resolvedTests_v3.schema.json +++ b/src/schemas/output_schemas/resolvedTests_v3.schema.json @@ -8658,6 +8658,37 @@ } } } + }, + "uploadOnChange": { + "type": "boolean", + "description": "If `true`, uploads changed screenshots and other media files back to Heretto CMS after test execution.", + "default": false + }, + "resourceDependencies": { + "type": "object", + "description": "Mapping of Heretto file paths to their UUIDs and metadata. Set automatically during content loading by fetching ditamap resource dependencies.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "fullPath": { + "type": "string", + "description": "The full xmldb path of the file in Heretto." + }, + "name": { + "type": "string", + "description": "The file name." + }, + "parentFolderId": { + "type": "string", + "description": "The UUID of the parent folder in Heretto." + } + } + } } }, "title": "Heretto CMS integration" diff --git a/src/schemas/schemas.json b/src/schemas/schemas.json index ef22892..50f923a 100644 --- a/src/schemas/schemas.json +++ b/src/schemas/schemas.json @@ -9043,6 +9043,37 @@ } } } + }, + "uploadOnChange": { + "type": "boolean", + "description": "If `true`, uploads changed screenshots and other media files back to Heretto CMS after test execution.", + "default": false + }, + "resourceDependencies": { + "type": "object", + "description": "Mapping of Heretto file paths to their UUIDs and metadata. Set automatically during content loading by fetching ditamap resource dependencies.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "fullPath": { + "type": "string", + "description": "The full xmldb path of the file in Heretto." + }, + "name": { + "type": "string", + "description": "The file name." + }, + "parentFolderId": { + "type": "string", + "description": "The UUID of the parent folder in Heretto." + } + } + } } }, "title": "Heretto CMS integration" @@ -29631,6 +29662,37 @@ } } } + }, + "uploadOnChange": { + "type": "boolean", + "description": "If `true`, uploads changed screenshots and other media files back to Heretto CMS after test execution.", + "default": false + }, + "resourceDependencies": { + "type": "object", + "description": "Mapping of Heretto file paths to their UUIDs and metadata. Set automatically during content loading by fetching ditamap resource dependencies.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "fullPath": { + "type": "string", + "description": "The full xmldb path of the file in Heretto." + }, + "name": { + "type": "string", + "description": "The file name." + }, + "parentFolderId": { + "type": "string", + "description": "The UUID of the parent folder in Heretto." + } + } + } } }, "title": "Heretto CMS integration" diff --git a/src/schemas/src_schemas/config_v3.schema.json b/src/schemas/src_schemas/config_v3.schema.json index 769ff3c..84d8ee5 100644 --- a/src/schemas/src_schemas/config_v3.schema.json +++ b/src/schemas/src_schemas/config_v3.schema.json @@ -276,6 +276,37 @@ } } } + }, + "uploadOnChange": { + "type": "boolean", + "description": "If `true`, uploads changed screenshots and other media files back to Heretto CMS after test execution.", + "default": false + }, + "resourceDependencies": { + "type": "object", + "description": "Mapping of Heretto file paths to their UUIDs and metadata. Set automatically during content loading by fetching ditamap resource dependencies.", + "readOnly": true, + "additionalProperties": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "The UUID of the file in Heretto." + }, + "fullPath": { + "type": "string", + "description": "The full xmldb path of the file in Heretto." + }, + "name": { + "type": "string", + "description": "The file name." + }, + "parentFolderId": { + "type": "string", + "description": "The UUID of the parent folder in Heretto." + } + } + } } }, "title": "Heretto CMS integration" From a3cc47014e80aef3ffd1c7005d413e66e8c50b18 Mon Sep 17 00:00:00 2001 From: hawkeyexl Date: Tue, 30 Dec 2025 11:22:51 -0800 Subject: [PATCH 4/5] feat: Update path resolution to support heretto: URIs - Modify resolve function to return heretto: URIs unchanged. - Update comments to reflect new URI handling in path resolution. --- src/resolvePaths.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/resolvePaths.js b/src/resolvePaths.js index d6304de..7a217d3 100644 --- a/src/resolvePaths.js +++ b/src/resolvePaths.js @@ -79,8 +79,8 @@ async function resolvePaths({ * @remark HTTP and HTTPS URLs are returned unchanged without resolution. */ function resolve(baseType, relativePath, filePath) { - // If the path is an http:// or https:// URL, return it - if (relativePath.startsWith("https://") || relativePath.startsWith("http://")) { + // If the path is an http:// or https:// URL, or a heretto: URI, return it + if (relativePath.startsWith("https://") || relativePath.startsWith("http://") || relativePath.startsWith("heretto:")) { return relativePath; } @@ -190,10 +190,11 @@ async function resolvePaths({ objectType: objectType, }); } else if (typeof object[property] === "string") { - // If the property begins with "https://" or "http://", skip it + // If the property begins with "https://", "http://", or "heretto:", skip it if ( object[property].startsWith("https://") || - object[property].startsWith("http://") + object[property].startsWith("http://") || + object[property].startsWith("heretto:") ) { continue; } From 534c41f6f21982222f008ca4390aabf4e740d49b Mon Sep 17 00:00:00 2001 From: hawkeyexl Date: Sat, 3 Jan 2026 08:40:39 -0800 Subject: [PATCH 5/5] chore: Update dependencies in package.json and package-lock.json - Upgrade chai from 6.2.1 to 6.2.2 - Upgrade sinon from 21.0.0 to 21.0.1 - Update sinon's fake-timers and samsam dependencies --- package-lock.json | 55 ++++++++++++++++++++++++++--------------------- package.json | 4 ++-- 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 98dabee..aaad938 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,9 +18,9 @@ "yaml": "^2.8.2" }, "devDependencies": { - "chai": "^6.2.1", + "chai": "^6.2.2", "mocha": "^11.7.5", - "sinon": "^21.0.0" + "sinon": "^21.0.1" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -157,14 +157,15 @@ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", - "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.1.0.tgz", + "integrity": "sha512-cqfapCxwTGsrR80FEgOoPsTonoefMBY7dnUEbQ+GRcved0jvkJLzvX6F4WtN+HBqbPX/SiFsIRUp+IrCW/2I2w==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -172,13 +173,13 @@ } }, "node_modules/@sinonjs/samsam": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.2.tgz", - "integrity": "sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.3.tgz", + "integrity": "sha512-hw6HbX+GyVZzmaYNh82Ecj1vdGZrqVIn/keDTg63IgAwiQPO+xCz99uG6Woqgb4tM0mUiFENKZ4cqd7IX94AXQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.1", - "lodash.get": "^4.4.2", "type-detect": "^4.1.0" } }, @@ -187,6 +188,7 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -333,9 +335,9 @@ } }, "node_modules/chai": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", - "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", "engines": { @@ -872,12 +874,6 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -1250,16 +1246,16 @@ } }, "node_modules/sinon": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-21.0.0.tgz", - "integrity": "sha512-TOgRcwFPbfGtpqvZw+hyqJDvqfapr1qUlOizROIk4bBLjlsjlB00Pg6wMFXNtJRpu+eCZuVOaLatG7M8105kAw==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-21.0.1.tgz", + "integrity": "sha512-Z0NVCW45W8Mg5oC/27/+fCqIHFnW8kpkFOq0j9XJIev4Ld0mKmERaZv5DMLAb9fGCevjKwaEeIQz5+MBXfZcDw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^13.0.5", - "@sinonjs/samsam": "^8.0.1", - "diff": "^7.0.0", + "@sinonjs/fake-timers": "^15.1.0", + "@sinonjs/samsam": "^8.0.3", + "diff": "^8.0.2", "supports-color": "^7.2.0" }, "funding": { @@ -1267,6 +1263,16 @@ "url": "https://opencollective.com/sinon" } }, + "node_modules/sinon/node_modules/diff": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.2.tgz", + "integrity": "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -1352,6 +1358,7 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } diff --git a/package.json b/package.json index 80f65be..3da8576 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,9 @@ }, "homepage": "https://github.com/doc-detective/doc-detective-common#readme", "devDependencies": { - "chai": "^6.2.1", + "chai": "^6.2.2", "mocha": "^11.7.5", - "sinon": "^21.0.0" + "sinon": "^21.0.1" }, "dependencies": { "@apidevtools/json-schema-ref-parser": "^15.1.3",