feat(export/import): add format support for SparkJobDefinition and SemanticModel #22
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📥 Pull Request
✨ Description of new changes
Summary
Extends export/import format support beyond Notebook to include SparkJobDefinition (V1/V2) and SemanticModel (TMDL/TMSL), based on fabric-rest-api-specs analysis.
Implementation
Format mappings added:
SparkJobDefinition:SparkJobDefinitionV1(default),SparkJobDefinitionV2SemanticModel:TMDL(default),TMSLNotebook: Added explicit format names (ipynb,fabricGitSource) alongside existing.py/.ipynbCore changes:
fab_types.py: Extendeddefinition_format_mappingwith new formatsfab_fs_import_item.py: Replaced hardcoded.py/.ipynbvalidation with dynamic mapping lookupfab_fs_export_item.py: Dynamic format validation against item type mappingsfab_item.py: Updatedget_payload()to handle format parameter dynamically; simplified Notebook format logiccommon.py: Addedinvalid_format()for consistent error messaging across export/importfab_fs_parser.py: Enhanced help text with format examplesUsage:
Testing:
Format parameter is optional (defaults used) maintaining backward compatibility.
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.