diff --git a/.changes/unreleased/added-20260706-091126.yaml b/.changes/unreleased/added-20260706-091126.yaml new file mode 100644 index 000000000..46352c5c0 --- /dev/null +++ b/.changes/unreleased/added-20260706-091126.yaml @@ -0,0 +1,6 @@ +kind: added +body: Add new 'bulk-export' command for exporting workspace or folder items +time: 2026-07-06T09:11:26.916814199Z +custom: + Author: ohadedry + AuthorLink: https://github.com/ohadedry diff --git a/docs/commands/fs/bulk_export.md b/docs/commands/fs/bulk_export.md new file mode 100644 index 000000000..49a08e460 --- /dev/null +++ b/docs/commands/fs/bulk_export.md @@ -0,0 +1,106 @@ +# `bulk-export` Command + +Export a workspace or folder in bulk while preserving folder structure and item bindings. + +The `bulk-export` command exports all supported items from a workspace or folder in a single bulk API request, preserving the folder hierarchy and item bindings (logical IDs) in the exported definitions. + +!!! warning "When exporting items, the item definitions are exported without their sensitivity labels" + +!!! note "Permissions" + - **Workspace export**: Only items that the caller has both read and write permissions for are exported. + - **Folder export**: The caller must have read and write permissions for all folder items. + +!!! note "Differences from `export`" + - **Folder structure**: `bulk-export` preserves the workspace folder hierarchy in the output. `export` exports items flat. + - **Item bindings**: `bulk-export` preserves item logical IDs, enabling round-trip import/update. `export` uses nil UUIDs. + - **Format**: `bulk-export` does not support the `--format` flag. Items are exported in their default format only. + - **Target scope**: `bulk-export` operates on workspaces and folders. `export` operates on individual items or workspaces. + +**Supported Targets:** + +- `.Workspace` — exports all supported items in the workspace +- `.Folder` — exports all supported items in the folder and its sub-folders + +**Supported Item Types:** + +`CopyJob`, `CosmosDBDatabase`, `Dataflow`, `DataPipeline`, `DigitalTwinBuilder`, `DigitalTwinBuilderFlow`, `Environment`, `Eventhouse`, `Eventstream`, `GraphQLApi`, `GraphQuerySet`, `KQLDashboard`, `KQLDatabase`, `KQLQueryset`, `Lakehouse`, `Map`, `MirroredDatabase`, `MLExperiment`, `MLModel`, `MountedDataFactory`, `Notebook`, `Reflex`, `Report`, `SemanticModel`, `SparkJobDefinition`, `SQLDatabase`, `UserDataFunction`, `VariableLibrary` + +Unsupported item types are automatically skipped and reported in the output summary. + +**Usage:** + +``` +fab bulk-export -o --recursive [-f] +``` + +**Parameters:** + +| Parameter | Description | +|-----------|-------------| +| `` | Path to the workspace or folder to export. | +| `-o, --output ` | Output directory path. Required. | +| `--recursive` | Recursively export folder contents. Required for workspace and folder targets. | +| `-f, --force` | Skip confirmation prompts. Exports without sensitivity label confirmation and proceeds when the output folder is not empty. Optional. | + +**Examples:** + +```bash +# Bulk-export an entire workspace to a local directory +fab bulk-export ws1.Workspace -o /tmp --recursive --force + +# Bulk-export a specific folder +fab bulk-export ws1.Workspace/folder1.Folder -o /tmp --recursive --force +``` + +**Output:** + +On success, the command prints a summary with the number of exported and skipped items: + +``` +Exported 15 items to '/tmp'. Skipped 1 items due to unsupported item types: Dashboard (1) +``` + +When using `--output_format json`, the output includes structured data: + +```json +{ + "exported": 15, + "exported_types": { + "SemanticModel": 5, + "Report": 4, + "Notebook": 3, + "DataPipeline": 3 + }, + "skipped": 1, + "skipped_types": { + "Dashboard": 1 + }, + "output": "/tmp" +} +``` + +**Output Directory Structure:** + +The exported output mirrors the workspace folder structure: + +``` +/ +├── notebook1.Notebook/ +│ ├── .platform +│ └── notebook-content.ipynb +├── Folder1/ +│ ├── notebook2.Notebook/ +│ │ ├── .platform +│ │ └── notebook-content.ipynb +│ └── report1.Report/ +│ ├── .platform +│ ├── definition.pbir +│ └── StaticResources/ +│ └── ... +└── Folder2/ + └── model1.SemanticModel/ + ├── .platform + └── definition/ + ├── model.tmdl + └── ... +``` diff --git a/docs/commands/index.md b/docs/commands/index.md index fa1e87fde..208839c2a 100644 --- a/docs/commands/index.md +++ b/docs/commands/index.md @@ -48,6 +48,7 @@ It supports both Unix-style and Windows-style command names for file system oper | Command | Description | |---------|-------------| | [`assign`](./fs/assign.md) | Assign a resource to a workspace | +| [`bulk-export`](./fs/bulk_export.md) | Export Folder or Workspace items in bulk | | [`cd`](./fs/cd.md) | Change to the specified directory | | [`cp` (copy)](./fs/cp.md) | Copy an item or file | | [`export`](./fs/export.md) | Export an item | diff --git a/docs/examples/folder_examples.md b/docs/examples/folder_examples.md index 2dc3db4bb..d7ebfdb86 100644 --- a/docs/examples/folder_examples.md +++ b/docs/examples/folder_examples.md @@ -110,6 +110,21 @@ fab rm ws1.Workspace/fd1.Folder ## Folder Operations +### Bulk-Export Folder Items + +!!! info "When you execute the `bulk-export` command, the sensitivity labels are not part of the exported definitions" + +Bulk-export all supported items from a folder preserving folder structure and item bindings. See [bulk-export command](../commands/fs/bulk_export.md) for full details and supported item types. + +#### Bulk-Export a Folder Recursively + +Export a folder and all its sub-folders to a local directory. + +```py +fab bulk-export ws1.Workspace/fd1.Folder -o /tmp --recursive +``` + + ### Copy Folder diff --git a/docs/examples/workspace_examples.md b/docs/examples/workspace_examples.md index 907d8c97a..0978838b6 100644 --- a/docs/examples/workspace_examples.md +++ b/docs/examples/workspace_examples.md @@ -260,6 +260,18 @@ fab export ws1.Workspace -o /ws1.Workspace/lh1.Lakehouse/Files fab export ws1.Workspace -o /ws1.Workspace/lh1.Lakehouse/Files -a ``` +### Bulk-Export Workspace Items + +!!! info "When you bulk-export item definitions, the sensitivity labels are not part of the definitions" + +Bulk-export all supported items from a workspace preserving folder structure and item bindings. See [bulk-export command](../commands/fs/bulk_export.md) for full details and supported item types. + +#### Bulk-Export Workspace to Local Directory + +```py +fab bulk-export ws1.Workspace -o /tmp --recursive +``` + ### Deploy Workspace Items Deploy workspace items from local source to target workspaces using configuration files. diff --git a/mkdocs.yml b/mkdocs.yml index 136bf2a97..8274358cf 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -78,6 +78,7 @@ nav: - api: commands/api/index.md - assign: commands/fs/assign.md - auth: commands/auth/index.md + - bulk-export: commands/fs/bulk_export.md - cd: commands/fs/cd.md - config: commands/config/index.md - cp (copy): commands/fs/cp.md diff --git a/src/fabric_cli/client/fab_api_client.py b/src/fabric_cli/client/fab_api_client.py index 99df81c0c..8b56c97e3 100644 --- a/src/fabric_cli/client/fab_api_client.py +++ b/src/fabric_cli/client/fab_api_client.py @@ -156,7 +156,11 @@ def do_request( start_time = time.time() response = session.request(method=method, url=url, **request_params) fab_logger.log_debug_http_response( - response.status_code, response.headers, response.text, start_time + response.status_code, + response.headers, + response.text, + start_time, + ctxt_cmd, ) api_error_code = response.headers.get( diff --git a/src/fabric_cli/client/fab_api_item.py b/src/fabric_cli/client/fab_api_item.py index c50bc00c8..7545e334b 100644 --- a/src/fabric_cli/client/fab_api_item.py +++ b/src/fabric_cli/client/fab_api_item.py @@ -109,6 +109,15 @@ def get_item_definition(args: Namespace) -> ApiResponse: return fabric_api.do_request(args) +def bulk_export_definitions(args: Namespace, payload: str) -> ApiResponse: + """https://learn.microsoft.com/en-us/rest/api/fabric/core/items/bulk-export-item-definitions""" + args.uri = f"workspaces/{args.ws_id}/items/bulkExportDefinitions?beta=true" + args.method = "post" + args.wait = True + + return fabric_api.do_request(args, data=payload) + + def update_item_definition( args: Namespace, payload: str, item_uri: Optional[bool] = False ) -> ApiResponse: diff --git a/src/fabric_cli/commands/fs/bulk_export/__init__.py b/src/fabric_cli/commands/fs/bulk_export/__init__.py new file mode 100644 index 000000000..59e481eb9 --- /dev/null +++ b/src/fabric_cli/commands/fs/bulk_export/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. diff --git a/src/fabric_cli/commands/fs/bulk_export/fab_fs_bulk_export_folder.py b/src/fabric_cli/commands/fs/bulk_export/fab_fs_bulk_export_folder.py new file mode 100644 index 000000000..be4bea743 --- /dev/null +++ b/src/fabric_cli/commands/fs/bulk_export/fab_fs_bulk_export_folder.py @@ -0,0 +1,70 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +from argparse import Namespace +from copy import deepcopy +import json + +from fabric_cli.core.hiearchy.fab_folder import Folder +from fabric_cli.core.fab_exceptions import FabricCLIError +from fabric_cli.core import fab_constant +from fabric_cli.client import fab_api_item as item_api +from fabric_cli.errors.bulk_export import BulkExportErrors +from fabric_cli.core.hiearchy.fab_hiearchy import Item +from fabric_cli.utils import fab_cmd_fs_utils as utils_fs +from fabric_cli.utils.fab_cmd_bulk_export_utils import ContextItemsSupportMap +from fabric_cli.utils import fab_cmd_bulk_export_utils as bulk_export_utils + + +def bulk_export_folder(context: Folder, args: Namespace) -> None: + """Bulk-export a folder with its contents, including sub-folders recursively.""" + args = deepcopy(args) + + workspace_id = context.workspace.id + args.ws_id = workspace_id + args.from_path = context.path.strip("/") + + items_support = _collect_context_items(context) + if not items_support["supported_items"]: + error_message = ( + BulkExportErrors.empty_target(context.full_name) + if not items_support["unsupported_items"] + else BulkExportErrors.no_exportable_items() + ) + raise FabricCLIError( + error_message, + fab_constant.ERROR_INVALID_OPERATION, + ) + + exported_item_ids = [item.id for item in items_support["supported_items"]] + payload = bulk_export_utils.create_bulk_export_payload(exported_item_ids) + response = item_api.bulk_export_definitions(args, payload) + exported_definitions = json.loads(response.text) + bulk_export_utils.export_definition_parts_to_storage( + args, context.full_name, exported_definitions + ) + bulk_export_utils.print_bulk_export_summary(args, items_support) + + +def _collect_context_items( + context: Folder, +) -> ContextItemsSupportMap: + """Recursively collect all item IDs under a folder and its sub-folders.""" + supported_items: list[Item] = [] + unsupported_items: list[Item] = [] + elements = utils_fs.get_ws_elements(context) + + for element in elements: + if isinstance(element, Item): + try: + if bulk_export_utils.is_command_supported(element): + supported_items.append(element) + except FabricCLIError: + unsupported_items.append(element) + pass + elif isinstance(element, Folder): + folder_items = _collect_context_items(element) + supported_items.extend(folder_items["supported_items"]) + unsupported_items.extend(folder_items["unsupported_items"]) + + return {"supported_items": supported_items, "unsupported_items": unsupported_items} diff --git a/src/fabric_cli/commands/fs/bulk_export/fab_fs_bulk_export_workspace.py b/src/fabric_cli/commands/fs/bulk_export/fab_fs_bulk_export_workspace.py new file mode 100644 index 000000000..dac0b105e --- /dev/null +++ b/src/fabric_cli/commands/fs/bulk_export/fab_fs_bulk_export_workspace.py @@ -0,0 +1,123 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +from argparse import Namespace +from copy import deepcopy +import json + +from fabric_cli.utils import fab_mem_store as utils_mem_store +from fabric_cli.core.hiearchy.fab_hiearchy import Item, Workspace +from fabric_cli.core.fab_exceptions import FabricCLIError +from fabric_cli.errors.bulk_export import BulkExportErrors +from fabric_cli.core import fab_constant +from fabric_cli.client import fab_api_item as item_api +from fabric_cli.utils.fab_cmd_bulk_export_utils import ContextItemsSupportMap +from fabric_cli.utils import fab_cmd_bulk_export_utils as bulk_export_utils + + +def bulk_export_workspace(context: Workspace, args: Namespace) -> None: + """Bulk-export a workspace with its contents, including sub-folders recursively.""" + args = deepcopy(args) + + args.ws_id = context.id + args.from_path = context.path.strip("/") + + ws_items = utils_mem_store.get_workspace_items(context) + if not ws_items: + raise FabricCLIError( + BulkExportErrors.empty_target(context.full_name), + fab_constant.ERROR_INVALID_OPERATION, + ) + + # bulk export can be called with no items collected and create_bulk_export_payload will handle it as "export all", so we don't need to pre-collect items here like we do for folders. Just call bulk export directly with the workspace ID and let the API determine what to export based on the from_path. + payload = bulk_export_utils.create_bulk_export_payload(item_ids=[]) + response = item_api.bulk_export_definitions(args, payload) + exported_definitions = json.loads(response.text) + + items_support = _filter_response_by_supported_items(exported_definitions, context) + if not items_support["supported_items"]: + raise FabricCLIError( + BulkExportErrors.no_exportable_items(), + fab_constant.ERROR_INVALID_OPERATION, + ) + + bulk_export_utils.export_definition_parts_to_storage( + args, context.full_name, exported_definitions + ) + bulk_export_utils.print_bulk_export_summary(args, items_support) + + +def _filter_response_by_supported_items( + exported_definitions: dict, workspace: Workspace +) -> ContextItemsSupportMap: + """Filter response items by matching IDs from itemDefinitionsIndex against known workspace items. + + Uses itemDefinitionsIndex to identify returned items by ID, matches them against cached + workspace items, and checks command support. Mutates exported_definitions['definitionParts'] in-place + to remove parts belonging to unsupported or unknown item types. + Returns a map of supported/unsupported Item objects. + """ + items_definitions_index = exported_definitions.get("itemDefinitionsIndex", []) + parts = exported_definitions.get("definitionParts", []) + + # Build a lookup of workspace items by ID + ws_items = utils_mem_store.get_workspace_items(workspace) + items_by_id: dict[str, Item] = {item.id: item for item in ws_items} + + supported_item_prefixes: set[str] = set() + supported_items_list: list[Item] = [] + unsupported_items_list: list[Item] = [] + + for index_entry in items_definitions_index: + item_id = index_entry.get("id", "") + root_path = index_entry.get("rootPath", "") + + ws_item = items_by_id.get(item_id) + if ws_item is None: + # Item not known in workspace - skip + continue + + try: + if bulk_export_utils.is_command_supported(ws_item): + supported_item_prefixes.add(root_path) + supported_items_list.append(ws_item) + else: + unsupported_items_list.append(ws_item) + except FabricCLIError: + unsupported_items_list.append(ws_item) + + # find unsupported items that were not in the response index and add them to the unsupported_items_list + supported_item_ids: set[str] = {item.id for item in supported_items_list} + unsupported_item_ids: set[str] = {item.id for item in unsupported_items_list} + for ws_item in ws_items: + if ( + ws_item.id not in supported_item_ids + and ws_item.id not in unsupported_item_ids + ): + unsupported_items_list.append(ws_item) + + # Filter response parts to keep only supported items + filtered_parts = [ + part + for part in parts + if _path_belongs_to_item(part.get("path", ""), supported_item_prefixes) + ] + exported_definitions["definitionParts"] = filtered_parts + + return { + "supported_items": supported_items_list, + "unsupported_items": unsupported_items_list, + } + + +def _path_belongs_to_item(path: str, item_prefixes: set[str]) -> bool: + """Check if a definition part path belongs to any of the given item prefixes. + + A part belongs to an item if its path starts with the item prefix followed by '/'. + e.g., path '/Folder1/MyReport.Report/definition/pages/file.json' + belongs to item prefix '/Folder1/MyReport.Report'. + """ + for prefix in item_prefixes: + if path.startswith(prefix + "/"): + return True + return False diff --git a/src/fabric_cli/commands/fs/fab_fs.py b/src/fabric_cli/commands/fs/fab_fs.py index 083c3ec10..8de0d21ac 100644 --- a/src/fabric_cli/commands/fs/fab_fs.py +++ b/src/fabric_cli/commands/fs/fab_fs.py @@ -13,6 +13,7 @@ from fabric_cli.commands.fs import fab_fs_cp as fs_cp from fabric_cli.commands.fs import fab_fs_exists as fs_exists from fabric_cli.commands.fs import fab_fs_export as fs_export +from fabric_cli.commands.fs import fab_fs_bulk_export as fs_bulk_export from fabric_cli.commands.fs import fab_fs_get as fs_get from fabric_cli.commands.fs import fab_fs_import as fs_import from fabric_cli.commands.fs import fab_fs_deploy as fs_deploy @@ -129,6 +130,14 @@ def export_command(args: Namespace) -> None: fs_export.exec_command(args, context) +@handle_exceptions() +@set_command_context() +def bulk_export_command(args: Namespace) -> None: + context = handle_context.get_command_context(args.path) + context.check_command_support(Command.FS_BULKEXPORT) + fs_bulk_export.exec_command(args, context) + + @handle_exceptions() @set_command_context() def get_command(args: Namespace) -> None: diff --git a/src/fabric_cli/commands/fs/fab_fs_bulk_export.py b/src/fabric_cli/commands/fs/fab_fs_bulk_export.py new file mode 100644 index 000000000..23dc8b60c --- /dev/null +++ b/src/fabric_cli/commands/fs/fab_fs_bulk_export.py @@ -0,0 +1,87 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +import os +from argparse import Namespace + +from fabric_cli.commands.fs.bulk_export.fab_fs_bulk_export_folder import ( + bulk_export_folder, +) +from fabric_cli.commands.fs.bulk_export.fab_fs_bulk_export_workspace import ( + bulk_export_workspace, +) +from fabric_cli.core import fab_constant +from fabric_cli.core.fab_exceptions import FabricCLIError +from fabric_cli.core.hiearchy.fab_folder import Folder +from fabric_cli.core.hiearchy.fab_hiearchy import FabricElement, Workspace +from fabric_cli.errors.bulk_export import BulkExportErrors +from fabric_cli.utils import fab_storage +from fabric_cli.utils import fab_ui, fab_util + + +def exec_command(args: Namespace, context: FabricElement) -> None: + args.output = fab_util.process_nargs(args.output) + + if not isinstance(context, (Workspace, Folder)): + raise FabricCLIError( + BulkExportErrors.invalid_target(context.full_name), + fab_constant.ERROR_INVALID_OPERATION, + ) + + _validate_bulk_export_arguments(args) + if not _confirm_export_preconditions(args): + return + if isinstance(context, Workspace): + bulk_export_workspace(context, args) + elif isinstance(context, Folder): + bulk_export_folder(context, args) + + +def _validate_bulk_export_arguments(args: Namespace) -> None: + """Validate required flags for workspace/folder bulk-export.""" + if not args.recursive: + raise FabricCLIError( + BulkExportErrors.recursive_flag_required(), + fab_constant.ERROR_INVALID_OPERATION, + ) + if not args.output: + raise FabricCLIError( + BulkExportErrors.invalid_export_path(""), + fab_constant.ERROR_INVALID_OPERATION, + ) + + +def _confirm_export_preconditions(args: Namespace) -> bool: + """Validate export preconditions and prompt for confirmations. Returns True if all confirmed or --force is set.""" + export_path_warning = False + export_path = fab_storage.get_export_path(args.output) + if (export_path["type"] != "local") or ( + export_path["type"] == "local" and not os.path.isdir(export_path["path"]) + ): + raise FabricCLIError( + BulkExportErrors.invalid_export_path(export_path["path"]), + fab_constant.ERROR_INVALID_OPERATION, + ) + + is_export_path_empty = True + with os.scandir(export_path["path"]) as entries: + is_export_path_empty = not any(entries) + if not is_export_path_empty: + if not args.force: + if not fab_ui.prompt_confirm( + f"Output folder '{export_path['path']}' is not empty. Do you want to proceed?" + ): + return False + else: + export_path_warning = True + + if args.force: + fab_ui.print_warning( + "Item definitions are exported without their sensitivity labels" + ) + if export_path_warning: + fab_ui.print_warning("Exporting to a non-empty output folder") + return True + return fab_ui.prompt_confirm( + "Item definitions are exported without their sensitivity labels. Are you sure?" + ) diff --git a/src/fabric_cli/core/fab_commands.py b/src/fabric_cli/core/fab_commands.py index 14f591b0c..65c40ef3e 100644 --- a/src/fabric_cli/core/fab_commands.py +++ b/src/fabric_cli/core/fab_commands.py @@ -30,6 +30,7 @@ class Command(Enum): FS_CD = "cd" FS_EXISTS = "exists" FS_EXPORT = "export" + FS_BULKEXPORT = "bulkexport" FS_IMPORT = "import" FS_GET = "get" FS_SET = "set" diff --git a/src/fabric_cli/core/fab_config/command_support.yaml b/src/fabric_cli/core/fab_config/command_support.yaml index 2e9fe91a8..9b8027f8e 100644 --- a/src/fabric_cli/core/fab_config/command_support.yaml +++ b/src/fabric_cli/core/fab_config/command_support.yaml @@ -358,6 +358,39 @@ commands: supported_elements: - workspace - item + bulkexport: + supported_elements: + - workspace + - folder + supported_items: + - report + - ml_model + - ml_experiment + - environment + - spark_job_definition + - semantic_model + - notebook + - kql_dashboard + - data_pipeline + - kql_queryset + - eventhouse + - kql_database + - mirrored_database + - reflex + - eventstream + - mounted_data_factory + - copy_job + - variable_library + - graph_ql_api + - dataflow + - sql_database + - cosmos_db_database + - digital_twin_builder + - digital_twin_builder_flow + - user_data_function + - graph_query_set + - map + - lakehouse mkdir: supported_elements: - workspace diff --git a/src/fabric_cli/core/fab_constant.py b/src/fabric_cli/core/fab_constant.py index 531aa091f..1ad538113 100644 --- a/src/fabric_cli/core/fab_constant.py +++ b/src/fabric_cli/core/fab_constant.py @@ -19,8 +19,7 @@ ) API_ENDPOINT_POWER_BI = ( - validate_and_get_env_variable( - "FAB_API_ENDPOINT_POWER_BI", "api.powerbi.com") + validate_and_get_env_variable("FAB_API_ENDPOINT_POWER_BI", "api.powerbi.com") + "/v1.0/myorg" ) @@ -182,6 +181,7 @@ COMMAND_FS_PWD_DESCRIPTION = "Print the current working directory." COMMAND_FS_OPEN_DESCRIPTION = "Open a workspace or item in browser." COMMAND_FS_EXPORT_DESCRIPTION = "Export an item." +COMMAND_FS_BULKEXPORT_DESCRIPTION = "Export a workspace or folder in bulk while preserving folder structure and item bindings." COMMAND_FS_GET_DESCRIPTION = "Get workspace or item properties." COMMAND_FS_IMPORT_DESCRIPTION = "Import an item to create or update it." COMMAND_FS_DEPLOY_DESCRIPTION = "Deploy items using a configuration file." diff --git a/src/fabric_cli/core/fab_logger.py b/src/fabric_cli/core/fab_logger.py index 6e21bcf2c..f9d07b5b5 100644 --- a/src/fabric_cli/core/fab_logger.py +++ b/src/fabric_cli/core/fab_logger.py @@ -94,7 +94,7 @@ def log_debug_http_request( logger.debug("") -def log_debug_http_response(status_code, headers, response_text, start_time): +def log_debug_http_response(status_code, headers, response_text, start_time, ctxt_cmd): """Logs a http response debug message if FAB_DEBUG is enabled.""" if fab_state_config.get_config(fab_constant.FAB_DEBUG_ENABLED) != "true": return @@ -130,7 +130,7 @@ def log_debug_http_response(status_code, headers, response_text, start_time): else: content_type = headers.get("Content-Type", "") if "application/json" in content_type: - logger.debug(" " + _parse_json_into_single_line(response_text)) + logger.debug(" " + _parse_json_into_single_line(response_text, ctxt_cmd)) else: # If not JSON, log as plain text logger.debug(" " + response_text) @@ -265,10 +265,57 @@ def user_log_dir(app_name): return log_dir -def _parse_json_into_single_line(json_text): +_ITEM_DEFINITION_PART_KEYS = {"path", "payload", "payloadType"} + + +def _parse_json_into_single_line(json_text, ctxt_cmd): try: - parsed_json = json.loads(json_text) + parsed_json = _process_json_response(json.loads(json_text), ctxt_cmd) compact_json = json.dumps(parsed_json, separators=(",", ":")) return compact_json except json.JSONDecodeError: return "Failed to parse JSON response" + + +def _process_json_response(parsed_json, ctxt_cmd): + if parsed_json and isinstance(parsed_json, dict): + # process responses according to the command context + + if ( + ctxt_cmd == "bulk-export" + and "itemDefinitionsIndex" in parsed_json + and "definitionParts" in parsed_json + and isinstance(parsed_json["definitionParts"], list) + and all( + isinstance(part, dict) and _ITEM_DEFINITION_PART_KEYS <= part.keys() + for part in parsed_json["definitionParts"] + ) + ): + return { + k: ("redacted_from_log" if k == "definitionParts" else v) + for k, v in parsed_json.items() + } + + if ( + ctxt_cmd == "export" + and "definition" in parsed_json + and "parts" in parsed_json["definition"] + and isinstance(parsed_json["definition"]["parts"], list) + and all( + isinstance(part, dict) and _ITEM_DEFINITION_PART_KEYS <= part.keys() + for part in parsed_json["definition"]["parts"] + ) + ): + definition = { + k: v for k, v in parsed_json["definition"].items() if k != "parts" + } + definition["parts"] = [ + { + k: ("redacted_from_log" if k == "payload" else v) + for k, v in part.items() + } + for part in parsed_json["definition"]["parts"] + ] + return {"definition": definition} + + return parsed_json diff --git a/src/fabric_cli/core/fab_parser_setup.py b/src/fabric_cli/core/fab_parser_setup.py index d87fa8530..e65e37c2a 100644 --- a/src/fabric_cli/core/fab_parser_setup.py +++ b/src/fabric_cli/core/fab_parser_setup.py @@ -201,6 +201,7 @@ def create_parser_and_subparsers(): fs_parser.register_pwd_parser(subparsers) # pwd fs_parser.register_open_parser(subparsers) # open fs_parser.register_export_parser(subparsers) # export + fs_parser.register_bulk_export_parser(subparsers) # bulk-export fs_parser.register_import_parser(subparsers) # import fs_parser.register_deploy_parser(subparsers) # deploy fs_parser.register_set_parser(subparsers) # set diff --git a/src/fabric_cli/errors/bulk_export.py b/src/fabric_cli/errors/bulk_export.py new file mode 100644 index 000000000..964548995 --- /dev/null +++ b/src/fabric_cli/errors/bulk_export.py @@ -0,0 +1,34 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + + +class BulkExportErrors: + @staticmethod + def invalid_target(full_name: str) -> str: + return ( + f"'bulk-export' requires a workspace or folder path, but got '{full_name}'" + ) + + @staticmethod + def recursive_flag_required() -> str: + return f"The --recursive flag is required when bulk-exporting a Workspace or Folder" + + @staticmethod + def empty_target(full_name: str) -> str: + return f"No items found in '{full_name}'" + + @staticmethod + def no_exportable_items() -> str: + return "No exportable items found. All items have unsupported types" + + @staticmethod + def invalid_export_path(path: str) -> str: + return f"Export path '{path}' is not a valid directory" + + @staticmethod + def path_mismatch() -> str: + return "The path in the definition payload does not match the expected path based on the item name and type" + + @staticmethod + def path_mismatch_full_export_path() -> str: + return "The full export path of an item doesn't match the expected export path" diff --git a/src/fabric_cli/parsers/fab_fs_parser.py b/src/fabric_cli/parsers/fab_fs_parser.py index 47f780f26..4747e2127 100644 --- a/src/fabric_cli/parsers/fab_fs_parser.py +++ b/src/fabric_cli/parsers/fab_fs_parser.py @@ -57,7 +57,7 @@ def register_ls_parser(subparsers: _SubParsersAction) -> None: ) ls_parser.usage = f"{utils_error_parser.get_usage_prog(ls_parser)}" - ls_parser.set_defaults(func=lazy_command(_fs_module_path, 'ls_command')) + ls_parser.set_defaults(func=lazy_command(_fs_module_path, "ls_command")) # Command for 'mkdir' @@ -81,8 +81,7 @@ def register_mkdir_parser(subparsers: _SubParsersAction) -> None: fab_aliases=mkdir_aliases, fab_learnmore=mkdir_learnmore, ) - mkdir_parser.add_argument( - "path", nargs="+", type=str, help="Directory path") + mkdir_parser.add_argument("path", nargs="+", type=str, help="Directory path") mkdir_parser.add_argument( "-P", "--params", @@ -94,8 +93,7 @@ def register_mkdir_parser(subparsers: _SubParsersAction) -> None: ) mkdir_parser.usage = f"{utils_error_parser.get_usage_prog(mkdir_parser)}" - mkdir_parser.set_defaults(func=lazy_command( - _fs_module_path, 'mkdir_command')) + mkdir_parser.set_defaults(func=lazy_command(_fs_module_path, "mkdir_command")) # Command for 'cd' @@ -116,7 +114,7 @@ def register_cd_parser(subparsers: _SubParsersAction) -> None: cd_parser.add_argument("path", nargs="+", type=str, help="Directory path") cd_parser.usage = f"{utils_error_parser.get_usage_prog(cd_parser)}" - cd_parser.set_defaults(func=lazy_command(_fs_module_path, 'cd_command')) + cd_parser.set_defaults(func=lazy_command(_fs_module_path, "cd_command")) def register_rm_parser(subparsers: _SubParsersAction) -> None: @@ -146,11 +144,11 @@ def register_rm_parser(subparsers: _SubParsersAction) -> None: "--hard", required=False, action="store_true", - help="Permanently deletes the resource. Cannot be recovered. Applies only to item deletions. Optional" + help="Permanently deletes the resource. Cannot be recovered. Applies only to item deletions. Optional", ) rm_parser.usage = f"{utils_error_parser.get_usage_prog(rm_parser)}" - rm_parser.set_defaults(func=lazy_command(_fs_module_path, 'rm_command')) + rm_parser.set_defaults(func=lazy_command(_fs_module_path, "rm_command")) def register_mv_parser(subparsers: _SubParsersAction) -> None: @@ -172,9 +170,7 @@ def register_mv_parser(subparsers: _SubParsersAction) -> None: fab_aliases=mv_aliases, fab_learnmore=["_"], ) - mv_parser.add_argument( - "from_path", nargs="+", type=str, help="Source path" -) + mv_parser.add_argument("from_path", nargs="+", type=str, help="Source path") mv_parser.add_argument("to_path", nargs="+", type=str, help="Target path") mv_parser.add_argument( "-f", @@ -192,7 +188,7 @@ def register_mv_parser(subparsers: _SubParsersAction) -> None: ) mv_parser.usage = f"{utils_error_parser.get_usage_prog(mv_parser)}" - mv_parser.set_defaults(func=lazy_command(_fs_module_path, 'mv_command')) + mv_parser.set_defaults(func=lazy_command(_fs_module_path, "mv_command")) def register_cp_parser(subparsers: _SubParsersAction) -> None: @@ -215,9 +211,7 @@ def register_cp_parser(subparsers: _SubParsersAction) -> None: fab_learnmore=["_"], ) - cp_parser.add_argument( - "from_path", nargs="+", type=str, help="Source path" - ) + cp_parser.add_argument("from_path", nargs="+", type=str, help="Source path") cp_parser.add_argument("to_path", nargs="+", type=str, help="Target path") cp_parser.add_argument( "-f", @@ -242,7 +236,7 @@ def register_cp_parser(subparsers: _SubParsersAction) -> None: ) cp_parser.usage = f"{utils_error_parser.get_usage_prog(cp_parser)}" - cp_parser.set_defaults(func=lazy_command(_fs_module_path, 'cp_command')) + cp_parser.set_defaults(func=lazy_command(_fs_module_path, "cp_command")) # Command for 'exists' @@ -260,12 +254,10 @@ def register_exists_parser(subparsers: _SubParsersAction) -> None: fab_examples=exists_examples, fab_learnmore=["_"], ) - exists_parser.add_argument( - "path", nargs="+", type=str, help="Directory path") + exists_parser.add_argument("path", nargs="+", type=str, help="Directory path") exists_parser.usage = f"{utils_error_parser.get_usage_prog(exists_parser)}" - exists_parser.set_defaults(func=lazy_command( - _fs_module_path, 'exists_command')) + exists_parser.set_defaults(func=lazy_command(_fs_module_path, "exists_command")) # Command for 'pwd' @@ -279,7 +271,7 @@ def register_pwd_parser(subparsers: _SubParsersAction) -> None: ) pwd_parser.usage = f"{utils_error_parser.get_usage_prog(pwd_parser)}" - pwd_parser.set_defaults(func=lazy_command(_fs_module_path, 'pwd_command')) + pwd_parser.set_defaults(func=lazy_command(_fs_module_path, "pwd_command")) # Command for 'open' @@ -297,12 +289,10 @@ def register_open_parser(subparsers: _SubParsersAction) -> None: fab_examples=open_examples, fab_learnmore=["_"], ) - open_parser.add_argument( - "path", nargs="+", type=str, help="Directory path") + open_parser.add_argument("path", nargs="+", type=str, help="Directory path") open_parser.usage = f"{utils_error_parser.get_usage_prog(open_parser)}" - open_parser.set_defaults(func=lazy_command( - _fs_module_path, 'open_command')) + open_parser.set_defaults(func=lazy_command(_fs_module_path, "open_command")) # Command for 'export' @@ -320,8 +310,7 @@ def register_export_parser(subparsers: _SubParsersAction) -> None: fab_examples=export_examples, fab_learnmore=["_"], ) - export_parser.add_argument( - "path", nargs="+", type=str, help="Directory path") + export_parser.add_argument("path", nargs="+", type=str, help="Directory path") export_parser.add_argument( "-o", "--output", @@ -351,8 +340,51 @@ def register_export_parser(subparsers: _SubParsersAction) -> None: ) export_parser.usage = f"{utils_error_parser.get_usage_prog(export_parser)}" - export_parser.set_defaults(func=lazy_command( - _fs_module_path, 'export_command')) + export_parser.set_defaults(func=lazy_command(_fs_module_path, "export_command")) + + +# Command for 'bulk-export' +def register_bulk_export_parser(subparsers: _SubParsersAction) -> None: + bulk_export_examples = [ + "# bulk-export a workspace with folder structure to local", + "$ bulk-export ws1.Workspace -o /tmp --recursive\n", + "# bulk-export a folder recursively", + "$ bulk-export ws1.Workspace/folder1.Folder -o /tmp --recursive\n", + ] + + bulk_export_parser = subparsers.add_parser( + "bulk-export", + help=fab_constant.COMMAND_FS_BULKEXPORT_DESCRIPTION, + fab_examples=bulk_export_examples, + fab_learnmore=["_"], + ) + bulk_export_parser.add_argument("path", nargs="+", type=str, help="Directory path") + bulk_export_parser.add_argument( + "-o", + "--output", + required=True, + help="Output path for bulk-export", + ) + bulk_export_parser.add_argument( + "--recursive", + required=False, + action="store_true", + help="Recursively export folder contents. Required for workspace and folder targets", + ) + bulk_export_parser.add_argument( + "-f", + "--force", + required=False, + action="store_true", + help="Force. Optional, Overrides confirmation prompts. Exports the item definition without the sensitivity label and confirms exporting items to non-empty output location", + ) + + bulk_export_parser.usage = ( + f"{utils_error_parser.get_usage_prog(bulk_export_parser)}" + ) + bulk_export_parser.set_defaults( + func=lazy_command(_fs_module_path, "bulk_export_command") + ) # Command for 'get' @@ -406,7 +438,7 @@ def register_get_parser(subparsers: _SubParsersAction) -> None: ) get_parser.usage = f"{utils_error_parser.get_usage_prog(get_parser)}" - get_parser.set_defaults(func=lazy_command(_fs_module_path, 'get_command')) + get_parser.set_defaults(func=lazy_command(_fs_module_path, "get_command")) # Command for 'import' @@ -444,8 +476,8 @@ def register_import_parser(subparsers: _SubParsersAction) -> None: ) import_parser.usage = f"{utils_error_parser.get_usage_prog(import_parser)}" - import_parser.set_defaults(func=lazy_command( - _fs_module_path, 'import_command')) + import_parser.set_defaults(func=lazy_command(_fs_module_path, "import_command")) + # Command for 'deploy' @@ -455,7 +487,7 @@ def register_deploy_parser(subparsers: _SubParsersAction) -> None: "# deploy fabric items to a workspace using a configuration file and target environment", "$ deploy --config config.yml --target_env dev\n", "# deploy with config file, environment, and optional parameters", - "$ deploy --config config.yml --target_env prod -P '[{\"param1\":\"value1\"}]' -f\n", + '$ deploy --config config.yml --target_env prod -P \'[{"param1":"value1"}]\' -f\n', "# deploy using experimental bulk publish (single bulk import API call)", "$ deploy --config config.yml --target_env dev --bulk_publish", ] @@ -487,7 +519,7 @@ def register_deploy_parser(subparsers: _SubParsersAction) -> None: "--params", type=str, nargs="+", - help="parameters for deployment in JSON format (e.g., '[{\"p1\":\"v1\",\"p2\":\"v2\"}]'). Optional", + help='parameters for deployment in JSON format (e.g., \'[{"p1":"v1","p2":"v2"}]\'). Optional', ) deploy_parser.add_argument( @@ -501,10 +533,10 @@ def register_deploy_parser(subparsers: _SubParsersAction) -> None: help="Experimental. Deploy all items in a single bulk import API call instead of one at a time. Optional", ) - deploy_parser.set_defaults(func=lazy_command( - _fs_module_path, 'deploy_command')) + deploy_parser.set_defaults(func=lazy_command(_fs_module_path, "deploy_command")) deploy_parser.usage = f"{utils_error_parser.get_usage_prog(deploy_parser)}" + # Command for 'set' @@ -538,7 +570,7 @@ def register_set_parser(subparsers: _SubParsersAction) -> None: ) set_parser.usage = f"{utils_error_parser.get_usage_prog(set_parser)}" - set_parser.set_defaults(func=lazy_command(_fs_module_path, 'set_command')) + set_parser.set_defaults(func=lazy_command(_fs_module_path, "set_command")) # Command for 'clear' @@ -598,7 +630,7 @@ def register_ln_parser(subparsers: _SubParsersAction) -> None: ) ln_parser.usage = f"{utils_error_parser.get_usage_prog(ln_parser)}" - ln_parser.set_defaults(func=lazy_command(_fs_module_path, 'ln_command')) + ln_parser.set_defaults(func=lazy_command(_fs_module_path, "ln_command")) # Command for 'start' @@ -616,15 +648,13 @@ def register_start_parser(subparsers: _SubParsersAction) -> None: fab_examples=start_examples, fab_learnmore=["_"], ) - start_parser.add_argument( - "path", nargs="+", type=str, help="Directory path") + start_parser.add_argument("path", nargs="+", type=str, help="Directory path") start_parser.add_argument( "-f", "--force", required=False, action="store_true", help="Force. Optional" ) start_parser.usage = f"{utils_error_parser.get_usage_prog(start_parser)}" - start_parser.set_defaults(func=lazy_command( - _fs_module_path, 'start_command')) + start_parser.set_defaults(func=lazy_command(_fs_module_path, "start_command")) # Command for 'stop' @@ -642,15 +672,13 @@ def register_stop_parser(subparsers: _SubParsersAction) -> None: fab_examples=stop_examples, fab_learnmore=["_"], ) - stop_parser.add_argument( - "path", nargs="+", type=str, help="Directory path") + stop_parser.add_argument("path", nargs="+", type=str, help="Directory path") stop_parser.add_argument( "-f", "--force", required=False, action="store_true", help="Force. Optional" ) stop_parser.usage = f"{utils_error_parser.get_usage_prog(stop_parser)}" - stop_parser.set_defaults(func=lazy_command( - _fs_module_path, 'stop_command')) + stop_parser.set_defaults(func=lazy_command(_fs_module_path, "stop_command")) # Command for 'assign' @@ -668,8 +696,7 @@ def register_assign_parser(subparsers: _SubParsersAction) -> None: fab_examples=assign_examples, fab_learnmore=["_"], ) - assign_parser.add_argument( - "path", nargs="+", type=str, help="Directory path") + assign_parser.add_argument("path", nargs="+", type=str, help="Directory path") assign_parser.add_argument( "-W", "--workspace", @@ -682,8 +709,7 @@ def register_assign_parser(subparsers: _SubParsersAction) -> None: ) assign_parser.usage = f"{utils_error_parser.get_usage_prog(assign_parser)}" - assign_parser.set_defaults(func=lazy_command( - _fs_module_path, 'assign_command')) + assign_parser.set_defaults(func=lazy_command(_fs_module_path, "assign_command")) # Command for 'unassign' @@ -701,8 +727,7 @@ def register_unassign_parser(subparsers: _SubParsersAction) -> None: fab_examples=unassign_examples, fab_learnmore=["_"], ) - unassign_parser.add_argument( - "path", nargs="+", type=str, help="Directory path") + unassign_parser.add_argument("path", nargs="+", type=str, help="Directory path") unassign_parser.add_argument( "-W", "--workspace", @@ -715,8 +740,7 @@ def register_unassign_parser(subparsers: _SubParsersAction) -> None: ) unassign_parser.usage = f"{utils_error_parser.get_usage_prog(unassign_parser)}" - unassign_parser.set_defaults(func=lazy_command( - _fs_module_path, 'unassign_command')) + unassign_parser.set_defaults(func=lazy_command(_fs_module_path, "unassign_command")) # Command for 'clear' diff --git a/src/fabric_cli/utils/fab_cmd_bulk_export_utils.py b/src/fabric_cli/utils/fab_cmd_bulk_export_utils.py new file mode 100644 index 000000000..963cc48c8 --- /dev/null +++ b/src/fabric_cli/utils/fab_cmd_bulk_export_utils.py @@ -0,0 +1,159 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +import os +import json +from typing import TypedDict +from argparse import Namespace + +from fabric_cli.core import fab_constant +from fabric_cli.core.fab_exceptions import FabricCLIError +from fabric_cli.errors.bulk_export import BulkExportErrors +from fabric_cli.core.fab_commands import Command +from fabric_cli.utils import fab_ui +from fabric_cli.core.hiearchy.fab_hiearchy import Item +from fabric_cli.utils import fab_storage +from fabric_cli.utils import fab_cmd_export_utils as utils_export + + +class ContextItemsSupportMap(TypedDict): + supported_items: list[Item] + unsupported_items: list[Item] + + +def is_command_supported(element: Item) -> bool: + return element.check_command_support(Command.FS_BULKEXPORT) + + +def create_bulk_export_payload(item_ids: list[str]) -> str: + if not item_ids: + # If no specific item IDs are provided, the API will export all items + return json.dumps({"items": [], "mode": "All"}) + payload_items = [] + for item_id in item_ids: + item_dict = { + "id": item_id, + } + payload_items.append(item_dict) + + payload = { + "items": payload_items, + "mode": "Selective", + } + + return json.dumps(payload) + + +def export_definition_parts_to_storage( + args: Namespace, + artifact_name: str, + exported_definitions: dict, +) -> None: + item_def = utils_export.decode_payload(exported_definitions) + _strip_parent_folders_from_definition_paths(item_def, args.from_path) + + export_path = fab_storage.get_export_path(args.output) + + _validate_definition_parts_paths_are_under_export_path( + item_def, export_path["path"] + ) + + fab_ui.print_grey(f"Bulk-exporting '{args.from_path}' → '{export_path['path']}'...") + utils_export.export_json_parts( + args, item_def, export_path, definition_parts="definitionParts" + ) + + +def print_bulk_export_summary( + args: Namespace, items_support: ContextItemsSupportMap +) -> None: + output_format_message = ( + f"Exported {len(items_support['supported_items'])} items to '{args.output}'" + ) + unsupported_count = len(items_support["unsupported_items"]) + if unsupported_count > 0: + unsupported_types_count = _count_items_by_type( + items_support["unsupported_items"] + ) + unsupported_types = [ + f"{item_type} ({count})" + for item_type, count in unsupported_types_count.items() + ] + output_format_message += ( + f". Skipped {unsupported_count} items due to unsupported item types: " + f"{', '.join(unsupported_types)}" + ) + fab_ui.print_output_format( + args=args, + data=[ + { + "exported": len(items_support["supported_items"]), + "exported_types": _count_items_by_type( + items_support["supported_items"] + ), + "skipped": len(items_support["unsupported_items"]), + "skipped_types": _count_items_by_type( + items_support["unsupported_items"] + ), + "output": args.output, + } + ], + show_key_value_list=True, + message=output_format_message, + ) + + +def _count_items_by_type(items: list[Item]) -> dict[str, int]: + """Count items grouped by item type.""" + counts: dict[str, int] = {} + for item in items: + item_type = str(item.item_type) + counts[item_type] = counts.get(item_type, 0) + 1 + return counts + + +def _strip_parent_folders_from_definition_paths(item_def: dict, from_path: str) -> None: + """Remove the parent prefix from each part's path so only the bulk-export target remains. + + For example, if from_path is "myws.Workspace/f1.Folder/f2.Folder/n1.Notebook", the + workspace segment is skipped (not part of definitionParts paths) and the prefix + "/f1/f2/" is stripped from each definition part path (folder names without .Folder suffix). + """ + # Strip the workspace segment (first component) since definitionParts paths don't include it + parts = from_path.split("/", 1) + if len(parts) < 2: # workspace export, whole path is relevant, no prefix to strip + return + path_without_ws = parts[1] + + parent_dir = path_without_ws.rsplit("/", 1)[0] if "/" in path_without_ws else "" + if not parent_dir: # First folder level, no parent directory to strip, return early + return + + # Remove ".Folder" suffix from each segment since definitionParts paths use plain folder names + segments = parent_dir.split("/") + segments = [seg.removesuffix(".Folder") for seg in segments] + prefix = "/" + "/".join(segments) + "/" + + for part in item_def.get("definitionParts", []): + path = part.get("path", "") + if path.startswith(prefix): + part["path"] = "/" + path[len(prefix) :] + else: + raise FabricCLIError( + BulkExportErrors.path_mismatch(), + fab_constant.ERROR_INVALID_DEFINITION_PAYLOAD, + ) + + +def _validate_definition_parts_paths_are_under_export_path( + item_def: dict, export_path: str +) -> None: + """Validate that all definition part paths concatenated with the export path are under the export path to prevent path traversal issues.""" + for part in item_def.get("definitionParts", []): + part_path = part.get("path", "").lstrip("/") + full_export_path = os.path.abspath(os.path.join(export_path, part_path)) + if not full_export_path.startswith(os.path.abspath(export_path) + os.sep): + raise FabricCLIError( + BulkExportErrors.path_mismatch_full_export_path(), + fab_constant.ERROR_INVALID_DEFINITION_PAYLOAD, + ) diff --git a/src/fabric_cli/utils/fab_cmd_export_utils.py b/src/fabric_cli/utils/fab_cmd_export_utils.py index 9dacc65b1..fa71dc84a 100644 --- a/src/fabric_cli/utils/fab_cmd_export_utils.py +++ b/src/fabric_cli/utils/fab_cmd_export_utils.py @@ -10,47 +10,53 @@ def decode_payload(item_def: dict) -> dict: # Check if item_def has the required structure - if "definition" in item_def and "parts" in item_def["definition"]: - for part in item_def["definition"]["parts"]: + parts = ( + item_def["definition"]["parts"] + if "definition" in item_def and "parts" in item_def["definition"] + else item_def.get("definitionParts", []) + ) - # Check if the part has a payload that needs decoding - if "payload" in part: - payload_base64 = part["payload"] + for part in parts: + # Check if the part has a payload that needs decoding + if "payload" in part: + payload_base64 = part["payload"] - if payload_base64: - path = part.get("path", "") + if payload_base64: + path = part.get("path", "") - try: - decoded_bytes = base64.b64decode(payload_base64) + try: + decoded_bytes = base64.b64decode(payload_base64) - try: - decoded_payload = decoded_bytes.decode("utf-8") + try: + decoded_payload = decoded_bytes.decode("utf-8") - # If it's a JSON file, parse it - if path.endswith( - (".json", ".ipynb", ".pbir", ".platform", ".pbism") - ): - decoded_payload = json.loads(decoded_payload) - except UnicodeDecodeError: - # If it's binary, store the raw bytes - decoded_payload = decoded_bytes # type: ignore[assignment] + # If it's a JSON file, parse it + if path.endswith( + (".json", ".ipynb", ".pbir", ".platform", ".pbism") + ): + decoded_payload = json.loads(decoded_payload) + except UnicodeDecodeError: + # If it's binary, store the raw bytes + decoded_payload = decoded_bytes # type: ignore[assignment] - part["payload"] = decoded_payload - part["payloadType"] = "DecodeBase64" + part["payload"] = decoded_payload + part["payloadType"] = "DecodeBase64" - except Exception as e: - part["error"] = f"Decoding error: {e}" + except Exception as e: + part["error"] = f"Decoding error: {e}" - # Recursively check for nested parts if applicable - if ( - "nested_parts" in part - ): # Assuming 'nested_parts' is a key for potential nested structures - decode_payload(part) + # Recursively check for nested parts if applicable + if ( + "nested_parts" in part + ): # Assuming 'nested_parts' is a key for potential nested structures + decode_payload(part) return item_def -def export_json_parts(args, definition: dict, export_path: dict) -> None: +def export_json_parts( + args, definition: dict, export_path: dict, definition_parts="parts" +) -> None: """ Export each 'payload' in the 'parts' array to a file named based on 'path' in 'parts'. The 'payload' content will be saved as the file's content. @@ -61,7 +67,7 @@ def export_json_parts(args, definition: dict, export_path: dict) -> None: if not os.path.exists(original_path): os.makedirs(original_path) - parts = definition.get("parts", []) + parts = definition.get(definition_parts, []) for part in parts: path = part.get("path", "").lstrip( "/" diff --git a/src/fabric_cli/utils/fab_commands.py b/src/fabric_cli/utils/fab_commands.py index 8b2f1a74f..35883f04a 100644 --- a/src/fabric_cli/utils/fab_commands.py +++ b/src/fabric_cli/utils/fab_commands.py @@ -7,6 +7,7 @@ COMMANDS = { "Core Commands": { "assign": "Assign a capacity or resource to a workspace.", + "bulk-export": "Export a workspace or folder in bulk while preserving folder structure and item bindings.", "cd": "Change to a workspace, item, or folder.", get_os_specific_command("cp"): "Copy an item or file to a destination.", "export": "Export an item.", diff --git a/tests/test_commands/commands_parser.py b/tests/test_commands/commands_parser.py index db66f60b1..5569c8ca4 100644 --- a/tests/test_commands/commands_parser.py +++ b/tests/test_commands/commands_parser.py @@ -14,6 +14,7 @@ ) from fabric_cli.parsers.fab_fs_parser import ( register_assign_parser, + register_bulk_export_parser, register_cd_parser, register_cp_parser, register_deploy_parser, @@ -65,6 +66,7 @@ register_rm_parser, register_mkdir_parser, register_jobs_parser, + register_bulk_export_parser, ] diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/class_setup.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/class_setup.yaml new file mode 100644 index 000000000..ca3db36e5 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/class_setup.yaml @@ -0,0 +1,358 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli/1.6.1 (None; Linux/5.15.167.4-microsoft-standard-WSL2; Python/3.12.11) + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3462' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:06 GMT + Pragma: + - no-cache + RequestId: + - 7a5dfec1-6b77-4b75-8075-27d5520e550d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli/1.6.1 (None; Linux/5.15.167.4-microsoft-standard-WSL2; Python/3.12.11) + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3462' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:07 GMT + Pragma: + - no-cache + RequestId: + - 8b69285b-3de3-4bd9-9de3-d89dd7ddae00 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli/1.6.1 (None; Linux/5.15.167.4-microsoft-standard-WSL2; Python/3.12.11) + method: GET + uri: https://api.fabric.microsoft.com/v1/capacities + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000004", "displayName": + "mocked_fabriccli_capacity_name", "sku": "F16", "region": "Central US", "state": + "Active"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '462' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:10 GMT + Pragma: + - no-cache + RequestId: + - d196693c-f849-4178-85e3-d0f1aa61ac33 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabriccli_WorkspacePerTestclass_000001", "capacityId": + "00000000-0000-0000-0000-000000000004"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '124' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli/1.6.1 (None; Linux/5.15.167.4-microsoft-standard-WSL2; Python/3.12.11) + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", "displayName": "fabriccli_WorkspacePerTestclass_000001", + "description": "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '194' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:18 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585 + Pragma: + - no-cache + RequestId: + - 5df85a55-dc84-47c9-b3ee-66e115ab6dcf + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli/1.6.1 (bulk-export; Linux/5.15.167.4-microsoft-standard-WSL2; + Python/3.12.11) + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:58 GMT + Pragma: + - no-cache + RequestId: + - b279eb17-654c-4843-b8b2-4d565663f53d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli/1.6.1 (bulk-export; Linux/5.15.167.4-microsoft-standard-WSL2; + Python/3.12.11) + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:59 GMT + Pragma: + - no-cache + RequestId: + - 95524f0b-8605-465c-b16a-dd3474e2cf93 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli/1.6.1 (bulk-export; Linux/5.15.167.4-microsoft-standard-WSL2; + Python/3.12.11) + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:23:59 GMT + Pragma: + - no-cache + RequestId: + - 446a6aa9-a020-438f-87fa-d0596c6a09d8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_and_deploy_round_trip.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_and_deploy_round_trip.yaml new file mode 100644 index 000000000..2c7b847b2 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_and_deploy_round_trip.yaml @@ -0,0 +1,3655 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:48 GMT + Pragma: + - no-cache + RequestId: + - 36321f76-92df-4a1f-b22e-fc370df79e93 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:49 GMT + Pragma: + - no-cache + RequestId: + - eecfb8c3-badc-4826-aba2-7cdf738f6f0c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/capacities + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000004", "displayName": + "mocked_fabriccli_capacity_name", "sku": "F16", "region": "Central US", "state": + "Active"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '467' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:54 GMT + Pragma: + - no-cache + RequestId: + - d84d26eb-0643-4eb5-be3f-316681d69ecd + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '89' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"id": "74af69a8-69db-49be-8208-2b314342d0ae", "displayName": "fabcli000001", + "description": "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '174' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:02 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae + Pragma: + - no-cache + RequestId: + - e3a975de-b45f-41a5-bf85-c7a92faee462 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3535' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:02 GMT + Pragma: + - no-cache + RequestId: + - c0925f65-70cb-47b4-a227-0acfc6560883 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3535' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:02 GMT + Pragma: + - no-cache + RequestId: + - 7ccdd5d8-5022-4fdd-97b1-3ef0b716b10a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/capacities + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000004", "displayName": + "mocked_fabriccli_capacity_name", "sku": "F16", "region": "Central US", "state": + "Active"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '467' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:07 GMT + Pragma: + - no-cache + RequestId: + - abdab334-b4eb-46e7-8fca-da6cf5e99388 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000002", "capacityId": "00000000-0000-0000-0000-000000000004"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '89' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"id": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", + "description": "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '174' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:14 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab + Pragma: + - no-cache + RequestId: + - c275e463-8caf-46dc-b510-f365573802f9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}, {"id": + "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", "description": + "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3572' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:15 GMT + Pragma: + - no-cache + RequestId: + - b2a94bc5-c0fb-424a-bb63-e82a8e504cfe + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:15 GMT + Pragma: + - no-cache + RequestId: + - 54c68632-efa9-46cf-a30d-b9271bf83698 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:15 GMT + Pragma: + - no-cache + RequestId: + - 0d393a10-3c9e-4b00-ac07-3f6388a35c26 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000003"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '35' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders + response: + body: + string: '{"id": "b4432020-43d1-44e5-a43f-7f38195e16f3", "displayName": "fabcli000003", + "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '133' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:16 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders/b4432020-43d1-44e5-a43f-7f38195e16f3 + Pragma: + - no-cache + RequestId: + - e118de50-59a3-4498-a88f-9a0590a343de + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}, {"id": + "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", "description": + "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3572' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:16 GMT + Pragma: + - no-cache + RequestId: + - ef2490ce-2978-44f4-8991-33778a10c8ef + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:16 GMT + Pragma: + - no-cache + RequestId: + - be5108e4-29b3-4d6b-b4ba-90fa70eeff1b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:17 GMT + Pragma: + - no-cache + RequestId: + - 458a913b-9c0b-4db9-a404-ec3bfbd3a181 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000004", "type": "Notebook", "folderId": null, "definition": + {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '731' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:19 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/1ef1722c-1a26-4029-9b07-d8c78e1d8a22 + Pragma: + - no-cache + RequestId: + - 6fbc0caf-8868-4250-a30d-ceaa7d97cd76 + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 1ef1722c-1a26-4029-9b07-d8c78e1d8a22 + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/1ef1722c-1a26-4029-9b07-d8c78e1d8a22 + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:22:18.851239", + "lastUpdatedTimeUtc": "2026-07-20T10:22:20.5062653", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:39 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/1ef1722c-1a26-4029-9b07-d8c78e1d8a22/result + Pragma: + - no-cache + RequestId: + - 2ca8fde5-1228-40e0-afcc-d0c699fd7530 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 1ef1722c-1a26-4029-9b07-d8c78e1d8a22 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/1ef1722c-1a26-4029-9b07-d8c78e1d8a22/result + response: + body: + string: '{"id": "347a2755-b988-4c18-8fbc-d167a80d71a1", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:22:39 GMT + Pragma: + - no-cache + RequestId: + - 0222aa50-ddb3-4a59-988a-1b8004e25170 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}, {"id": + "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", "description": + "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3572' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:40 GMT + Pragma: + - no-cache + RequestId: + - 7bacccd7-aa1a-4a5b-94e7-792dbaff22a1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders?recursive=True + response: + body: + string: '{"value": [{"id": "b4432020-43d1-44e5-a43f-7f38195e16f3", "displayName": + "fabcli000003", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:41 GMT + Pragma: + - no-cache + RequestId: + - 24f1e915-765f-4a16-8fe9-6cc29700cd75 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items + response: + body: + string: '{"value": [{"id": "347a2755-b988-4c18-8fbc-d167a80d71a1", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '166' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:41 GMT + Pragma: + - no-cache + RequestId: + - 71b7508d-bc78-4d47-93f7-1340183cde15 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items + response: + body: + string: '{"value": [{"id": "347a2755-b988-4c18-8fbc-d167a80d71a1", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '166' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:42 GMT + Pragma: + - no-cache + RequestId: + - 32b2a34a-1c3a-4c52-a2b9-ed7e34395c28 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000005", "type": "DataPipeline", "folderId": "b4432020-43d1-44e5-a43f-7f38195e16f3"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '111' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/dataPipelines + response: + body: + string: '{"id": "1201e3c7-2378-4875-a0b2-d91a925bfe80", "type": "DataPipeline", + "displayName": "fabcli000005", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae", + "folderId": "b4432020-43d1-44e5-a43f-7f38195e16f3"}' + headers: + Access-Control-Expose-Headers: + - RequestId,ETag + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '190' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:47 GMT + ETag: + - '""' + Pragma: + - no-cache + RequestId: + - cab080d0-ff54-4202-8096-b102913be116 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}, {"id": + "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", "description": + "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3572' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:48 GMT + Pragma: + - no-cache + RequestId: + - 24049dd0-6400-4dfc-b3d4-68dffe3441cd + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items + response: + body: + string: '{"value": [{"id": "347a2755-b988-4c18-8fbc-d167a80d71a1", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}, + {"id": "1201e3c7-2378-4875-a0b2-d91a925bfe80", "type": "DataPipeline", "displayName": + "fabcli000005", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae", + "folderId": "b4432020-43d1-44e5-a43f-7f38195e16f3"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '252' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:48 GMT + Pragma: + - no-cache + RequestId: + - abd46f9a-41bd-4f9e-93da-d1636bc0101b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders?recursive=True + response: + body: + string: '{"value": [{"id": "b4432020-43d1-44e5-a43f-7f38195e16f3", "displayName": + "fabcli000003", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:49 GMT + Pragma: + - no-cache + RequestId: + - a76b8180-532d-44f1-a6d3-ada9a70bff89 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"items": [], "mode": "All"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '28' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items/bulkExportDefinitions?beta=true + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:22:49 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/8b07c7a4-24e3-4223-99b5-26f65ebc4a3b + Pragma: + - no-cache + RequestId: + - becd3696-f438-4dd7-ac9a-700a79f76d18 + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 8b07c7a4-24e3-4223-99b5-26f65ebc4a3b + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/8b07c7a4-24e3-4223-99b5-26f65ebc4a3b + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:22:50.6409902", + "lastUpdatedTimeUtc": "2026-07-20T10:22:52.5102233", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '130' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:10 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/8b07c7a4-24e3-4223-99b5-26f65ebc4a3b/result + Pragma: + - no-cache + RequestId: + - 39c12b7b-9937-4abd-b36d-27c4b0c08ae8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 8b07c7a4-24e3-4223-99b5-26f65ebc4a3b + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/8b07c7a4-24e3-4223-99b5-26f65ebc4a3b/result + response: + body: + string: '{"itemDefinitionsIndex": [{"id": "347a2755-b988-4c18-8fbc-d167a80d71a1", + "rootPath": "/fabcli000004.Notebook"}, {"id": "1201e3c7-2378-4875-a0b2-d91a925bfe80", + "rootPath": "/fabcli000003/fabcli000005.DataPipeline"}], "definitionParts": + [{"path": "/fabcli000004.Notebook/.platform", "payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIk5vdGVib29rIiwKICAgICJkaXNwbGF5TmFtZSI6ICJmYWJjbGk5MGJqanN3NTdtIgogIH0sCiAgImNvbmZpZyI6IHsKICAgICJ2ZXJzaW9uIjogIjIuMCIsCiAgICAibG9naWNhbElkIjogImE4MGQ3MWExLWQxNjctOGZiYy00YzE4LWI5ODgzNDdhMjc1NSIKICB9Cn0=", + "payloadType": "InlineBase64"}, {"path": "/fabcli000004.Notebook/notebook-content.py", + "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}, {"path": "/fabcli000003/fabcli000005.DataPipeline/.platform", + "payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIkRhdGFQaXBlbGluZSIsCiAgICAiZGlzcGxheU5hbWUiOiAiZmFiY2xpbTNzbHI1aG84MSIKICB9LAogICJjb25maWciOiB7CiAgICAidmVyc2lvbiI6ICIyLjAiLAogICAgImxvZ2ljYWxJZCI6ICI5MjViZmU4MC1kOTFhLWEwYjItNDg3NS0yMzc4MTIwMWUzYzciCiAgfQp9", + "payloadType": "InlineBase64"}, {"path": "/fabcli000003/fabcli000005.DataPipeline/pipeline-content.json", + "payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==", + "payloadType": "InlineBase64"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:23:11 GMT + Pragma: + - no-cache + RequestId: + - d3265ef7-4a45-4940-9daa-eb4ab8694eaf + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items + response: + body: + string: '{"value": [{"id": "347a2755-b988-4c18-8fbc-d167a80d71a1", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}, + {"id": "1201e3c7-2378-4875-a0b2-d91a925bfe80", "type": "DataPipeline", "displayName": + "fabcli000005", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae", + "folderId": "b4432020-43d1-44e5-a43f-7f38195e16f3"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '252' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:11 GMT + Pragma: + - no-cache + RequestId: + - fd758637-57c8-4d76-a3b5-5e62905d06fd + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders?recursive=True + response: + body: + string: '{"value": [{"id": "b4432020-43d1-44e5-a43f-7f38195e16f3", "displayName": + "fabcli000003", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:12 GMT + Pragma: + - no-cache + RequestId: + - 78bbf123-5f25-4301-aaca-423cc5d36053 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.powerbi.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}, {"id": + "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", "description": + "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3572' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:12 GMT + Pragma: + - no-cache + RequestId: + - 7303b514-e396-429f-945c-8614da5676a1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.powerbi.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab + response: + body: + string: '{"id": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", + "description": "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US", "oneLakeEndpoints": {"blobEndpoint": "https://centralus-onelake.blob.fabric.microsoft.com", + "dfsEndpoint": "https://centralus-onelake.dfs.fabric.microsoft.com"}, "capacityAssignmentProgress": + "Completed"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '265' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:13 GMT + Pragma: + - no-cache + RequestId: + - e3e1ea0b-bd61-4138-8903-f79c815ea640 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.powerbi.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/folders + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:13 GMT + Pragma: + - no-cache + RequestId: + - 9461ec97-1f39-4ad7-9e14-d23c3958e717 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000003"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '35' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.powerbi.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/folders + response: + body: + string: '{"id": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425", "displayName": "fabcli000003", + "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '130' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:14 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/folders/671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425 + Pragma: + - no-cache + RequestId: + - 1d0f4c81-2374-4a53-8786-c466ffb519c1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.powerbi.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:14 GMT + Pragma: + - no-cache + RequestId: + - f978a3f7-c550-4cb9-af24-62dfe3b38caa + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000004", "type": "Notebook", "description": "", + "definition": {"parts": [{"path": ".platform", "payload": "ewogICAgIiRzY2hlbWEiOiAiaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9qc29uLXNjaGVtYXMvZmFicmljL2dpdEludGVncmF0aW9uL3BsYXRmb3JtUHJvcGVydGllcy8yLjAuMC9zY2hlbWEuanNvbiIsCiAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgInR5cGUiOiAiTm90ZWJvb2siLAogICAgICAgICJkaXNwbGF5TmFtZSI6ICJmYWJjbGkwMDAwMDQiCiAgICB9LAogICAgImNvbmZpZyI6IHsKICAgICAgICAidmVyc2lvbiI6ICIyLjAiLAogICAgICAgICJsb2dpY2FsSWQiOiAiYTgwZDcxYTEtZDE2Ny04ZmJjLTRjMTgtYjk4ODM0N2EyNzU1IgogICAgfQp9", + "payloadType": "InlineBase64"}, {"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}, "folderId": ""}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1257' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.powerbi.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/items + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:15 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2cee391c-ccc7-4323-9bd6-03e3d0eb8261 + Pragma: + - no-cache + RequestId: + - 82fccc1b-8b16-4911-bb37-2854a389ff70 + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 2cee391c-ccc7-4323-9bd6-03e3d0eb8261 + status: + code: 202 + message: Accepted +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2cee391c-ccc7-4323-9bd6-03e3d0eb8261 + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:23:15.7100834", + "lastUpdatedTimeUtc": "2026-07-20T10:23:16.780158", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '129' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:17 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2cee391c-ccc7-4323-9bd6-03e3d0eb8261/result + Pragma: + - no-cache + RequestId: + - 478132ab-108d-4d60-95cf-8876aea98953 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 2cee391c-ccc7-4323-9bd6-03e3d0eb8261 + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2cee391c-ccc7-4323-9bd6-03e3d0eb8261/result + response: + body: + string: '{"id": "303c8953-dd1f-4012-9f89-c82993e62e31", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:23:17 GMT + Pragma: + - no-cache + RequestId: + - cda662f9-eec4-499f-aa46-5976f6b10cd2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.powerbi.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/items + response: + body: + string: '{"value": [{"id": "303c8953-dd1f-4012-9f89-c82993e62e31", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '165' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:18 GMT + Pragma: + - no-cache + RequestId: + - 7568c232-3f62-44a1-a4cf-184822f15e8f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000005", "type": "DataPipeline", "description": + "", "definition": {"parts": [{"path": ".platform", "payload": "ewogICAgIiRzY2hlbWEiOiAiaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9qc29uLXNjaGVtYXMvZmFicmljL2dpdEludGVncmF0aW9uL3BsYXRmb3JtUHJvcGVydGllcy8yLjAuMC9zY2hlbWEuanNvbiIsCiAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgInR5cGUiOiAiRGF0YVBpcGVsaW5lIiwKICAgICAgICAiZGlzcGxheU5hbWUiOiAiZmFiY2xpMDAwMDA1IgogICAgfSwKICAgICJjb25maWciOiB7CiAgICAgICAgInZlcnNpb24iOiAiMi4wIiwKICAgICAgICAibG9naWNhbElkIjogIjkyNWJmZTgwLWQ5MWEtYTBiMi00ODc1LTIzNzgxMjAxZTNjNyIKICAgIH0KfQ==", + "payloadType": "InlineBase64"}, {"path": "pipeline-content.json", "payload": + "ewogICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImFjdGl2aXRpZXMiOiBbXQogICAgfQp9", + "payloadType": "InlineBase64"}]}, "folderId": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '823' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.powerbi.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/items + response: + body: + string: '{"id": "2673c334-769f-4cfc-82ae-c6b55ddb9f15", "type": "DataPipeline", + "displayName": "fabcli000005", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", + "folderId": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425"}' + headers: + Access-Control-Expose-Headers: + - RequestId,ETag + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '187' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:24 GMT + ETag: + - '""' + Pragma: + - no-cache + RequestId: + - 585ee604-061f-43ad-8de6-5bd8377e302a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.powerbi.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/items + response: + body: + string: '{"value": [{"id": "303c8953-dd1f-4012-9f89-c82993e62e31", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}, + {"id": "2673c334-769f-4cfc-82ae-c6b55ddb9f15", "type": "DataPipeline", "displayName": + "fabcli000005", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", + "folderId": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '252' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:25 GMT + Pragma: + - no-cache + RequestId: + - 9d983379-2968-4475-9879-17f27e808087 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.powerbi.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/items + response: + body: + string: '{"value": [{"id": "303c8953-dd1f-4012-9f89-c82993e62e31", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}, + {"id": "2673c334-769f-4cfc-82ae-c6b55ddb9f15", "type": "DataPipeline", "displayName": + "fabcli000005", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", + "folderId": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '252' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:25 GMT + Pragma: + - no-cache + RequestId: + - b604fe3c-d3c4-4fa9-81ac-8f742fbeba33 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json; charset=utf-8 + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.powerbi.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/folders + response: + body: + string: '{"value": [{"id": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425", "displayName": + "fabcli000003", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:25 GMT + Pragma: + - no-cache + RequestId: + - 2d460d40-2efd-4c5c-95ba-95b52c0bb006 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}, {"id": + "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", "description": + "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3572' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:26 GMT + Pragma: + - no-cache + RequestId: + - c2c0dc88-2035-46a6-a4b1-52792a0a792e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/items + response: + body: + string: '{"value": [{"id": "303c8953-dd1f-4012-9f89-c82993e62e31", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}, + {"id": "2673c334-769f-4cfc-82ae-c6b55ddb9f15", "type": "DataPipeline", "displayName": + "fabcli000005", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", + "folderId": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '252' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:27 GMT + Pragma: + - no-cache + RequestId: + - 303d1de1-489d-41bb-9161-919e03f3ed66 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/folders?recursive=True + response: + body: + string: '{"value": [{"id": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425", "displayName": + "fabcli000003", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:27 GMT + Pragma: + - no-cache + RequestId: + - d84dba89-801f-4c06-814a-aa2955d15d0d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"items": [], "mode": "All"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '28' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/items/bulkExportDefinitions?beta=true + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:27 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/7daad56d-1015-4c08-bf31-a709cdafcec4 + Pragma: + - no-cache + RequestId: + - fc764615-b473-46ee-a258-d7205b0008dc + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 7daad56d-1015-4c08-bf31-a709cdafcec4 + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/7daad56d-1015-4c08-bf31-a709cdafcec4 + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:23:28.6131098", + "lastUpdatedTimeUtc": "2026-07-20T10:23:30.5404974", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '132' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:48 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/7daad56d-1015-4c08-bf31-a709cdafcec4/result + Pragma: + - no-cache + RequestId: + - ca6b43ae-df97-4644-8da7-8556a67e696f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 7daad56d-1015-4c08-bf31-a709cdafcec4 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/7daad56d-1015-4c08-bf31-a709cdafcec4/result + response: + body: + string: '{"itemDefinitionsIndex": [{"id": "303c8953-dd1f-4012-9f89-c82993e62e31", + "rootPath": "/fabcli000004.Notebook"}, {"id": "2673c334-769f-4cfc-82ae-c6b55ddb9f15", + "rootPath": "/fabcli000003/fabcli000005.DataPipeline"}], "definitionParts": + [{"path": "/fabcli000004.Notebook/.platform", "payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIk5vdGVib29rIiwKICAgICJkaXNwbGF5TmFtZSI6ICJmYWJjbGk5MGJqanN3NTdtIiwKICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgfSwKICAiY29uZmlnIjogewogICAgInZlcnNpb24iOiAiMi4wIiwKICAgICJsb2dpY2FsSWQiOiAiOTNlNjJlMzEtYzgyOS05Zjg5LTQwMTItZGQxZjMwM2M4OTUzIgogIH0KfQ==", + "payloadType": "InlineBase64"}, {"path": "/fabcli000004.Notebook/notebook-content.py", + "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}, {"path": "/fabcli000003/fabcli000005.DataPipeline/.platform", + "payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIkRhdGFQaXBlbGluZSIsCiAgICAiZGlzcGxheU5hbWUiOiAiZmFiY2xpbTNzbHI1aG84MSIsCiAgICAiZGVzY3JpcHRpb24iOiAiIgogIH0sCiAgImNvbmZpZyI6IHsKICAgICJ2ZXJzaW9uIjogIjIuMCIsCiAgICAibG9naWNhbElkIjogIjVkZGI5ZjE1LWM2YjUtODJhZS00Y2ZjLTc2OWYyNjczYzMzNCIKICB9Cn0=", + "payloadType": "InlineBase64"}, {"path": "/fabcli000003/fabcli000005.DataPipeline/pipeline-content.json", + "payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==", + "payloadType": "InlineBase64"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:23:49 GMT + Pragma: + - no-cache + RequestId: + - 79e35cd9-1b40-441b-9e80-a4309dc55491 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/items + response: + body: + string: '{"value": [{"id": "303c8953-dd1f-4012-9f89-c82993e62e31", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}, + {"id": "2673c334-769f-4cfc-82ae-c6b55ddb9f15", "type": "DataPipeline", "displayName": + "fabcli000005", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", + "folderId": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '252' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:49 GMT + Pragma: + - no-cache + RequestId: + - 0383a364-0fa8-4a9d-9a4d-d64c1cd47083 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/folders?recursive=True + response: + body: + string: '{"value": [{"id": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425", "displayName": + "fabcli000003", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:49 GMT + Pragma: + - no-cache + RequestId: + - 3fafd3fc-5b8e-4b5f-b87e-c6af2b5f7971 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}, {"id": + "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", "description": + "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3572' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:50 GMT + Pragma: + - no-cache + RequestId: + - 72c67cc2-4532-4edd-a181-fafe46d841a4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders?recursive=True + response: + body: + string: '{"value": [{"id": "b4432020-43d1-44e5-a43f-7f38195e16f3", "displayName": + "fabcli000003", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:51 GMT + Pragma: + - no-cache + RequestId: + - 64f4227c-4398-462d-9067-3da4a090074e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items + response: + body: + string: '{"value": [{"id": "347a2755-b988-4c18-8fbc-d167a80d71a1", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}, + {"id": "1201e3c7-2378-4875-a0b2-d91a925bfe80", "type": "DataPipeline", "displayName": + "fabcli000005", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae", + "folderId": "b4432020-43d1-44e5-a43f-7f38195e16f3"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '252' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:51 GMT + Pragma: + - no-cache + RequestId: + - 142c8624-29e8-4277-a52b-ac2a8d56682c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders?recursive=True + response: + body: + string: '{"value": [{"id": "b4432020-43d1-44e5-a43f-7f38195e16f3", "displayName": + "fabcli000003", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:51 GMT + Pragma: + - no-cache + RequestId: + - 5ac6611f-2175-4664-b421-10d0a0de4e1f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items/1201e3c7-2378-4875-a0b2-d91a925bfe80 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:23:51 GMT + Pragma: + - no-cache + RequestId: + - 9891ef26-89c6-4a51-805b-701942f3f934 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}, {"id": + "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", "description": + "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3572' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:52 GMT + Pragma: + - no-cache + RequestId: + - d6eb2fa7-1973-4884-a68c-ebbbe2ce79f3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items + response: + body: + string: '{"value": [{"id": "347a2755-b988-4c18-8fbc-d167a80d71a1", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '166' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:53 GMT + Pragma: + - no-cache + RequestId: + - 41681eec-5ef1-440f-9e98-28a272534114 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items/347a2755-b988-4c18-8fbc-d167a80d71a1 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:23:53 GMT + Pragma: + - no-cache + RequestId: + - 0d00b613-22aa-408b-9701-f284adc6f7ce + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}, {"id": + "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", "description": + "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3572' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:53 GMT + Pragma: + - no-cache + RequestId: + - 30456f85-64a2-4201-a249-91b363e24278 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders?recursive=True + response: + body: + string: '{"value": [{"id": "b4432020-43d1-44e5-a43f-7f38195e16f3", "displayName": + "fabcli000003", "workspaceId": "74af69a8-69db-49be-8208-2b314342d0ae"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:53 GMT + Pragma: + - no-cache + RequestId: + - 61d2adf5-559b-4a7c-a774-6df399a9f203 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/folders/b4432020-43d1-44e5-a43f-7f38195e16f3 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:23:54 GMT + Pragma: + - no-cache + RequestId: + - b8d3b57f-9a4b-4daf-bc79-d798aaa23049 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "74af69a8-69db-49be-8208-2b314342d0ae", + "displayName": "fabcli000001", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}, {"id": + "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", "displayName": "fabcli000002", "description": + "", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3572' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:55 GMT + Pragma: + - no-cache + RequestId: + - d1382c7b-3e23-4b27-bd3d-0e6ccfcbe522 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:55 GMT + Pragma: + - no-cache + RequestId: + - 476174d3-dcbd-4ca3-a421-77d94406dc9e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/74af69a8-69db-49be-8208-2b314342d0ae + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:23:56 GMT + Pragma: + - no-cache + RequestId: + - 4ee31376-1bb2-4603-959c-75d0a750ecba + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}, {"id": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", + "displayName": "fabcli000002", "description": "", "type": "Workspace", "capacityId": + "00000000-0000-0000-0000-000000000004", "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3536' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:56 GMT + Pragma: + - no-cache + RequestId: + - a7493126-0220-4b82-95c1-3eadf116fe4f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/items + response: + body: + string: '{"value": [{"id": "303c8953-dd1f-4012-9f89-c82993e62e31", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}, + {"id": "2673c334-769f-4cfc-82ae-c6b55ddb9f15", "type": "DataPipeline", "displayName": + "fabcli000005", "description": "", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab", + "folderId": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '252' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:57 GMT + Pragma: + - no-cache + RequestId: + - 553a5a75-b1ec-44f7-816c-98a54bd539e1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab/folders?recursive=True + response: + body: + string: '{"value": [{"id": "671e783d-a6fe-4dc5-aa3c-bdf9b0d8c425", "displayName": + "fabcli000003", "workspaceId": "c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:23:57 GMT + Pragma: + - no-cache + RequestId: + - a2f97c54-15fc-4914-9983-22b640ca5b12 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/c1a99653-23eb-4aa3-bb4c-f2e9451ca0ab + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:23:57 GMT + Pragma: + - no-cache + RequestId: + - 46ea9c13-9171-4f5e-9217-76bd21bb157c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_empty_folder_fail.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_empty_folder_fail.yaml new file mode 100644 index 000000000..ca1054542 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_empty_folder_fail.yaml @@ -0,0 +1,552 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:40 GMT + Pragma: + - no-cache + RequestId: + - 3d870074-71b9-4d76-a20f-9846241d8547 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:40 GMT + Pragma: + - no-cache + RequestId: + - 48e70905-4c21-4067-bfcc-d8b383757768 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:41 GMT + Pragma: + - no-cache + RequestId: + - 231072bb-1b00-43d5-9763-487112e9d74d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '35' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders + response: + body: + string: '{"id": "1b856804-3e0e-44fd-be86-cf2450978ad4", "displayName": "fabcli000001", + "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '134' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:41 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/1b856804-3e0e-44fd-be86-cf2450978ad4 + Pragma: + - no-cache + RequestId: + - 70f7bc2f-7ed8-4644-9835-59cb25288cf7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:42 GMT + Pragma: + - no-cache + RequestId: + - 95c9c660-081d-43d9-8960-1c240c443246 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "1b856804-3e0e-44fd-be86-cf2450978ad4", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:42 GMT + Pragma: + - no-cache + RequestId: + - a05ac95b-cac2-489b-8004-874de5455c13 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:43 GMT + Pragma: + - no-cache + RequestId: + - 3966728c-41ee-4b24-af06-9caef9c110cb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "1b856804-3e0e-44fd-be86-cf2450978ad4", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:44 GMT + Pragma: + - no-cache + RequestId: + - 9edb732e-e075-46c2-bf9c-230f7e02cf10 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:44 GMT + Pragma: + - no-cache + RequestId: + - 99349ac5-c3c7-4875-9254-0401bf7b02ea + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "1b856804-3e0e-44fd-be86-cf2450978ad4", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:45 GMT + Pragma: + - no-cache + RequestId: + - 8fbbbe66-1c8b-42f2-9c4b-168ebec0f0b9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/1b856804-3e0e-44fd-be86-cf2450978ad4 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:14:44 GMT + Pragma: + - no-cache + RequestId: + - fca1cae3-5b0e-4678-be83-8f6dffff2000 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_empty_workspace_fail.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_empty_workspace_fail.yaml new file mode 100644 index 000000000..57e0899d2 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_empty_workspace_fail.yaml @@ -0,0 +1,102 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:45 GMT + Pragma: + - no-cache + RequestId: + - 65957eea-ef3d-4bda-88ae-179c0f851f97 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:45 GMT + Pragma: + - no-cache + RequestId: + - 81704846-bf04-419a-b24b-bb86d6356aa3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_folder_with_unsupported_items_success.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_folder_with_unsupported_items_success.yaml new file mode 100644 index 000000000..9113695f1 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_folder_with_unsupported_items_success.yaml @@ -0,0 +1,2066 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:47 GMT + Pragma: + - no-cache + RequestId: + - bdfa8788-ab33-498d-b82b-d01584a48425 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:47 GMT + Pragma: + - no-cache + RequestId: + - 8c9751d1-139a-49ca-ac7a-5a4ce0392184 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:48 GMT + Pragma: + - no-cache + RequestId: + - 93057226-28b4-4c66-88af-47a09f5371cf + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '35' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders + response: + body: + string: '{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": "fabcli000001", + "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '133' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:48 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/ebdc50fb-548a-42fd-b32c-32871db440d5 + Pragma: + - no-cache + RequestId: + - 98f1837e-e392-4d6e-a895-b4b162506239 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:49 GMT + Pragma: + - no-cache + RequestId: + - 8d2fd895-7cb5-4512-a4e6-77ae4d6623bf + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:49 GMT + Pragma: + - no-cache + RequestId: + - e0b8c58c-6045-412a-8a66-7901a8649b47 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:50 GMT + Pragma: + - no-cache + RequestId: + - fb5b0178-9d61-4574-84c6-2bfffa81bf93 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:50 GMT + Pragma: + - no-cache + RequestId: + - 2f8c5a32-9222-4184-b5ca-9e6d1a8cff63 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000002", "type": "Notebook", "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5", + "definition": {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '765' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:51 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/7ac30332-7f32-4d7b-971d-61491afd3a40 + Pragma: + - no-cache + RequestId: + - 662b774b-76fc-4894-bd6f-0736a8e768ed + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 7ac30332-7f32-4d7b-971d-61491afd3a40 + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/7ac30332-7f32-4d7b-971d-61491afd3a40 + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:20:51.9612931", + "lastUpdatedTimeUtc": "2026-07-20T10:20:53.2376085", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:12 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/7ac30332-7f32-4d7b-971d-61491afd3a40/result + Pragma: + - no-cache + RequestId: + - c9d47ca0-05c5-4a32-bf93-41f8131bae6e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 7ac30332-7f32-4d7b-971d-61491afd3a40 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/7ac30332-7f32-4d7b-971d-61491afd3a40/result + response: + body: + string: '{"id": "bad8bbaf-12b8-4401-acbe-6e3437bab94a", "type": "Notebook", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:21:12 GMT + Pragma: + - no-cache + RequestId: + - 37078c23-8b8c-4e9b-90f6-5fb6d49e8481 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:13 GMT + Pragma: + - no-cache + RequestId: + - 64cac730-5c8c-4c44-852a-121d4264ad46 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:14 GMT + Pragma: + - no-cache + RequestId: + - dbb31444-48b9-46d1-ab82-c09227e5a40c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "bad8bbaf-12b8-4401-acbe-6e3437bab94a", "type": "Notebook", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '197' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:14 GMT + Pragma: + - no-cache + RequestId: + - f2227b34-1a70-4cb1-8827-e2b68d1a06e2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:14 GMT + Pragma: + - no-cache + RequestId: + - 82fb67ea-bf0e-4dea-a175-e6bc4ffc7792 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "bad8bbaf-12b8-4401-acbe-6e3437bab94a", "type": "Notebook", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '197' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:14 GMT + Pragma: + - no-cache + RequestId: + - e7f3cd90-6207-41e0-97e4-7f03efbb8902 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:15 GMT + Pragma: + - no-cache + RequestId: + - 16119f85-efa5-4cc4-8273-430381d5e970 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000003", "type": "Environment", "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '110' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/environments + response: + body: + string: '{"id": "94070ad9-8179-4d1f-ae85-af058846d96a", "type": "Environment", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5"}' + headers: + Access-Control-Expose-Headers: + - RequestId,ETag + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '190' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:16 GMT + ETag: + - '""' + Pragma: + - no-cache + RequestId: + - 4de6bb89-6167-46a3-994b-e5fb3bffa616 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:17 GMT + Pragma: + - no-cache + RequestId: + - 7870d484-33e4-46a1-8571-12a17fed9690 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:18 GMT + Pragma: + - no-cache + RequestId: + - 5b9eb971-7e95-4de8-8ee3-609e076a4737 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "bad8bbaf-12b8-4401-acbe-6e3437bab94a", "type": "Notebook", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5"}, {"id": "94070ad9-8179-4d1f-ae85-af058846d96a", + "type": "Environment", "displayName": "fabcli000003", "description": "", "workspaceId": + "0317e494-ca09-4b8e-a1b9-42b06ac4c585", "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '251' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:18 GMT + Pragma: + - no-cache + RequestId: + - d31fe8c7-8b2f-4b76-b31d-d12c6c2794b1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:18 GMT + Pragma: + - no-cache + RequestId: + - 1af3fbfe-430b-4f9b-983e-3f3c04caba07 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:19 GMT + Pragma: + - no-cache + RequestId: + - e7331747-9ea0-4c27-b56a-da5069ccf7e2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:20 GMT + Pragma: + - no-cache + RequestId: + - a1573e7c-43ff-4e2d-8beb-2d3ff5d72fa0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"items": [{"id": "bad8bbaf-12b8-4401-acbe-6e3437bab94a"}], "mode": "Selective"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '80' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/bulkExportDefinitions?beta=true + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:20 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/9bed9fec-3652-4bad-b14c-ae78d2100b6f + Pragma: + - no-cache + RequestId: + - 226941a8-2c9e-4728-9e4e-2a05f05110c8 + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 9bed9fec-3652-4bad-b14c-ae78d2100b6f + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/9bed9fec-3652-4bad-b14c-ae78d2100b6f + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:21:20.7719001", + "lastUpdatedTimeUtc": "2026-07-20T10:21:22.1665893", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '130' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:41 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/9bed9fec-3652-4bad-b14c-ae78d2100b6f/result + Pragma: + - no-cache + RequestId: + - 9052b978-a652-46cb-bfdd-c19e881b43c7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 9bed9fec-3652-4bad-b14c-ae78d2100b6f + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/9bed9fec-3652-4bad-b14c-ae78d2100b6f/result + response: + body: + string: '{"itemDefinitionsIndex": [{"id": "bad8bbaf-12b8-4401-acbe-6e3437bab94a", + "rootPath": "/fabcli000001/fabcli000002.Notebook"}], "definitionParts": [{"path": + "/fabcli000001/fabcli000002.Notebook/.platform", "payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIk5vdGVib29rIiwKICAgICJkaXNwbGF5TmFtZSI6ICJmYWJjbGlnYnd4bTBrM2VzIgogIH0sCiAgImNvbmZpZyI6IHsKICAgICJ2ZXJzaW9uIjogIjIuMCIsCiAgICAibG9naWNhbElkIjogIjM3YmFiOTRhLTZlMzQtYWNiZS00NDAxLTEyYjhiYWQ4YmJhZiIKICB9Cn0=", + "payloadType": "InlineBase64"}, {"path": "/fabcli000001/fabcli000002.Notebook/notebook-content.py", + "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:21:41 GMT + Pragma: + - no-cache + RequestId: + - 118d3814-00a5-480a-847f-f46c6e9095b7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:41 GMT + Pragma: + - no-cache + RequestId: + - 848dae6d-522d-42e0-bff0-2f120cf56a94 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:42 GMT + Pragma: + - no-cache + RequestId: + - f2bf4a1c-12e3-4236-b8dd-f476b4027e32 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "bad8bbaf-12b8-4401-acbe-6e3437bab94a", "type": "Notebook", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5"}, {"id": "94070ad9-8179-4d1f-ae85-af058846d96a", + "type": "Environment", "displayName": "fabcli000003", "description": "", "workspaceId": + "0317e494-ca09-4b8e-a1b9-42b06ac4c585", "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '251' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:43 GMT + Pragma: + - no-cache + RequestId: + - ddff576d-c7a0-4afe-99cc-5690ed3645b3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:43 GMT + Pragma: + - no-cache + RequestId: + - 8a3786ca-90b9-4241-85f5-3d2d85dba4d6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:43 GMT + Pragma: + - no-cache + RequestId: + - 0886a235-6510-4966-a0e5-26883b4e364f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/94070ad9-8179-4d1f-ae85-af058846d96a + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:21:44 GMT + Pragma: + - no-cache + RequestId: + - e501e3a8-7504-4721-bbe7-b2c61b8c65c1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:45 GMT + Pragma: + - no-cache + RequestId: + - f9cd9280-9052-444b-8f16-bd94e90edf1c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:45 GMT + Pragma: + - no-cache + RequestId: + - b814927f-edb2-43a1-aa69-71428adb7ba7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "bad8bbaf-12b8-4401-acbe-6e3437bab94a", "type": "Notebook", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "ebdc50fb-548a-42fd-b32c-32871db440d5"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '197' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:46 GMT + Pragma: + - no-cache + RequestId: + - e4662e3c-efba-4123-a1c8-93884ecde0d3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:46 GMT + Pragma: + - no-cache + RequestId: + - d2baa1ba-9bd8-4f1c-ad62-634b6e84afbc + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/bad8bbaf-12b8-4401-acbe-6e3437bab94a + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:21:47 GMT + Pragma: + - no-cache + RequestId: + - 054778cf-e7f6-47c8-a2ca-ad55fe78db09 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:47 GMT + Pragma: + - no-cache + RequestId: + - 9f5fcfdd-ea71-4946-b1a8-343ca4361ce2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "ebdc50fb-548a-42fd-b32c-32871db440d5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:21:48 GMT + Pragma: + - no-cache + RequestId: + - cfc71596-6d14-4069-9790-14093e2895fb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/ebdc50fb-548a-42fd-b32c-32871db440d5 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:21:48 GMT + Pragma: + - no-cache + RequestId: + - 6162eaaf-8f82-4e5f-a8fd-b9d1dcc95db8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_inner_folder_structure_success.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_inner_folder_structure_success.yaml new file mode 100644 index 000000000..1441e33c5 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_inner_folder_structure_success.yaml @@ -0,0 +1,2804 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:55 GMT + Pragma: + - no-cache + RequestId: + - 354d87cd-8511-4a98-9919-390baa3c78c1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:56 GMT + Pragma: + - no-cache + RequestId: + - b3f53e4c-47a9-48dd-b43d-fdfaf6fbc10d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:57 GMT + Pragma: + - no-cache + RequestId: + - 8c100300-4be7-4a17-86e4-9a11c4024b42 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '35' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders + response: + body: + string: '{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": "fabcli000001", + "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '133' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:56 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/8301176d-f752-43d8-a6dd-fac43b48bc04 + Pragma: + - no-cache + RequestId: + - 44d3a807-2e2a-4a05-b739-2ecce528107f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:57 GMT + Pragma: + - no-cache + RequestId: + - 6fcff48e-2e41-497d-9287-941c519b1b37 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:57 GMT + Pragma: + - no-cache + RequestId: + - 2dbffd3a-287f-473f-982b-1dad58dba93e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:58 GMT + Pragma: + - no-cache + RequestId: + - 2b6a154e-3d2f-4d1e-8420-69e5792a8ad7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:58 GMT + Pragma: + - no-cache + RequestId: + - 9887b5be-1217-4439-899e-54d4d40ad045 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000002", "parentFolderId": "8301176d-f752-43d8-a6dd-fac43b48bc04"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders + response: + body: + string: '{"id": "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", + "parentFolderId": "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '168' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:59 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/f4a6039e-1863-4ae7-9f0c-70566e7363c8 + Pragma: + - no-cache + RequestId: + - 72d15b66-5565-41f9-9a7b-d9d5ada7d09e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:00 GMT + Pragma: + - no-cache + RequestId: + - 5427a481-4a44-4ec1-bcb5-0a48b2c22569 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:00 GMT + Pragma: + - no-cache + RequestId: + - 471b4866-ba47-49a0-9061-3353ead6857f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:01 GMT + Pragma: + - no-cache + RequestId: + - 9d54c164-d9f0-4f66-a82a-783d88c7b097 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:00 GMT + Pragma: + - no-cache + RequestId: + - 85a1237b-e2f4-4e57-bf51-6a207b98179c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000003", "type": "Notebook", "folderId": "8301176d-f752-43d8-a6dd-fac43b48bc04", + "definition": {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '765' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:02 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/9b1b206f-4453-4764-9c7b-b4700bcc7d91 + Pragma: + - no-cache + RequestId: + - a286d1cc-da95-4f4a-a782-51900b78b95e + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 9b1b206f-4453-4764-9c7b-b4700bcc7d91 + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/9b1b206f-4453-4764-9c7b-b4700bcc7d91 + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:16:02.4407521", + "lastUpdatedTimeUtc": "2026-07-20T10:16:03.6189366", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:23 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/9b1b206f-4453-4764-9c7b-b4700bcc7d91/result + Pragma: + - no-cache + RequestId: + - 41c6af13-f83c-4aa0-adce-94a77032187a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 9b1b206f-4453-4764-9c7b-b4700bcc7d91 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/9b1b206f-4453-4764-9c7b-b4700bcc7d91/result + response: + body: + string: '{"id": "dd87c859-fc09-4817-bf5b-6278a9ecf6e3", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "8301176d-f752-43d8-a6dd-fac43b48bc04"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:16:23 GMT + Pragma: + - no-cache + RequestId: + - 716c5185-dd92-4d40-bc0c-50395c528abb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:24 GMT + Pragma: + - no-cache + RequestId: + - ca7927a6-7b36-43cc-b8c9-d7d1459e8b9b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:24 GMT + Pragma: + - no-cache + RequestId: + - 513c2fc5-36c4-45d6-9501-f12ea9dab076 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:25 GMT + Pragma: + - no-cache + RequestId: + - e103ab5e-1fb5-4446-928c-aed25be18664 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "dd87c859-fc09-4817-bf5b-6278a9ecf6e3", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "8301176d-f752-43d8-a6dd-fac43b48bc04"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '198' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:25 GMT + Pragma: + - no-cache + RequestId: + - 60bad763-d48e-4aa9-bd8e-73daf7665a7e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:25 GMT + Pragma: + - no-cache + RequestId: + - ac8bd313-75a8-4bf3-ba3a-ad5423afb177 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "dd87c859-fc09-4817-bf5b-6278a9ecf6e3", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "8301176d-f752-43d8-a6dd-fac43b48bc04"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '198' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:25 GMT + Pragma: + - no-cache + RequestId: + - f0ce4afc-aad1-4d98-99da-bbe11cf93821 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:26 GMT + Pragma: + - no-cache + RequestId: + - ab823088-6610-4d0d-a5c1-5e0865fdb8b2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000004", "type": "Notebook", "folderId": "f4a6039e-1863-4ae7-9f0c-70566e7363c8", + "definition": {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '765' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:27 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/28306cb4-e0d5-4127-b192-24d788e268df + Pragma: + - no-cache + RequestId: + - a03970f1-3bc6-4b38-a9e1-255c8026bdba + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 28306cb4-e0d5-4127-b192-24d788e268df + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/28306cb4-e0d5-4127-b192-24d788e268df + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:16:27.5090094", + "lastUpdatedTimeUtc": "2026-07-20T10:16:28.9453723", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:48 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/28306cb4-e0d5-4127-b192-24d788e268df/result + Pragma: + - no-cache + RequestId: + - f0f87d1f-7c78-4364-89f8-bad418046449 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 28306cb4-e0d5-4127-b192-24d788e268df + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/28306cb4-e0d5-4127-b192-24d788e268df/result + response: + body: + string: '{"id": "cab1e440-2d78-4fa5-b269-0bac50fd30c9", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "f4a6039e-1863-4ae7-9f0c-70566e7363c8"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:16:48 GMT + Pragma: + - no-cache + RequestId: + - 6ba7178e-d172-4290-b08d-196b470772ba + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:49 GMT + Pragma: + - no-cache + RequestId: + - 6463bda5-e968-4bc8-b6d4-4c6ece3507f8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:49 GMT + Pragma: + - no-cache + RequestId: + - a8d05f74-4917-4096-8bbf-0063c25058f2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:50 GMT + Pragma: + - no-cache + RequestId: + - a5902631-dfa5-47d2-889d-dd0bab3ec679 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "dd87c859-fc09-4817-bf5b-6278a9ecf6e3", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "8301176d-f752-43d8-a6dd-fac43b48bc04"}, {"id": "cab1e440-2d78-4fa5-b269-0bac50fd30c9", + "type": "Notebook", "displayName": "fabcli000004", "description": "", "workspaceId": + "0317e494-ca09-4b8e-a1b9-42b06ac4c585", "folderId": "f4a6039e-1863-4ae7-9f0c-70566e7363c8"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '262' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:50 GMT + Pragma: + - no-cache + RequestId: + - 0548068f-7486-49f2-b170-bbe55711b89e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:50 GMT + Pragma: + - no-cache + RequestId: + - 51a25e4d-29fb-4ddc-b639-500c7ccc6c4e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:51 GMT + Pragma: + - no-cache + RequestId: + - a7aa3b27-4cbd-4488-820b-14fb9076561f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:51 GMT + Pragma: + - no-cache + RequestId: + - 66d46d93-61b2-42fc-8b55-5903f0070ad7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"items": [{"id": "cab1e440-2d78-4fa5-b269-0bac50fd30c9"}], "mode": "Selective"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '80' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/bulkExportDefinitions?beta=true + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:16:52 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/4f18c794-08b9-4be6-9ecd-d41ffd080db3 + Pragma: + - no-cache + RequestId: + - 1857ab7f-90bc-48d0-a0a3-f72113c77727 + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 4f18c794-08b9-4be6-9ecd-d41ffd080db3 + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/4f18c794-08b9-4be6-9ecd-d41ffd080db3 + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:16:52.8902245", + "lastUpdatedTimeUtc": "2026-07-20T10:16:53.9992002", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:12 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/4f18c794-08b9-4be6-9ecd-d41ffd080db3/result + Pragma: + - no-cache + RequestId: + - c7d85d2e-3f25-4891-a2f9-e1e563023cd1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 4f18c794-08b9-4be6-9ecd-d41ffd080db3 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/4f18c794-08b9-4be6-9ecd-d41ffd080db3/result + response: + body: + string: '{"itemDefinitionsIndex": [{"id": "cab1e440-2d78-4fa5-b269-0bac50fd30c9", + "rootPath": "/fabcli000001/fabcli000002/fabcli000004.Notebook"}], "definitionParts": + [{"path": "/fabcli000001/fabcli000002/fabcli000004.Notebook/.platform", "payload": + "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIk5vdGVib29rIiwKICAgICJkaXNwbGF5TmFtZSI6ICJmYWJjbGlwaHhycmg1bWZ1IgogIH0sCiAgImNvbmZpZyI6IHsKICAgICJ2ZXJzaW9uIjogIjIuMCIsCiAgICAibG9naWNhbElkIjogIjUwZmQzMGM5LTBiYWMtYjI2OS00ZmE1LTJkNzhjYWIxZTQ0MCIKICB9Cn0=", + "payloadType": "InlineBase64"}, {"path": "/fabcli000001/fabcli000002/fabcli000004.Notebook/notebook-content.py", + "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:17:14 GMT + Pragma: + - no-cache + RequestId: + - 166234c4-3e37-4a5f-b065-296d886e335a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:14 GMT + Pragma: + - no-cache + RequestId: + - 92c379bc-3adc-4ec3-8deb-dfc8edc6bc95 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:14 GMT + Pragma: + - no-cache + RequestId: + - 3805a2b9-7b00-49b8-b108-b418ac649a4b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:15 GMT + Pragma: + - no-cache + RequestId: + - bb81233e-02c1-44fc-bfb4-c708d62ad24f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "dd87c859-fc09-4817-bf5b-6278a9ecf6e3", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "8301176d-f752-43d8-a6dd-fac43b48bc04"}, {"id": "cab1e440-2d78-4fa5-b269-0bac50fd30c9", + "type": "Notebook", "displayName": "fabcli000004", "description": "", "workspaceId": + "0317e494-ca09-4b8e-a1b9-42b06ac4c585", "folderId": "f4a6039e-1863-4ae7-9f0c-70566e7363c8"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '262' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:15 GMT + Pragma: + - no-cache + RequestId: + - 6d18f819-d80d-47ff-9399-4bf20640d3cc + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:15 GMT + Pragma: + - no-cache + RequestId: + - a4f3bba4-63d9-436d-a85c-8a497d2fa6d7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:16 GMT + Pragma: + - no-cache + RequestId: + - ddf8a3dc-b8ae-4455-a84b-7592e76e20a8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/cab1e440-2d78-4fa5-b269-0bac50fd30c9 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:17:16 GMT + Pragma: + - no-cache + RequestId: + - c504757c-e39a-4ab8-af91-ad99c05c84a4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:18 GMT + Pragma: + - no-cache + RequestId: + - 74f4345b-7cdd-4b45-b380-90da3edfe4e8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:17 GMT + Pragma: + - no-cache + RequestId: + - 24b0679e-1c49-4142-9e15-ee88f3964c97 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "dd87c859-fc09-4817-bf5b-6278a9ecf6e3", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "8301176d-f752-43d8-a6dd-fac43b48bc04"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '198' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:18 GMT + Pragma: + - no-cache + RequestId: + - 97fe29c3-c712-4a1d-837d-6577c081714f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:19 GMT + Pragma: + - no-cache + RequestId: + - cb39d2ad-132c-4d7f-ac29-dce374c6abb0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/dd87c859-fc09-4817-bf5b-6278a9ecf6e3 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:17:19 GMT + Pragma: + - no-cache + RequestId: + - d6bbf1b1-674b-4410-a268-71ba067fca35 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:19 GMT + Pragma: + - no-cache + RequestId: + - d682caac-e35f-4980-ada0-7d0cd96d8f32 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:20 GMT + Pragma: + - no-cache + RequestId: + - 3cac6d74-ce50-4600-a781-b72de73e33e9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f4a6039e-1863-4ae7-9f0c-70566e7363c8", "displayName": "fabcli000002", "parentFolderId": + "8301176d-f752-43d8-a6dd-fac43b48bc04", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '204' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:20 GMT + Pragma: + - no-cache + RequestId: + - d1c5d1a9-8ad3-4761-baa2-461f2ca98434 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/f4a6039e-1863-4ae7-9f0c-70566e7363c8 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:17:21 GMT + Pragma: + - no-cache + RequestId: + - 5c00bd20-7718-43fa-8bff-4d252e59023b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:21 GMT + Pragma: + - no-cache + RequestId: + - 24f17305-e5de-4759-b1bc-7307cc12a7d9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "8301176d-f752-43d8-a6dd-fac43b48bc04", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:17:22 GMT + Pragma: + - no-cache + RequestId: + - 747e0384-98d6-4407-b11a-ffe3697ef380 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/8301176d-f752-43d8-a6dd-fac43b48bc04 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:17:22 GMT + Pragma: + - no-cache + RequestId: + - bab78491-9845-4908-b72d-65da00ffcc04 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_invalid_output_path_fail.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_invalid_output_path_fail.yaml new file mode 100644 index 000000000..834826d06 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_invalid_output_path_fail.yaml @@ -0,0 +1,54 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:45 GMT + Pragma: + - no-cache + RequestId: + - a7dfd684-c5a1-4bfb-aff6-627f0680f05b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_item_fail.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_item_fail.yaml new file mode 100644 index 000000000..f870575d2 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_item_fail.yaml @@ -0,0 +1,557 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:18 GMT + Pragma: + - no-cache + RequestId: + - 7a5f10ed-6b73-4c66-8b55-6562faf71c1f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:18 GMT + Pragma: + - no-cache + RequestId: + - 9aa372e9-3dfb-42a6-bcc7-7ac2e3e41f02 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:20 GMT + Pragma: + - no-cache + RequestId: + - 8d501655-46d8-42d9-a25e-0b68503ab854 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001", "type": "Notebook", "folderId": null, "definition": + {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '731' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:21 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/dbf7e538-a517-48eb-b4e2-7fa3a6ed00f2 + Pragma: + - no-cache + RequestId: + - 5da41957-e5d8-43a0-ad04-b2bb9cdde66f + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - dbf7e538-a517-48eb-b4e2-7fa3a6ed00f2 + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/dbf7e538-a517-48eb-b4e2-7fa3a6ed00f2 + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:13:20.8613348", + "lastUpdatedTimeUtc": "2026-07-20T10:13:22.8455384", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:41 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/dbf7e538-a517-48eb-b4e2-7fa3a6ed00f2/result + Pragma: + - no-cache + RequestId: + - 8a259de5-e0f2-42d1-af32-d41fbe7a465f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - dbf7e538-a517-48eb-b4e2-7fa3a6ed00f2 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/dbf7e538-a517-48eb-b4e2-7fa3a6ed00f2/result + response: + body: + string: '{"id": "cc24b663-39fa-4f19-bdd7-9229cae59afc", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:13:42 GMT + Pragma: + - no-cache + RequestId: + - 0077ffee-6096-4d66-b2b2-4cb4f8a6e2e0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:43 GMT + Pragma: + - no-cache + RequestId: + - a801a6f7-cfa8-4b0e-9e2c-f5daa0b71836 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "cc24b663-39fa-4f19-bdd7-9229cae59afc", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '165' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:43 GMT + Pragma: + - no-cache + RequestId: + - dd3b0857-f725-4086-a981-3f64a5d4eb1d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:43 GMT + Pragma: + - no-cache + RequestId: + - 3c496669-02c1-41ab-85a0-37335b9a9705 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "cc24b663-39fa-4f19-bdd7-9229cae59afc", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '165' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:43 GMT + Pragma: + - no-cache + RequestId: + - 1d0ebb59-d77f-461d-bc54-10bcbd568729 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/cc24b663-39fa-4f19-bdd7-9229cae59afc + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:13:44 GMT + Pragma: + - no-cache + RequestId: + - 731ba0e3-f4a1-4e78-89ed-d4bb1d2b9d7f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_no_exportable_items_fail.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_no_exportable_items_fail.yaml new file mode 100644 index 000000000..95e83018d --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_no_exportable_items_fail.yaml @@ -0,0 +1,1104 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:54 GMT + Pragma: + - no-cache + RequestId: + - d41def37-9ba4-49fd-b0df-5ec0e8935afa + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:54 GMT + Pragma: + - no-cache + RequestId: + - 11cd9e44-dd72-48a3-81a3-3c0715e48893 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:55 GMT + Pragma: + - no-cache + RequestId: + - 723eef04-0c8f-4c44-8610-12d54aebb466 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '35' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders + response: + body: + string: '{"id": "51f941f2-789d-4ec3-824a-413a546e198d", "displayName": "fabcli000001", + "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '132' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:55 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/51f941f2-789d-4ec3-824a-413a546e198d + Pragma: + - no-cache + RequestId: + - 3d634279-f216-41ce-b6f6-656b407aced1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:56 GMT + Pragma: + - no-cache + RequestId: + - ed219387-fe71-4247-ba87-34a837208c71 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "51f941f2-789d-4ec3-824a-413a546e198d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:56 GMT + Pragma: + - no-cache + RequestId: + - 3bbd8d74-252a-4488-a393-364593364e77 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:57 GMT + Pragma: + - no-cache + RequestId: + - 75897f4e-aba8-4067-ac84-83ae67111c97 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:57 GMT + Pragma: + - no-cache + RequestId: + - a625808d-f234-4777-a665-1fcc63a2543b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000002", "type": "Environment", "folderId": "51f941f2-789d-4ec3-824a-413a546e198d"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '110' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/environments + response: + body: + string: '{"id": "bd7dca34-6b21-4d3c-87c9-acb834eb0dd7", "type": "Environment", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "51f941f2-789d-4ec3-824a-413a546e198d"}' + headers: + Access-Control-Expose-Headers: + - RequestId,ETag + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '190' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:59 GMT + ETag: + - '""' + Pragma: + - no-cache + RequestId: + - c8d28ac9-c3d4-488c-a470-af45b3ad9d84 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:00 GMT + Pragma: + - no-cache + RequestId: + - 0b74be3f-c3bf-41e2-a3d4-ca8a40e015ec + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "51f941f2-789d-4ec3-824a-413a546e198d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:00 GMT + Pragma: + - no-cache + RequestId: + - 29c10656-76a0-42f8-9d63-7c3315a80c1e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "bd7dca34-6b21-4d3c-87c9-acb834eb0dd7", "type": "Environment", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "51f941f2-789d-4ec3-824a-413a546e198d"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '202' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:01 GMT + Pragma: + - no-cache + RequestId: + - e5f196d1-95a1-444f-b6ec-d899628e625f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "51f941f2-789d-4ec3-824a-413a546e198d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:01 GMT + Pragma: + - no-cache + RequestId: + - 600e6146-a5b1-4c8e-b48c-7156f9d046eb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "51f941f2-789d-4ec3-824a-413a546e198d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:02 GMT + Pragma: + - no-cache + RequestId: + - 20312a26-e324-4a8b-9512-d606cabf998e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:02 GMT + Pragma: + - no-cache + RequestId: + - 0cde2f23-70f0-4af6-86a5-c9e2c43bae7f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "51f941f2-789d-4ec3-824a-413a546e198d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:03 GMT + Pragma: + - no-cache + RequestId: + - 99fa6ce9-89bb-41ac-845a-43a5a8c663db + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "bd7dca34-6b21-4d3c-87c9-acb834eb0dd7", "type": "Environment", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "51f941f2-789d-4ec3-824a-413a546e198d"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '202' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:03 GMT + Pragma: + - no-cache + RequestId: + - 4136dada-c4c9-4bb7-8768-9c536ded7f8f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "51f941f2-789d-4ec3-824a-413a546e198d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:03 GMT + Pragma: + - no-cache + RequestId: + - 0506cc0a-5a8d-44f0-8da0-dbfc7a42ab8d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/bd7dca34-6b21-4d3c-87c9-acb834eb0dd7 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:15:04 GMT + Pragma: + - no-cache + RequestId: + - 27a2604a-5cf6-44e5-9849-721ba4c63278 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:04 GMT + Pragma: + - no-cache + RequestId: + - 5a585a62-5bdf-4712-a7d5-db04187fd746 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "51f941f2-789d-4ec3-824a-413a546e198d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '144' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:06 GMT + Pragma: + - no-cache + RequestId: + - 6a425b35-e040-46a6-b107-6b24cdcb8b7f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/51f941f2-789d-4ec3-824a-413a546e198d + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:15:05 GMT + Pragma: + - no-cache + RequestId: + - 6d99d165-d63b-4d2e-9ee5-41acf905d82d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_non_local_output_path_fail.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_non_local_output_path_fail.yaml new file mode 100644 index 000000000..6654eca66 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_non_local_output_path_fail.yaml @@ -0,0 +1,507 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:46 GMT + Pragma: + - no-cache + RequestId: + - e73c3dd9-d1c4-47cf-afb6-95c5a455336e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:46 GMT + Pragma: + - no-cache + RequestId: + - 69e7525e-0648-4898-9c94-06173ae8fdac + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:47 GMT + Pragma: + - no-cache + RequestId: + - dad3b6ba-14b9-411e-8f74-c64352f13402 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001", "type": "Lakehouse", "folderId": null}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '74' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/lakehouses + response: + body: + string: '{"id": "10f8ecaf-c87f-41a6-9188-995d7ac14df0", "type": "Lakehouse", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId,ETag + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '155' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:50 GMT + ETag: + - '""' + Pragma: + - no-cache + RequestId: + - c776686f-f2f2-4d46-a7f6-6a83c46d54f4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:51 GMT + Pragma: + - no-cache + RequestId: + - bf4c1a55-f00b-4b5d-9a28-0d2d53b58adf + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:51 GMT + Pragma: + - no-cache + RequestId: + - 8e17e769-d10f-4f66-99ca-d4c0cbdaee6c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "10f8ecaf-c87f-41a6-9188-995d7ac14df0", "type": "Lakehouse", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '167' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:52 GMT + Pragma: + - no-cache + RequestId: + - 350b390c-1063-40e9-ad0e-12b7fc53d934 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:53 GMT + Pragma: + - no-cache + RequestId: + - e11b4cb9-e758-4fcb-87f3-d7f3a77f6285 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "10f8ecaf-c87f-41a6-9188-995d7ac14df0", "type": "Lakehouse", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '167' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:53 GMT + Pragma: + - no-cache + RequestId: + - 56a6dbd8-3b0e-4803-a14c-0e4e2a1d593e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/10f8ecaf-c87f-41a6-9188-995d7ac14df0 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:14:53 GMT + Pragma: + - no-cache + RequestId: + - eda75150-1140-4d0d-9aab-d287c53b01e7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_output_path_not_empty_warning.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_output_path_not_empty_warning.yaml new file mode 100644 index 000000000..eb7d2cf1c --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_output_path_not_empty_warning.yaml @@ -0,0 +1,761 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:06 GMT + Pragma: + - no-cache + RequestId: + - c79f8c76-afff-478e-b897-9f9f03352eb6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:07 GMT + Pragma: + - no-cache + RequestId: + - a9518509-17b5-4be1-9111-dc8ff079b5f6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:07 GMT + Pragma: + - no-cache + RequestId: + - 1c1d3d6e-8d2e-4785-a9ea-8fdcf4b5827e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001", "type": "Notebook", "folderId": null, "definition": + {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '731' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:08 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/0392c2b7-40e0-4ae4-930e-722d5fef2548 + Pragma: + - no-cache + RequestId: + - 9d205b0c-6ca1-4240-9e77-dfe32a92312a + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 0392c2b7-40e0-4ae4-930e-722d5fef2548 + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/0392c2b7-40e0-4ae4-930e-722d5fef2548 + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:15:08.4379319", + "lastUpdatedTimeUtc": "2026-07-20T10:15:09.6828157", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '132' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:28 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/0392c2b7-40e0-4ae4-930e-722d5fef2548/result + Pragma: + - no-cache + RequestId: + - ffcc952d-3504-4766-8cd5-2b07baffc967 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 0392c2b7-40e0-4ae4-930e-722d5fef2548 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/0392c2b7-40e0-4ae4-930e-722d5fef2548/result + response: + body: + string: '{"id": "df002cca-0cd5-463f-979e-57ed88b16b33", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:15:29 GMT + Pragma: + - no-cache + RequestId: + - 5749428f-1033-47d7-971a-961f012aef9c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:30 GMT + Pragma: + - no-cache + RequestId: + - 3edbdecb-b513-4cad-ab8a-aa5213afcb31 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "df002cca-0cd5-463f-979e-57ed88b16b33", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '166' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:30 GMT + Pragma: + - no-cache + RequestId: + - e05dfc3d-2998-43ec-9eb1-0ee3ef5d40b0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"items": [], "mode": "All"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '28' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/bulkExportDefinitions?beta=true + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:31 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/c5047599-a9f7-480a-9598-65115de9d2d5 + Pragma: + - no-cache + RequestId: + - a87e6f1f-0f2a-40de-b5d9-cbeb5cf9be8c + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - c5047599-a9f7-480a-9598-65115de9d2d5 + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/c5047599-a9f7-480a-9598-65115de9d2d5 + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:15:31.4382985", + "lastUpdatedTimeUtc": "2026-07-20T10:15:32.9840348", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '132' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:51 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/c5047599-a9f7-480a-9598-65115de9d2d5/result + Pragma: + - no-cache + RequestId: + - 1db56a21-495d-42db-a6fb-3d0246e3693e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - c5047599-a9f7-480a-9598-65115de9d2d5 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/c5047599-a9f7-480a-9598-65115de9d2d5/result + response: + body: + string: '{"itemDefinitionsIndex": [{"id": "df002cca-0cd5-463f-979e-57ed88b16b33", + "rootPath": "/fabcli000001.Notebook"}], "definitionParts": [{"path": "/fabcli000001.Notebook/.platform", + "payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIk5vdGVib29rIiwKICAgICJkaXNwbGF5TmFtZSI6ICJmYWJjbGlsdzRjc3B1d3JhIgogIH0sCiAgImNvbmZpZyI6IHsKICAgICJ2ZXJzaW9uIjogIjIuMCIsCiAgICAibG9naWNhbElkIjogIjg4YjE2YjMzLTU3ZWQtOTc5ZS00NjNmLTBjZDVkZjAwMmNjYSIKICB9Cn0=", + "payloadType": "InlineBase64"}, {"path": "/fabcli000001.Notebook/notebook-content.py", + "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:15:51 GMT + Pragma: + - no-cache + RequestId: + - af29a11f-84c6-47c0-b555-88b7f34f6367 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "df002cca-0cd5-463f-979e-57ed88b16b33", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '166' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:52 GMT + Pragma: + - no-cache + RequestId: + - 7b4acff9-d9c7-458a-ba05-6678f4770c76 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:52 GMT + Pragma: + - no-cache + RequestId: + - 80bca92e-af5e-47b7-bf23-75014042902d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "df002cca-0cd5-463f-979e-57ed88b16b33", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '166' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:15:53 GMT + Pragma: + - no-cache + RequestId: + - a085568c-6ca5-4e29-a800-ae3d65ed481b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/df002cca-0cd5-463f-979e-57ed88b16b33 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:15:55 GMT + Pragma: + - no-cache + RequestId: + - 43d73216-531c-4a6c-a1f0-a96f7903af6a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_folder_without_recursive_fail.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_folder_without_recursive_fail.yaml new file mode 100644 index 000000000..4be284ac8 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_folder_without_recursive_fail.yaml @@ -0,0 +1,1058 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:45 GMT + Pragma: + - no-cache + RequestId: + - 92fbbbe2-2fdd-4d57-b78e-23c7cfc7fe07 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:45 GMT + Pragma: + - no-cache + RequestId: + - 9d535883-3ed9-4acb-9ce1-b28ee94afcdb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:46 GMT + Pragma: + - no-cache + RequestId: + - 7ba96c58-5831-4c75-b8f2-c4f74f8873ec + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '35' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders + response: + body: + string: '{"id": "caafea4f-808b-4ec5-b3ce-0714808e9af5", "displayName": "fabcli000001", + "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '132' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:46 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/caafea4f-808b-4ec5-b3ce-0714808e9af5 + Pragma: + - no-cache + RequestId: + - 8b521e13-7671-425a-ab33-bb7373c488a9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:46 GMT + Pragma: + - no-cache + RequestId: + - 4f7aa311-8adb-4309-a257-63137aebdbb6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "caafea4f-808b-4ec5-b3ce-0714808e9af5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:47 GMT + Pragma: + - no-cache + RequestId: + - cc9737fc-d9eb-448b-beb6-a3105cba4934 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:48 GMT + Pragma: + - no-cache + RequestId: + - d460ece8-4a94-48ea-a3bf-738f696a66e6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:47 GMT + Pragma: + - no-cache + RequestId: + - 16faa84e-d873-4e4a-a205-4b3b39b3fb88 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000002", "type": "Notebook", "folderId": "caafea4f-808b-4ec5-b3ce-0714808e9af5", + "definition": {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '765' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:13:49 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/e526debc-aba9-424c-a502-b0e33fe9c61b + Pragma: + - no-cache + RequestId: + - 85f36b51-ebd1-439b-a314-a478d9d2807c + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - e526debc-aba9-424c-a502-b0e33fe9c61b + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/e526debc-aba9-424c-a502-b0e33fe9c61b + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:13:49.236435", + "lastUpdatedTimeUtc": "2026-07-20T10:13:50.5907539", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:10 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/e526debc-aba9-424c-a502-b0e33fe9c61b/result + Pragma: + - no-cache + RequestId: + - 87b7b08c-bfac-4aa1-a38c-5d6c7f6e5dde + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - e526debc-aba9-424c-a502-b0e33fe9c61b + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/e526debc-aba9-424c-a502-b0e33fe9c61b/result + response: + body: + string: '{"id": "bca7d86c-0023-4e40-832b-d6fd01ec5991", "type": "Notebook", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "caafea4f-808b-4ec5-b3ce-0714808e9af5"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:14:10 GMT + Pragma: + - no-cache + RequestId: + - d0177834-1cf2-43f0-8d2e-8670283959c0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:11 GMT + Pragma: + - no-cache + RequestId: + - cf0d7f1b-58d6-4675-ab75-ed56dfaa8207 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "caafea4f-808b-4ec5-b3ce-0714808e9af5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:11 GMT + Pragma: + - no-cache + RequestId: + - d78bec75-b3aa-402b-8814-0669ebc21217 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:12 GMT + Pragma: + - no-cache + RequestId: + - 1ed767d1-c7c6-4e4c-b81d-31da0a911605 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "caafea4f-808b-4ec5-b3ce-0714808e9af5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:12 GMT + Pragma: + - no-cache + RequestId: + - e5e728f6-39b7-4824-9048-549fbab32e0c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "bca7d86c-0023-4e40-832b-d6fd01ec5991", "type": "Notebook", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "caafea4f-808b-4ec5-b3ce-0714808e9af5"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '196' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:12 GMT + Pragma: + - no-cache + RequestId: + - 5eb9c562-a45a-4450-bac9-c51994b9894e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "caafea4f-808b-4ec5-b3ce-0714808e9af5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:13 GMT + Pragma: + - no-cache + RequestId: + - 428e6460-ea9c-42cb-9d2f-4914bfef3f87 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/bca7d86c-0023-4e40-832b-d6fd01ec5991 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:14:14 GMT + Pragma: + - no-cache + RequestId: + - 0289d34d-285f-4a19-a136-1a2a4b2d59fa + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:15 GMT + Pragma: + - no-cache + RequestId: + - 7b417463-f42c-4f81-8f32-cb1b27f0ced7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "caafea4f-808b-4ec5-b3ce-0714808e9af5", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:15 GMT + Pragma: + - no-cache + RequestId: + - c3721ed1-5908-453b-8476-952dc2a3a5ee + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/caafea4f-808b-4ec5-b3ce-0714808e9af5 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:14:15 GMT + Pragma: + - no-cache + RequestId: + - 7c098c56-7a36-4797-bd57-b6fdf2d0f704 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_with_folders_structure_success.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_with_folders_structure_success.yaml new file mode 100644 index 000000000..e444bccfe --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_with_folders_structure_success.yaml @@ -0,0 +1,2809 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:28 GMT + Pragma: + - no-cache + RequestId: + - 7e7fcace-7cbd-4069-9ef6-daa769844632 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:28 GMT + Pragma: + - no-cache + RequestId: + - 05f70a37-b6d9-412b-9068-a38b95779c5e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:28 GMT + Pragma: + - no-cache + RequestId: + - b84ed39a-c01d-40d0-a906-030c74253e91 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '35' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders + response: + body: + string: '{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": "fabcli000001", + "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '132' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:29 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/cc1a2fda-8468-4c0e-824c-7a4cad577a4d + Pragma: + - no-cache + RequestId: + - 566fe644-e0ed-468a-9e09-c9adea5d0739 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:29 GMT + Pragma: + - no-cache + RequestId: + - 5a7d3f90-1a64-41d8-98ab-b1572a27e679 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:29 GMT + Pragma: + - no-cache + RequestId: + - c1670f6f-4d6f-4a55-b99b-87a4e37c1cf1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:30 GMT + Pragma: + - no-cache + RequestId: + - bfc2a253-92b7-4add-b284-08ca855b6c9f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:30 GMT + Pragma: + - no-cache + RequestId: + - 4245887d-0a41-4d7a-b196-a162ec4a10e8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000002", "parentFolderId": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '93' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders + response: + body: + string: '{"id": "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", + "parentFolderId": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '167' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:31 GMT + Location: + - https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/f9aa14f9-1b1a-420f-861c-a11152a62f1d + Pragma: + - no-cache + RequestId: + - f093e130-65bb-4e45-9fd4-32d52b064b5b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:32 GMT + Pragma: + - no-cache + RequestId: + - 2affc63b-caf9-4fe1-9648-d041e01e3992 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:32 GMT + Pragma: + - no-cache + RequestId: + - 738a7e36-51e5-4bef-b1ee-9538b682480a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:33 GMT + Pragma: + - no-cache + RequestId: + - b5abfbbc-2da2-43d2-ace2-91c7edd0267e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:33 GMT + Pragma: + - no-cache + RequestId: + - 88aebaea-1b13-4bcf-a64e-e5acf5f33d11 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000003", "type": "Notebook", "folderId": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", + "definition": {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '765' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:34 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2d21c61b-76c8-4e30-9601-c2e50ce5d2ec + Pragma: + - no-cache + RequestId: + - ff641f92-af95-4cec-bb1e-a747a99fc314 + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 2d21c61b-76c8-4e30-9601-c2e50ce5d2ec + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2d21c61b-76c8-4e30-9601-c2e50ce5d2ec + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:18:34.7388571", + "lastUpdatedTimeUtc": "2026-07-20T10:18:36.2220317", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:55 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2d21c61b-76c8-4e30-9601-c2e50ce5d2ec/result + Pragma: + - no-cache + RequestId: + - 21da8f5b-2759-44fd-9af5-201920402009 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 2d21c61b-76c8-4e30-9601-c2e50ce5d2ec + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2d21c61b-76c8-4e30-9601-c2e50ce5d2ec/result + response: + body: + string: '{"id": "ecd96630-f480-4aa8-b24b-5decf9024c8b", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:18:55 GMT + Pragma: + - no-cache + RequestId: + - d758cee7-bb43-4138-bf35-211868b68d98 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:56 GMT + Pragma: + - no-cache + RequestId: + - 605cb583-2223-4a6c-bd89-0a1d0bf20523 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:56 GMT + Pragma: + - no-cache + RequestId: + - 71ec4f56-4d59-4175-ad4f-ea3872e11876 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:58 GMT + Pragma: + - no-cache + RequestId: + - d196dc2f-2658-4149-8f02-2313ad8254fa + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "ecd96630-f480-4aa8-b24b-5decf9024c8b", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '197' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:58 GMT + Pragma: + - no-cache + RequestId: + - ba6b5e64-4f24-4bb9-8ea1-dbbf460f8bfc + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:58 GMT + Pragma: + - no-cache + RequestId: + - be13f89b-d5be-4cc4-b596-ced57c57391b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "ecd96630-f480-4aa8-b24b-5decf9024c8b", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '197' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:58 GMT + Pragma: + - no-cache + RequestId: + - bb2fd816-5c62-45e2-945a-cda69220d6ef + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:58 GMT + Pragma: + - no-cache + RequestId: + - 9d322787-382c-49a6-9ac9-ad673df143d0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000004", "type": "Notebook", "folderId": "f9aa14f9-1b1a-420f-861c-a11152a62f1d", + "definition": {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '765' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:18:59 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/abeb0100-427f-43ec-88a1-04a4aa11706d + Pragma: + - no-cache + RequestId: + - 1ff32528-00ae-41aa-a91d-7d07316770c5 + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - abeb0100-427f-43ec-88a1-04a4aa11706d + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/abeb0100-427f-43ec-88a1-04a4aa11706d + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:19:00.4489449", + "lastUpdatedTimeUtc": "2026-07-20T10:19:01.8203919", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:21 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/abeb0100-427f-43ec-88a1-04a4aa11706d/result + Pragma: + - no-cache + RequestId: + - b79f1de8-f0cd-4e28-b34b-df3c6981804a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - abeb0100-427f-43ec-88a1-04a4aa11706d + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/abeb0100-427f-43ec-88a1-04a4aa11706d/result + response: + body: + string: '{"id": "63c62fc7-4162-4859-8b7e-83e537a41e60", "type": "Notebook", + "displayName": "fabcli000004", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "f9aa14f9-1b1a-420f-861c-a11152a62f1d"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:19:21 GMT + Pragma: + - no-cache + RequestId: + - 22a3bc50-549c-4934-8b13-7ff8c2c21432 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:21 GMT + Pragma: + - no-cache + RequestId: + - 85d56260-5059-4378-929d-e441569c88bb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "ecd96630-f480-4aa8-b24b-5decf9024c8b", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d"}, {"id": "63c62fc7-4162-4859-8b7e-83e537a41e60", + "type": "Notebook", "displayName": "fabcli000004", "description": "", "workspaceId": + "0317e494-ca09-4b8e-a1b9-42b06ac4c585", "folderId": "f9aa14f9-1b1a-420f-861c-a11152a62f1d"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '258' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:22 GMT + Pragma: + - no-cache + RequestId: + - 85d9e5d0-70ef-4a46-b08f-01fb480fd936 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:23 GMT + Pragma: + - no-cache + RequestId: + - 480f0834-29e0-4c45-bcce-59aff9a61205 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:23 GMT + Pragma: + - no-cache + RequestId: + - 33b04924-9a4a-4fd6-a3bb-b2e3402cc3f1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"items": [], "mode": "All"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '28' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/bulkExportDefinitions?beta=true + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:24 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/d1659f07-d63f-49ea-a92a-129b11efd1fe + Pragma: + - no-cache + RequestId: + - fd0bd62a-eb61-4a29-93cd-ba388a459b9c + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - d1659f07-d63f-49ea-a92a-129b11efd1fe + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/d1659f07-d63f-49ea-a92a-129b11efd1fe + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:19:24.6879793", + "lastUpdatedTimeUtc": "2026-07-20T10:19:26.5644071", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:44 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/d1659f07-d63f-49ea-a92a-129b11efd1fe/result + Pragma: + - no-cache + RequestId: + - 97b816dd-1dc4-4156-881e-8661daa60b6c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - d1659f07-d63f-49ea-a92a-129b11efd1fe + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/d1659f07-d63f-49ea-a92a-129b11efd1fe/result + response: + body: + string: '{"itemDefinitionsIndex": [{"id": "ecd96630-f480-4aa8-b24b-5decf9024c8b", + "rootPath": "/fabcli000001/fabcli000003.Notebook"}, {"id": "63c62fc7-4162-4859-8b7e-83e537a41e60", + "rootPath": "/fabcli000001/fabcli000002/fabcli000004.Notebook"}], "definitionParts": + [{"path": "/fabcli000001/fabcli000003.Notebook/.platform", "payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIk5vdGVib29rIiwKICAgICJkaXNwbGF5TmFtZSI6ICJmYWJjbGliMjUxNTlkZjcyIgogIH0sCiAgImNvbmZpZyI6IHsKICAgICJ2ZXJzaW9uIjogIjIuMCIsCiAgICAibG9naWNhbElkIjogImY5MDI0YzhiLTVkZWMtYjI0Yi00YWE4LWY0ODBlY2Q5NjYzMCIKICB9Cn0=", + "payloadType": "InlineBase64"}, {"path": "/fabcli000001/fabcli000003.Notebook/notebook-content.py", + "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}, {"path": "/fabcli000001/fabcli000002/fabcli000004.Notebook/.platform", + "payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIk5vdGVib29rIiwKICAgICJkaXNwbGF5TmFtZSI6ICJmYWJjbGlqczFrMTdhenFhIgogIH0sCiAgImNvbmZpZyI6IHsKICAgICJ2ZXJzaW9uIjogIjIuMCIsCiAgICAibG9naWNhbElkIjogIjM3YTQxZTYwLTgzZTUtOGI3ZS00ODU5LTQxNjI2M2M2MmZjNyIKICB9Cn0=", + "payloadType": "InlineBase64"}, {"path": "/fabcli000001/fabcli000002/fabcli000004.Notebook/notebook-content.py", + "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:19:45 GMT + Pragma: + - no-cache + RequestId: + - 2a6b4fa0-5b08-4715-ac3b-2d7e74bce0f7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "ecd96630-f480-4aa8-b24b-5decf9024c8b", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d"}, {"id": "63c62fc7-4162-4859-8b7e-83e537a41e60", + "type": "Notebook", "displayName": "fabcli000004", "description": "", "workspaceId": + "0317e494-ca09-4b8e-a1b9-42b06ac4c585", "folderId": "f9aa14f9-1b1a-420f-861c-a11152a62f1d"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '258' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:45 GMT + Pragma: + - no-cache + RequestId: + - d3353266-b81e-43d0-b641-07c56a4e4864 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:46 GMT + Pragma: + - no-cache + RequestId: + - 29be23c7-3ce6-4c7b-a2bf-726f0e5698c5 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:46 GMT + Pragma: + - no-cache + RequestId: + - cc526b30-1941-4429-bb18-992db724d4b4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:47 GMT + Pragma: + - no-cache + RequestId: + - 575f6e59-fda0-4d7c-9a9c-1232f92df764 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:47 GMT + Pragma: + - no-cache + RequestId: + - 83f48c60-b1e7-4348-9829-06c35357acee + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:48 GMT + Pragma: + - no-cache + RequestId: + - cfb04b18-b664-4d24-90e0-16bc616b3d8f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "ecd96630-f480-4aa8-b24b-5decf9024c8b", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d"}, {"id": "63c62fc7-4162-4859-8b7e-83e537a41e60", + "type": "Notebook", "displayName": "fabcli000004", "description": "", "workspaceId": + "0317e494-ca09-4b8e-a1b9-42b06ac4c585", "folderId": "f9aa14f9-1b1a-420f-861c-a11152a62f1d"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '258' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:48 GMT + Pragma: + - no-cache + RequestId: + - 5f03aa01-e34d-4e72-8044-7ae854cc4c47 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:48 GMT + Pragma: + - no-cache + RequestId: + - 8b16726f-81df-4836-92ea-bcc1df18117a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:49 GMT + Pragma: + - no-cache + RequestId: + - 703ea283-b3ae-4895-ab61-083ae130f6c8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/63c62fc7-4162-4859-8b7e-83e537a41e60 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:19:50 GMT + Pragma: + - no-cache + RequestId: + - b4e15aed-dfff-492e-9be6-70911061de19 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:50 GMT + Pragma: + - no-cache + RequestId: + - 7e13876a-3ffa-4d6f-be91-7a009f374697 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:51 GMT + Pragma: + - no-cache + RequestId: + - 342abce1-78ca-4481-ae15-e0ee8fab2ee7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "ecd96630-f480-4aa8-b24b-5decf9024c8b", "type": "Notebook", + "displayName": "fabcli000003", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "folderId": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '197' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:50 GMT + Pragma: + - no-cache + RequestId: + - ae6a3140-88b1-4957-be94-cd8ad756b627 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:51 GMT + Pragma: + - no-cache + RequestId: + - c553cb5c-af97-489a-88d3-9a5ba74c8161 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/ecd96630-f480-4aa8-b24b-5decf9024c8b + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:19:51 GMT + Pragma: + - no-cache + RequestId: + - 606ecbda-3a16-47f9-ad35-4f6d68d184a3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:52 GMT + Pragma: + - no-cache + RequestId: + - da86ad80-8a33-4ed9-b010-921e14eecaac + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:53 GMT + Pragma: + - no-cache + RequestId: + - ad9c81cb-b47d-4f98-b240-1ab9165f9ba4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, {"id": + "f9aa14f9-1b1a-420f-861c-a11152a62f1d", "displayName": "fabcli000002", "parentFolderId": + "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '201' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:52 GMT + Pragma: + - no-cache + RequestId: + - 6da3ff09-475f-4a09-80f9-0604956b47c5 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/f9aa14f9-1b1a-420f-861c-a11152a62f1d + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:19:53 GMT + Pragma: + - no-cache + RequestId: + - e9b61d8b-536c-4620-8ab2-00e950bbfe70 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:54 GMT + Pragma: + - no-cache + RequestId: + - b520e1ee-7c3f-4072-91ed-0065762950f5 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders?recursive=True + response: + body: + string: '{"value": [{"id": "cc1a2fda-8468-4c0e-824c-7a4cad577a4d", "displayName": + "fabcli000001", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '143' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:54 GMT + Pragma: + - no-cache + RequestId: + - 2c13d4d2-94cd-43fc-94b2-2a4553cbd1c5 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/folders/cc1a2fda-8468-4c0e-824c-7a4cad577a4d + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:19:54 GMT + Pragma: + - no-cache + RequestId: + - b581080e-76ed-4c72-a177-ba1b401412a5 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_with_unsupported_items_success.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_with_unsupported_items_success.yaml new file mode 100644 index 000000000..67612b85f --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_with_unsupported_items_success.yaml @@ -0,0 +1,1126 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:54 GMT + Pragma: + - no-cache + RequestId: + - 7e97ec8f-17d9-4607-89f9-8803f677412a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:55 GMT + Pragma: + - no-cache + RequestId: + - 952c7de2-5d64-4a08-896c-11735ea0a244 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:55 GMT + Pragma: + - no-cache + RequestId: + - c04506b2-9be9-4ba5-a15e-4b187a7babf8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001", "type": "Notebook", "folderId": null, "definition": + {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '731' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:19:56 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2ca7f202-370b-4d0d-994e-439589eeb2be + Pragma: + - no-cache + RequestId: + - ba78775f-07ec-4cf4-a166-d2009b97e9ed + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 2ca7f202-370b-4d0d-994e-439589eeb2be + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2ca7f202-370b-4d0d-994e-439589eeb2be + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:19:56.9760438", + "lastUpdatedTimeUtc": "2026-07-20T10:19:58.8310582", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:17 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2ca7f202-370b-4d0d-994e-439589eeb2be/result + Pragma: + - no-cache + RequestId: + - ac5aa995-0f71-4e9a-8b72-ee97e051352c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 2ca7f202-370b-4d0d-994e-439589eeb2be + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/2ca7f202-370b-4d0d-994e-439589eeb2be/result + response: + body: + string: '{"id": "e9e25b2b-cd60-4cce-a41e-07e45a8c8d86", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:20:17 GMT + Pragma: + - no-cache + RequestId: + - 44c0fdf9-b887-4d84-9ea5-10f6cbc2fb1b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:18 GMT + Pragma: + - no-cache + RequestId: + - 42686c13-cc87-4bfb-a649-cfd6d3231a95 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "e9e25b2b-cd60-4cce-a41e-07e45a8c8d86", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '166' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:19 GMT + Pragma: + - no-cache + RequestId: + - 15c18098-d0e4-4295-992c-9a60c4a09c07 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "e9e25b2b-cd60-4cce-a41e-07e45a8c8d86", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '166' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:19 GMT + Pragma: + - no-cache + RequestId: + - 9e89bbf0-6c02-438f-8e9f-12219dceac9d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000002", "type": "Environment", "folderId": null}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '76' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/environments + response: + body: + string: '{"id": "24a64519-094a-48f3-852b-c36ba50e9107", "type": "Environment", + "displayName": "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId,ETag + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '158' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:21 GMT + ETag: + - '""' + Pragma: + - no-cache + RequestId: + - eb0c57ab-00f7-4eb3-aa7e-3a615d3357e3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:21 GMT + Pragma: + - no-cache + RequestId: + - cb431f2c-9112-48d1-b7f4-26529935bde9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "e9e25b2b-cd60-4cce-a41e-07e45a8c8d86", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, + {"id": "24a64519-094a-48f3-852b-c36ba50e9107", "type": "Environment", "displayName": + "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '222' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:21 GMT + Pragma: + - no-cache + RequestId: + - e0972018-ed61-4731-93e4-59635f3dfa87 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"items": [], "mode": "All"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '28' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/bulkExportDefinitions?beta=true + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:22 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/17525d89-327f-4c7d-aa92-416810a5609d + Pragma: + - no-cache + RequestId: + - 82a03e34-d5c5-4682-8df4-436950e567e5 + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - 17525d89-327f-4c7d-aa92-416810a5609d + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/17525d89-327f-4c7d-aa92-416810a5609d + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:20:22.990055", + "lastUpdatedTimeUtc": "2026-07-20T10:20:24.5015892", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '129' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:43 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/17525d89-327f-4c7d-aa92-416810a5609d/result + Pragma: + - no-cache + RequestId: + - 33ea0429-1ff3-4d41-a90d-1b5dd92abde3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - 17525d89-327f-4c7d-aa92-416810a5609d + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/17525d89-327f-4c7d-aa92-416810a5609d/result + response: + body: + string: '{"itemDefinitionsIndex": [{"id": "e9e25b2b-cd60-4cce-a41e-07e45a8c8d86", + "rootPath": "/fabcli000001.Notebook"}, {"id": "24a64519-094a-48f3-852b-c36ba50e9107", + "rootPath": "/fabcli000002.Environment"}], "definitionParts": [{"path": "/fabcli000001.Notebook/.platform", + "payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIk5vdGVib29rIiwKICAgICJkaXNwbGF5TmFtZSI6ICJmYWJjbGlkcXV5bG1nMDdvIgogIH0sCiAgImNvbmZpZyI6IHsKICAgICJ2ZXJzaW9uIjogIjIuMCIsCiAgICAibG9naWNhbElkIjogIjVhOGM4ZDg2LTA3ZTQtYTQxZS00Y2NlLWNkNjBlOWUyNWIyYiIKICB9Cn0=", + "payloadType": "InlineBase64"}, {"path": "/fabcli000001.Notebook/notebook-content.py", + "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}, {"path": "/fabcli000002.Environment/.platform", + "payload": "ewogICIkc2NoZW1hIjogImh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vanNvbi1zY2hlbWFzL2ZhYnJpYy9naXRJbnRlZ3JhdGlvbi9wbGF0Zm9ybVByb3BlcnRpZXMvMi4wLjAvc2NoZW1hLmpzb24iLAogICJtZXRhZGF0YSI6IHsKICAgICJ0eXBlIjogIkVudmlyb25tZW50IiwKICAgICJkaXNwbGF5TmFtZSI6ICJmYWJjbGlhd2ZoenZhaWluIgogIH0sCiAgImNvbmZpZyI6IHsKICAgICJ2ZXJzaW9uIjogIjIuMCIsCiAgICAibG9naWNhbElkIjogImE1MGU5MTA3LWMzNmItODUyYi00OGYzLTA5NGEyNGE2NDUxOSIKICB9Cn0=", + "payloadType": "InlineBase64"}, {"path": "/fabcli000002.Environment/Setting/Sparkcompute.yml", + "payload": "ZW5hYmxlX25hdGl2ZV9leGVjdXRpb25fZW5naW5lOiBmYWxzZQ0KZHJpdmVyX2NvcmVzOiA4DQpkcml2ZXJfbWVtb3J5OiA1NmcNCmV4ZWN1dG9yX2NvcmVzOiA4DQpleGVjdXRvcl9tZW1vcnk6IDU2Zw0KZHluYW1pY19leGVjdXRvcl9hbGxvY2F0aW9uOg0KICBlbmFibGVkOiB0cnVlDQogIG1pbl9leGVjdXRvcnM6IDENCiAgbWF4X2V4ZWN1dG9yczogOQ0KcnVudGltZV92ZXJzaW9uOiAxLjMNCg==", + "payloadType": "InlineBase64"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:20:43 GMT + Pragma: + - no-cache + RequestId: + - b6fa6d40-d7d5-4a03-a6fe-9d75a82b7e07 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "e9e25b2b-cd60-4cce-a41e-07e45a8c8d86", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, + {"id": "24a64519-094a-48f3-852b-c36ba50e9107", "type": "Environment", "displayName": + "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '222' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:43 GMT + Pragma: + - no-cache + RequestId: + - 007d2cf4-b41a-4e7d-aaa3-accd2c827f3a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:44 GMT + Pragma: + - no-cache + RequestId: + - 2d87753e-f67b-4838-8013-63f1145bcce6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "e9e25b2b-cd60-4cce-a41e-07e45a8c8d86", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}, + {"id": "24a64519-094a-48f3-852b-c36ba50e9107", "type": "Environment", "displayName": + "fabcli000002", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '222' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:45 GMT + Pragma: + - no-cache + RequestId: + - d9a93147-f4f6-454b-9f44-30324d158b02 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/24a64519-094a-48f3-852b-c36ba50e9107 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:20:45 GMT + Pragma: + - no-cache + RequestId: + - f41e265a-d5c6-440f-8536-efdbcc002966 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:46 GMT + Pragma: + - no-cache + RequestId: + - 29b4e65f-c385-4a80-99ae-f909966a80b8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "e9e25b2b-cd60-4cce-a41e-07e45a8c8d86", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '166' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:20:46 GMT + Pragma: + - no-cache + RequestId: + - 7967c4f5-bb7f-4f15-828b-9937c73be6e3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/e9e25b2b-cd60-4cce-a41e-07e45a8c8d86 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:20:46 GMT + Pragma: + - no-cache + RequestId: + - ec05131e-bd0d-4678-84e3-f2f173ab13fa + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_without_recursive_fail.yaml b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_without_recursive_fail.yaml new file mode 100644 index 000000000..ccf17e22a --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_bulk_export/test_bulk_export_workspace_without_recursive_fail.yaml @@ -0,0 +1,508 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:15 GMT + Pragma: + - no-cache + RequestId: + - d884ec8f-bc2e-4938-aa8d-f200da5c724e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:16 GMT + Pragma: + - no-cache + RequestId: + - 7d5f05b6-9fd6-46ed-8313-e440bb8902ca + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '32' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:16 GMT + Pragma: + - no-cache + RequestId: + - a2369f83-d934-4934-9dab-3ce44d33db4c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001", "type": "Notebook", "folderId": null, "definition": + {"parts": [{"path": "notebook-content.py", "payload": "IyBGYWJyaWMgbm90ZWJvb2sgc291cmNlCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAia2VybmVsX2luZm8iOiB7CiMgTUVUQSAgICAgIm5hbWUiOiAic3luYXBzZV9weXNwYXJrIgojIE1FVEEgICB9LAojIE1FVEEgICAiZGVwZW5kZW5jaWVzIjoge30KIyBNRVRBIH0KCiMgQ0VMTCAqKioqKioqKioqKioqKioqKioqKgoKIyBXZWxjb21lIHRvIHlvdXIgbmV3IG5vdGVib29rCiMgVHlwZSBoZXJlIGluIHRoZSBjZWxsIGVkaXRvciB0byBhZGQgY29kZSEKCgojIE1FVEFEQVRBICoqKioqKioqKioqKioqKioqKioqCgojIE1FVEEgewojIE1FVEEgICAibGFuZ3VhZ2UiOiAicHl0aG9uIiwKIyBNRVRBICAgImxhbmd1YWdlX2dyb3VwIjogInN5bmFwc2VfcHlzcGFyayIKIyBNRVRBIH0K", + "payloadType": "InlineBase64"}]}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '731' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/notebooks + response: + body: + string: 'null' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,Retry-After,ETag,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '24' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:17 GMT + ETag: + - '""' + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/adbd7c05-39fd-4239-8b1b-93acf142f328 + Pragma: + - no-cache + RequestId: + - 4d179c47-7b82-4e5e-8285-542c1cd5b6f3 + Retry-After: + - '20' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + x-ms-operation-id: + - adbd7c05-39fd-4239-8b1b-93acf142f328 + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/adbd7c05-39fd-4239-8b1b-93acf142f328 + response: + body: + string: '{"status": "Succeeded", "createdTimeUtc": "2026-07-20T10:14:17.6294613", + "lastUpdatedTimeUtc": "2026-07-20T10:14:18.777555", "percentComplete": 100, + "error": null}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location,x-ms-operation-id + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '131' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:38 GMT + Location: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/adbd7c05-39fd-4239-8b1b-93acf142f328/result + Pragma: + - no-cache + RequestId: + - fa6776a7-68cb-4d3f-9f5a-09f59ae67955 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + x-ms-operation-id: + - adbd7c05-39fd-4239-8b1b-93acf142f328 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://wabi-us-central-b-primary-redirect.analysis.windows.net/v1/operations/adbd7c05-39fd-4239-8b1b-93acf142f328/result + response: + body: + string: '{"id": "1c5b37ed-007a-4055-bec2-a939a83fa304", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 20 Jul 2026 10:14:38 GMT + Pragma: + - no-cache + RequestId: + - f8325d94-5358-4c0f-b2b7-50401a83840e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:39 GMT + Pragma: + - no-cache + RequestId: + - ae5827c8-2952-4f8e-8234-2eb7e4e4c89a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces + response: + body: + string: '{"value": [{"id": "3634a139-2c9e-4205-910b-3b089a31be47", "displayName": + "My workspace", "description": "", "type": "Personal"}, {"id": "0317e494-ca09-4b8e-a1b9-42b06ac4c585", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "", + "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004", + "capacityRegion": "Central US"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '3500' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:39 GMT + Pragma: + - no-cache + RequestId: + - 215f4b37-f936-4ff3-b818-83c48a7e25f3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items + response: + body: + string: '{"value": [{"id": "1c5b37ed-007a-4055-bec2-a939a83fa304", "type": "Notebook", + "displayName": "fabcli000001", "description": "", "workspaceId": "0317e494-ca09-4b8e-a1b9-42b06ac4c585"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '166' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 20 Jul 2026 10:14:39 GMT + Pragma: + - no-cache + RequestId: + - c1b96dc8-6ef9-40c4-afbe-e9b594eb6267 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.6.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/0317e494-ca09-4b8e-a1b9-42b06ac4c585/items/1c5b37ed-007a-4055-bec2-a939a83fa304 + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Mon, 20 Jul 2026 10:14:40 GMT + Pragma: + - no-cache + RequestId: + - aa2c6656-c6cd-4c29-a3ac-0ff00515b331 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/test_commands/test_bulk_export.py b/tests/test_commands/test_bulk_export.py new file mode 100644 index 000000000..1e0ce9ba1 --- /dev/null +++ b/tests/test_commands/test_bulk_export.py @@ -0,0 +1,459 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +from unittest.mock import patch + +from fabric_cli.core import fab_constant as constant +from fabric_cli.core.fab_exceptions import FabricCLIError +from fabric_cli.core.fab_types import ItemType +from fabric_cli.errors import ErrorMessages +from fabric_cli.errors.bulk_export import BulkExportErrors +from tests.test_commands.utils import cli_path_join + + +class TestBulkExport: + + def test_bulk_export_item_fail( + self, item_factory, cli_executor, assert_fabric_cli_error, tmp_path + ): + # Setup + item = item_factory(ItemType.NOTEBOOK) + + # Execute command - bulk-export is not supported on individual items + cli_executor.exec_command( + f"bulk-export {item.full_path} --output {str(tmp_path)} --force --recursive" + ) + + # Assert - should fail with error indicating invalid target + assert_fabric_cli_error( + constant.ERROR_INVALID_OPERATION, + BulkExportErrors.invalid_target(item.name), + ) + + def test_bulk_export_workspace_folder_without_recursive_fail( + self, + folder_factory, + item_factory, + cli_executor, + assert_fabric_cli_error, + tmp_path, + ): + # Setup + folder = folder_factory() + _ = item_factory(ItemType.NOTEBOOK, path=folder.full_path) + + # Execute command with --preserve_binding but without --recursive (which is required for workspace/folder) + cli_executor.exec_command( + f"bulk-export {folder.full_path} --output {str(tmp_path)} --force" + ) + + # Assert - should fail with error indicating recursive is required + assert_fabric_cli_error( + constant.ERROR_INVALID_OPERATION, + BulkExportErrors.recursive_flag_required(), + ) + + def test_bulk_export_workspace_without_recursive_fail( + self, workspace, item_factory, cli_executor, assert_fabric_cli_error, tmp_path + ): + # Setup + _ = item_factory(ItemType.NOTEBOOK, path=workspace.full_path) + + # Execute command with --preserve_binding but without --recursive (which is required for workspace) + cli_executor.exec_command( + f"bulk-export {workspace.full_path} --output {str(tmp_path)} --force" + ) + + # Assert - should fail with error indicating recursive is required + assert_fabric_cli_error( + constant.ERROR_INVALID_OPERATION, + BulkExportErrors.recursive_flag_required(), + ) + + def test_bulk_export_empty_folder_fail( + self, cli_executor, folder_factory, assert_fabric_cli_error, tmp_path + ): + # Setup + folder = folder_factory() + + # Execute command with --recursive on empty folder + cli_executor.exec_command( + f"bulk-export {folder.full_path} --output {str(tmp_path)} --force --recursive" + ) + + # Assert - should fail with error indicating target is empty + assert_fabric_cli_error( + constant.ERROR_INVALID_OPERATION, + BulkExportErrors.empty_target(folder.name), + ) + + def test_bulk_export_empty_workspace_fail( + self, cli_executor, workspace, assert_fabric_cli_error, tmp_path + ): + # Execute command with --recursive on empty workspace + cli_executor.exec_command( + f"bulk-export {workspace.full_path} --output {str(tmp_path)} --force --recursive" + ) + + # Assert - should fail with error indicating target is empty + assert_fabric_cli_error( + constant.ERROR_INVALID_OPERATION, + BulkExportErrors.empty_target(workspace.name), + ) + + def test_bulk_export_invalid_output_path_fail( + self, workspace, cli_executor, assert_fabric_cli_error, tmp_path + ): + # Execute command with invalid output path + invalid_output_path = tmp_path / "non_existent_dir" / "output" + cli_executor.exec_command( + f"bulk-export {workspace.full_path} --output {str(invalid_output_path)} --force --recursive" + ) + + # Assert - should fail with error indicating invalid export path + assert_fabric_cli_error( + constant.ERROR_INVALID_PATH, + ErrorMessages.Common.no_such_file_or_directory(), + ) + + def test_bulk_export_non_local_output_path_fail( + self, workspace, item_factory, cli_executor, assert_fabric_cli_error + ): + # Setup + lakehouse = item_factory(ItemType.LAKEHOUSE) + lakehouse_onelake_full_path = cli_path_join(lakehouse.full_path, "Files") + + cli_executor.exec_command( + f"bulk-export {workspace.full_path} --output {lakehouse_onelake_full_path} --force --recursive" + ) + + # Assert - should fail with error indicating invalid export path + assert_fabric_cli_error( + constant.ERROR_INVALID_OPERATION, + BulkExportErrors.invalid_export_path( + lakehouse_onelake_full_path.strip("/") + ), + ) + + def test_bulk_export_no_exportable_items_fail( + self, + folder_factory, + item_factory, + cli_executor, + assert_fabric_cli_error, + tmp_path, + ): + # Setup - create a folder with unsupported items only + folder = folder_factory() + _ = item_factory(ItemType.ENVIRONMENT, path=folder.full_path) + + # Execute command with --recursive on folder with no exportable items + with patch( + "fabric_cli.utils.fab_cmd_bulk_export_utils.is_command_supported" + ) as side_effect_mock: + # Mock is_command_supported to return False for ENVIRONMENT item to simulate unsupported item type + def is_command_supported_side_effect(element): + if element.item_type == ItemType.ENVIRONMENT: + raise FabricCLIError() + return True + + side_effect_mock.side_effect = is_command_supported_side_effect + cli_executor.exec_command( + f"bulk-export {folder.full_path} --output {str(tmp_path)} --force --recursive" + ) + + # Assert - should fail with error indicating no exportable items + assert_fabric_cli_error( + constant.ERROR_INVALID_OPERATION, + BulkExportErrors.no_exportable_items(), + ) + + def test_bulk_export_output_path_not_empty_warning( + self, workspace, item_factory, cli_executor, mock_print_warning, tmp_path + ): + # Setup - create a notebook and an existing file in the output path + _ = item_factory(ItemType.NOTEBOOK, path=workspace.full_path) + existing_file = tmp_path / "existing_file.txt" + existing_file.touch() + + # Execute command with --force to bypass confirmation but should still print warning about non-empty output path + cli_executor.exec_command( + f"bulk-export {workspace.full_path} --output {str(tmp_path)} --force --recursive" + ) + + # Assert - should print warning about non-empty output path + mock_print_warning.assert_called_with("Exporting to a non-empty output folder") + + def test_bulk_export_inner_folder_structure_success( + self, + folder_factory, + item_factory, + cli_executor, + tmp_path, + mock_print_warning, + ): + # Setup - create workspace/folder/item structure + folder1 = folder_factory() + folder2 = folder_factory(path=folder1.full_path) + _ = item_factory(ItemType.NOTEBOOK, path=folder1.full_path) + notebook2 = item_factory(ItemType.NOTEBOOK, path=folder2.full_path) + + with patch("fabric_cli.utils.fab_ui.print_output_format") as mock_print_output: + # Execute bulk-export on top-level folder with --recursive + cli_executor.exec_command( + f"bulk-export {folder2.full_path} --output {str(tmp_path)} --recursive --force" + ) + + # Assert - should print warning about sensitivity labels and confirm export completion + mock_print_warning.assert_called_once_with( + "Item definitions are exported without their sensitivity labels" + ) + mock_print_output.assert_called_once() + call_kwargs = mock_print_output.call_args + assert "Exported 1 items" in call_kwargs.kwargs.get( + "message", call_kwargs[1].get("message", "") + ) + + # Assert + export_path = ( + tmp_path / folder2.display_name / f"{notebook2.display_name}.Notebook" + ) + assert export_path.is_dir() + files = list(export_path.iterdir()) + assert len(files) == 2 + assert any(file.suffix == ".py" for file in files) + assert any(file.name == ".platform" for file in files) + + def test_bulk_export_workspace_with_folders_structure_success( + self, + folder_factory, + item_factory, + cli_executor, + workspace, + tmp_path, + mock_print_warning, + ): + # Setup + folder1 = folder_factory(path=workspace.full_path) + folder2 = folder_factory(path=folder1.full_path) + notebook1 = item_factory(ItemType.NOTEBOOK, path=folder1.full_path) + notebook2 = item_factory(ItemType.NOTEBOOK, path=folder2.full_path) + + # Reset mock + mock_print_warning.reset_mock() + + with patch("fabric_cli.utils.fab_ui.print_output_format") as mock_print_output: + # Execute command + cli_executor.exec_command( + f"bulk-export {workspace.full_path} --output {str(tmp_path)} --force --recursive" + ) + + # Assert + export_path1 = ( + tmp_path / folder1.display_name / f"{notebook1.display_name}.Notebook" + ) + export_path2 = ( + tmp_path + / folder1.display_name + / folder2.display_name + / f"{notebook2.display_name}.Notebook" + ) + assert export_path1.is_dir() + assert export_path2.is_dir() + files1 = list(export_path1.iterdir()) + files2 = list(export_path2.iterdir()) + assert len(files1) == 2 + assert len(files2) == 2 + assert any(file.suffix == ".py" for file in files1) + assert any(file.suffix == ".py" for file in files2) + assert any(file.name == ".platform" for file in files1) + assert any(file.name == ".platform" for file in files2) + mock_print_output.assert_called_once() + call_kwargs = mock_print_output.call_args + message = call_kwargs.kwargs.get( + "message", call_kwargs[1].get("message", "") + ) + assert "Exported 2 items" in message + assert "Skipped" not in message + mock_print_warning.assert_called_once() + + def test_bulk_export_workspace_with_unsupported_items_success( + self, + cli_executor, + workspace, + item_factory, + tmp_path, + ): + # unsupported items are items that are not supported by the bulk-export command, but user has required permissions + # Setup - create a workspace with both supported and unsupported items + notebook = item_factory(ItemType.NOTEBOOK, path=workspace.full_path) + _ = item_factory(ItemType.ENVIRONMENT, path=workspace.full_path) + + with patch("fabric_cli.utils.fab_ui.print_output_format") as mock_print_output: + # Execute command + with patch( + "fabric_cli.utils.fab_cmd_bulk_export_utils.is_command_supported" + ) as side_effect_mock: + # Mock is_command_supported to return False for ENVIRONMENT item to simulate unsupported item type + def is_command_supported_side_effect(element): + if element.item_type == ItemType.ENVIRONMENT: + raise FabricCLIError() + return True + + side_effect_mock.side_effect = is_command_supported_side_effect + cli_executor.exec_command( + f"bulk-export {workspace.full_path} --output {str(tmp_path)} --force --recursive" + ) + + # Assert - should print summary with exported and skipped counts + mock_print_output.assert_called_once() + call_kwargs = mock_print_output.call_args + message = call_kwargs.kwargs.get( + "message", call_kwargs[1].get("message", "") + ) + assert "Exported 1 items" in message + assert "Skipped 1 items due to unsupported item types" in message + # Unsupported item type should be mentioned in the message + assert "Environment (1)" in message + + # Assert - only the supported notebook should be exported + export_path = tmp_path / f"{notebook.display_name}.Notebook" + assert export_path.is_dir() + files = list(export_path.iterdir()) + assert len(files) == 2 + assert any(file.suffix == ".py" for file in files) + assert any(file.name == ".platform" for file in files) + + def test_bulk_export_folder_with_unsupported_items_success( + self, + cli_executor, + workspace, + folder_factory, + item_factory, + tmp_path, + ): + # unsupported items are items that are not supported by the bulk-export command, but user has required permissions + # Setup - create a folder with both supported and unsupported items + folder = folder_factory(path=workspace.full_path) + notebook = item_factory(ItemType.NOTEBOOK, path=folder.full_path) + _ = item_factory(ItemType.ENVIRONMENT, path=folder.full_path) + + with patch("fabric_cli.utils.fab_ui.print_output_format") as mock_print_output: + # Execute command + with patch( + "fabric_cli.utils.fab_cmd_bulk_export_utils.is_command_supported" + ) as side_effect_mock: + # Mock is_command_supported to return False for ENVIRONMENT item to simulate unsupported item type + def is_command_supported_side_effect(element): + if element.item_type == ItemType.ENVIRONMENT: + raise FabricCLIError() + return True + + side_effect_mock.side_effect = is_command_supported_side_effect + cli_executor.exec_command( + f"bulk-export {folder.full_path} --output {str(tmp_path)} --force --recursive" + ) + + # Assert - should print summary with exported and skipped counts + mock_print_output.assert_called_once() + call_kwargs = mock_print_output.call_args + message = call_kwargs.kwargs.get( + "message", call_kwargs[1].get("message", "") + ) + assert "Exported 1 items" in message + assert "Skipped 1 items due to unsupported item types" in message + # Unsupported item type should be mentioned in the message + assert "Environment (1)" in message + data = call_kwargs.kwargs.get("data", call_kwargs[1].get("data", [])) + assert data[0]["exported"] == 1 + assert data[0]["skipped"] == 1 + + # Assert - only the supported notebook should be exported + export_path = ( + tmp_path / folder.display_name / f"{notebook.display_name}.Notebook" + ) + assert export_path.is_dir() + files = list(export_path.iterdir()) + assert len(files) == 2 + assert any(file.suffix == ".py" for file in files) + assert any(file.name == ".platform" for file in files) + + def test_bulk_export_and_deploy_round_trip( + self, cli_executor, workspace_factory, folder_factory, item_factory, tmp_path + ): + # Setup - create a workspace + origin_ws = workspace_factory() + dest_ws = workspace_factory() + # Setup - create a notebook and folder with a data pipeline in the workspace + folder = folder_factory(path=origin_ws.full_path) + notebook = item_factory(ItemType.NOTEBOOK, path=origin_ws.full_path) + data_pipeline = item_factory(ItemType.DATA_PIPELINE, path=folder.full_path) + + repository_dir = tmp_path / "repo" + repository_dir.mkdir(parents=True, exist_ok=True) + + repository_dir_post_deploy = tmp_path / "post_deploy_repo" + repository_dir_post_deploy.mkdir(parents=True, exist_ok=True) + + # Execute bulk-export command + cli_executor.exec_command( + f"bulk-export {origin_ws.full_path} --output {str(repository_dir)} --force --recursive" + ) + + # Execute deploy command on the exported artifacts to the destination workspace + config_file = _create_config_file( + tmp_path, + workspace_name=dest_ws.display_name, + repository_dir=repository_dir, + ) + + cli_executor.exec_command(f"deploy --config {str(config_file)} --force") + + # bulk-export the destination workspace to verify the artifacts are deployed correctly + cli_executor.exec_command( + f"bulk-export {dest_ws.full_path} --output {str(repository_dir_post_deploy)} --force --recursive" + ) + # Assert - the exported notebook, and data pipeline should exist in the destination workspace + exported_notebook_path = ( + repository_dir_post_deploy / f"{notebook.display_name}.Notebook" + ) + assert exported_notebook_path.is_dir() + exported_data_pipeline_path = ( + repository_dir_post_deploy + / f"{folder.display_name}" + / f"{data_pipeline.display_name}.DataPipeline" + ) + assert exported_data_pipeline_path.is_dir() + + +def _create_config_file( + tmp_path, + *, + workspace_name, + repository_dir, +): + """Helper function for creating deploy configuration files with specified parameters. + + Args: + tmp_path: Temporary path for file creation + workspace_name: Name of the workspace + repository_dir: Path to the repository directory + + Returns: + Path to the created configuration file + """ + config_path = tmp_path / "config.yml" + + config_data = { + "core": { + "workspace": workspace_name, + "repository_directory": str(repository_dir), + }, + } + + import yaml + + with open(config_path, "w") as f: + yaml.dump(config_data, f, default_flow_style=False) + + return config_path diff --git a/tests/test_core/test_fab_logger.py b/tests/test_core/test_fab_logger.py index 35f466edd..2bc33efcf 100644 --- a/tests/test_core/test_fab_logger.py +++ b/tests/test_core/test_fab_logger.py @@ -128,21 +128,21 @@ def test_log_debug_http_request_sample_header(monkeypatch): def test_log_debug_http_response(monkeypatch): monkeypatch.setattr(fab_state_config, "get_config", lambda x: "1") - logger.log_debug_http_response(200, {}, "Response text", time.time()) + logger.log_debug_http_response(200, {}, "Response text", time.time(), "cmd") monkeypatch.setattr(fab_state_config, "get_config", lambda x: "0") - logger.log_debug_http_response(200, {}, "Response text", time.time()) + logger.log_debug_http_response(200, {}, "Response text", time.time(), "cmd") def test_log_debug_http_response_sample_header(monkeypatch): monkeypatch.setattr(fab_state_config, "get_config", lambda x: "1") logger.log_debug_http_response( - 200, {"Some-Header": "value"}, "Response text", time.time() + 200, {"Some-Header": "value"}, "Response text", time.time(), "cmd" ) monkeypatch.setattr(fab_state_config, "get_config", lambda x: "0") logger.log_debug_http_response( - 200, {"Some-Header": "value"}, "Response text", time.time() + 200, {"Some-Header": "value"}, "Response text", time.time(), "cmd" ) @@ -153,6 +153,7 @@ def test_log_debug_http_response_json(monkeypatch): {"Content-Type": "application/json"}, json.dumps({"key": "value"}), time.time(), + "cmd", ) monkeypatch.setattr(fab_state_config, "get_config", lambda x: "0") @@ -161,16 +162,141 @@ def test_log_debug_http_response_json(monkeypatch): {"Content-Type": "application/json"}, json.dumps({"key": "value"}), time.time(), + "cmd", ) def test_log_debug_http_response_bad_json(monkeypatch): monkeypatch.setattr(fab_state_config, "get_config", lambda x: "1") logger.log_debug_http_response( - 200, {"Content-Type": "application/json"}, "{ bad json", time.time() + 200, {"Content-Type": "application/json"}, "{ bad json", time.time(), "cmd" ) +def test_log_debug_http_response_bulk_export(monkeypatch): + monkeypatch.setattr(fab_state_config, "get_config", lambda x: "true") + response_body = json.dumps( + { + "itemDefinitionsIndex": {"item1": "index1"}, + "definitionParts": [ + { + "path": "item_path", + "payload": "item_payload", + "payloadType": "base64", + } + ], + } + ) + with patch.object(logger.get_logger(), "debug") as mock_debug: + logger.log_debug_http_response( + 200, + {"Content-Type": "application/json"}, + response_body, + time.time(), + "bulk-export", + ) + + logged_messages = [call.args[0] for call in mock_debug.call_args_list] + expected_json = '{"itemDefinitionsIndex":{"item1":"index1"},"definitionParts":"redacted_from_log"}' + assert any(expected_json in msg for msg in logged_messages) + + +def test_log_debug_http_response_bulk_export_missing_keys(monkeypatch): + monkeypatch.setattr(fab_state_config, "get_config", lambda x: "true") + response_body = json.dumps({"itemDefinitionsIndex": {"item1": "index1"}}) + with patch.object(logger.get_logger(), "debug") as mock_debug: + logger.log_debug_http_response( + 200, + {"Content-Type": "application/json"}, + response_body, + time.time(), + "bulk-export", + ) + + logged_messages = [call.args[0] for call in mock_debug.call_args_list] + expected_json = '{"itemDefinitionsIndex":{"item1":"index1"}}' + assert any(expected_json in msg for msg in logged_messages) + + +def test_log_debug_http_response_export(monkeypatch): + monkeypatch.setattr(fab_state_config, "get_config", lambda x: "true") + response_body = json.dumps( + { + "definition": { + "format": "ipynb", + "parts": [ + { + "path": "notebook.ipynb", + "payload": "base64encodedcontent", + "payloadType": "base64", + }, + { + "path": "meta.json", + "payload": "anotherpayload", + "payloadType": "base64", + }, + ], + } + } + ) + with patch.object(logger.get_logger(), "debug") as mock_debug: + logger.log_debug_http_response( + 200, + {"Content-Type": "application/json"}, + response_body, + time.time(), + "export", + ) + + logged_messages = [call.args[0] for call in mock_debug.call_args_list] + expected_json = ( + '{"definition":{"format":"ipynb","parts":' + '[{"path":"notebook.ipynb","payload":"redacted_from_log","payloadType":"base64"},' + '{"path":"meta.json","payload":"redacted_from_log","payloadType":"base64"}]}}' + ) + assert any(expected_json in msg for msg in logged_messages) + + +def test_log_debug_http_response_export_missing_parts(monkeypatch): + monkeypatch.setattr(fab_state_config, "get_config", lambda x: "true") + response_body = json.dumps({"definition": {"format": "ipynb"}}) + with patch.object(logger.get_logger(), "debug") as mock_debug: + logger.log_debug_http_response( + 200, + {"Content-Type": "application/json"}, + response_body, + time.time(), + "export", + ) + + logged_messages = [call.args[0] for call in mock_debug.call_args_list] + expected_json = '{"definition":{"format":"ipynb"}}' + assert any(expected_json in msg for msg in logged_messages) + + +def test_log_debug_http_response_other_command_no_processing(monkeypatch): + monkeypatch.setattr(fab_state_config, "get_config", lambda x: "true") + response_body = json.dumps( + { + "itemDefinitionsIndex": {"item1": "index1"}, + "definitionParts": {"part1": "large_payload_data"}, + "definition": {"format": "ipynb", "parts": [{"payload": "content"}]}, + } + ) + with patch.object(logger.get_logger(), "debug") as mock_debug: + logger.log_debug_http_response( + 200, + {"Content-Type": "application/json"}, + response_body, + time.time(), + "other cmd", + ) + + logged_messages = [call.args[0] for call in mock_debug.call_args_list] + expected_json = json.dumps(json.loads(response_body), separators=(",", ":")) + assert any(expected_json in msg for msg in logged_messages) + + def test_log_debug_http_request_exception(monkeypatch): monkeypatch.setattr(fab_state_config, "get_config", lambda x: "1") logger.log_debug_http_request_exception(RequestException("This is an exception")) diff --git a/tests/test_utils/test_fab_cmd_bulk_export_utils.py b/tests/test_utils/test_fab_cmd_bulk_export_utils.py new file mode 100644 index 000000000..49418ed66 --- /dev/null +++ b/tests/test_utils/test_fab_cmd_bulk_export_utils.py @@ -0,0 +1,263 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +import json +from argparse import Namespace +from unittest.mock import Mock, patch + +import pytest + +from fabric_cli.utils.fab_cmd_bulk_export_utils import ( + create_bulk_export_payload, + export_definition_parts_to_storage, + print_bulk_export_summary, +) + + +class TestCreateBulkExportPayload: + def test_empty_list_returns_all_mode(self): + result = json.loads(create_bulk_export_payload([])) + assert result == {"items": [], "mode": "All"} + + def test_single_item_id(self): + result = json.loads(create_bulk_export_payload(["id-1"])) + assert result == { + "items": [{"id": "id-1"}], + "mode": "Selective", + } + + def test_multiple_item_ids(self): + ids = ["id-1", "id-2", "id-3"] + result = json.loads(create_bulk_export_payload(ids)) + assert result["mode"] == "Selective" + assert len(result["items"]) == 3 + assert result["items"] == [{"id": "id-1"}, {"id": "id-2"}, {"id": "id-3"}] + + def test_returns_valid_json_string(self): + payload = create_bulk_export_payload(["abc"]) + assert isinstance(payload, str) + parsed = json.loads(payload) + assert "items" in parsed + assert "mode" in parsed + + def test_preserves_item_id_values(self): + guid = "00000000-0000-0000-0000-000000000000" + result = json.loads(create_bulk_export_payload([guid])) + assert result["items"][0]["id"] == guid + + +def _make_mock_item(item_type_str: str) -> Mock: + item = Mock() + item.item_type = item_type_str + return item + + +class TestPrintBulkExportSummary: + @pytest.fixture + def base_args(self): + return Namespace(output="/tmp/export") + + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_ui.print_output_format") + def test_all_supported_no_unsupported(self, mock_print, base_args): + items_support = { + "supported_items": [ + _make_mock_item("Notebook"), + _make_mock_item("Notebook"), + ], + "unsupported_items": [], + } + + print_bulk_export_summary(base_args, items_support) + + mock_print.assert_called_once() + call_kwargs = mock_print.call_args + assert call_kwargs.kwargs["args"] is base_args + data = call_kwargs.kwargs["data"][0] + assert data["exported"] == 2 + assert data["skipped"] == 0 + assert data["output"] == "/tmp/export" + assert "Skipped" not in call_kwargs.kwargs["message"] + + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_ui.print_output_format") + def test_with_unsupported_items_includes_skip_message(self, mock_print, base_args): + items_support = { + "supported_items": [_make_mock_item("Notebook")], + "unsupported_items": [ + _make_mock_item("Dashboard"), + _make_mock_item("Dashboard"), + _make_mock_item("KQLDatabase"), + ], + } + + print_bulk_export_summary(base_args, items_support) + + mock_print.assert_called_once() + call_kwargs = mock_print.call_args + message = call_kwargs.kwargs["message"] + assert "Skipped 3 items" in message + assert "Dashboard (2)" in message + assert "KQLDatabase (1)" in message + data = call_kwargs.kwargs["data"][0] + assert data["exported"] == 1 + assert data["skipped"] == 3 + + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_ui.print_output_format") + def test_empty_supported_and_unsupported(self, mock_print, base_args): + items_support = { + "supported_items": [], + "unsupported_items": [], + } + + print_bulk_export_summary(base_args, items_support) + + mock_print.assert_called_once() + data = mock_print.call_args.kwargs["data"][0] + assert data["exported"] == 0 + assert data["skipped"] == 0 + + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_ui.print_output_format") + def test_exported_types_grouped_correctly(self, mock_print, base_args): + items_support = { + "supported_items": [ + _make_mock_item("Notebook"), + _make_mock_item("Report"), + _make_mock_item("Notebook"), + ], + "unsupported_items": [], + } + + print_bulk_export_summary(base_args, items_support) + + data = mock_print.call_args.kwargs["data"][0] + assert data["exported_types"] == {"Notebook": 2, "Report": 1} + assert data["skipped_types"] == {} + + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_ui.print_output_format") + def test_message_includes_output_path(self, mock_print, base_args): + items_support = { + "supported_items": [_make_mock_item("Notebook")], + "unsupported_items": [], + } + + print_bulk_export_summary(base_args, items_support) + + message = mock_print.call_args.kwargs["message"] + assert "Exported 1 items to '/tmp/export'" in message + + +class TestExportDefinitionPartsToStorage: + @pytest.fixture + def base_args(self, tmp_path): + output_dir = str(tmp_path / "export_output") + return Namespace(output=output_dir, from_path="myws.Workspace") + + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.utils_export.export_json_parts") + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_storage.get_export_path") + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.utils_export.decode_payload") + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_ui.print_grey") + def test_workspace_export_no_parent_folders( + self, mock_print, mock_decode, mock_get_path, mock_export, base_args, tmp_path + ): + export_path = str(tmp_path / "export_output") + mock_get_path.return_value = {"type": "local", "path": export_path} + mock_decode.return_value = { + "definitionParts": [ + {"path": "/n1.Notebook/notebook-content.py", "payload": "content"} + ] + } + response = { + "definitionParts": [ + {"path": "/n1.Notebook/notebook-content.py", "payload": "encoded"} + ] + } + + export_definition_parts_to_storage(base_args, "ws1.Workspace", response) + + mock_decode.assert_called_once_with(response) + mock_get_path.assert_called_once_with(base_args.output) + mock_export.assert_called_once_with( + base_args, + mock_decode.return_value, + {"type": "local", "path": export_path}, + definition_parts="definitionParts", + ) + + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.utils_export.export_json_parts") + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_storage.get_export_path") + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.utils_export.decode_payload") + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_ui.print_grey") + def test_nested_folder_strips_parent_prefix( + self, mock_print, mock_decode, mock_get_path, mock_export, tmp_path + ): + args = Namespace( + output=str(tmp_path / "out"), + from_path="myws.Workspace/f1.Folder/f2.Folder", + ) + export_path = str(tmp_path / "out") + mock_get_path.return_value = {"type": "local", "path": export_path} + mock_decode.return_value = { + "definitionParts": [ + { + "path": "/f1/f2/n1.Notebook/notebook-content.py", + "payload": "data", + }, + {"path": "/f1/f2/n1.Notebook/.platform", "payload": "{}"}, + ] + } + response = { + "definitionParts": [ + { + "path": "/f1/f2/n1.Notebook/notebook-content.py", + "payload": "enc1", + }, + { + "path": "/f1/f2/n1.Notebook/.platform", + "payload": "enc2", + }, + ] + } + + export_definition_parts_to_storage(args, "f2.Folder", response) + + # After stripping, paths should have the /f1 prefix removed + exported_def = mock_export.call_args.args[1] + for part in exported_def["definitionParts"]: + assert not part["path"].startswith("/f1/") + assert part["path"].startswith("/f2/") + + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.utils_export.export_json_parts") + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_storage.get_export_path") + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.utils_export.decode_payload") + @patch("fabric_cli.utils.fab_cmd_bulk_export_utils.fab_ui.print_grey") + def test_deeply_nested_folders_strips_all_parent_segments( + self, mock_print, mock_decode, mock_get_path, mock_export, tmp_path + ): + args = Namespace( + output=str(tmp_path / "out"), + from_path="myws.Workspace/f1.Folder/f2.Folder/f3.Folder", + ) + export_path = str(tmp_path / "out") + mock_get_path.return_value = {"type": "local", "path": export_path} + mock_decode.return_value = { + "definitionParts": [ + { + "path": "/f1/f2/f3/n1.Notebook/content.json", + "payload": "{}", + }, + ] + } + response = { + "definitionParts": [ + { + "path": "/f1/f2/f3/n1.Notebook/content.json", + "payload": "enc", + }, + ] + } + + export_definition_parts_to_storage(args, "f3.Folder", response) + + exported_def = mock_export.call_args.args[1] + assert ( + exported_def["definitionParts"][0]["path"] == "/f3/n1.Notebook/content.json" + )