From 36520e240ab77f4ce97ce191534a92c32234a839 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Sep 2025 17:11:18 +0300 Subject: [PATCH 001/143] Change pull_request to pull_request_target --- .github/workflows/semantic-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/semantic-pull-request.yml b/.github/workflows/semantic-pull-request.yml index 26b2dec0..7179ead3 100644 --- a/.github/workflows/semantic-pull-request.yml +++ b/.github/workflows/semantic-pull-request.yml @@ -3,7 +3,7 @@ name: 🔍 Semantic PR Validation on: - pull_request: + pull_request_target: branches: - main types: @@ -113,4 +113,4 @@ jobs: repo: context.repo.repo, name: 'invalid', }); - } \ No newline at end of file + } From 55020f077694e45ca67d9ff6a940c5e44d286173 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 002/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 852b6b7f..1d912e3d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From beb01490bffaf32ff5321eb53f91264f535a3ea1 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 003/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 98a1aa04..479c7cb5 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From ca313c305ad010157171ee7bfd9af66dc9a5d957 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 004/143] Introduce release workflow --- .github/workflows/create-release.yml | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/create-release.yml diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml new file mode 100644 index 00000000..819cd8cf --- /dev/null +++ b/.github/workflows/create-release.yml @@ -0,0 +1,37 @@ +name: 🚀 Create GitHub Release + +on: + workflow_dispatch: + inputs: + version: + description: 'The version to release (e.g., v1.2.0)' + required: true + +jobs: + create-release: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up release variables + id: set_vars + run: | + VERSION="${{ github.event.inputs.version }}" + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT + echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + + - name: Validate release notes file + run: | + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + exit 1 + fi + + - name: Create Release with GitHub CLI + run: | + gh release create ${{ steps.set_vars.outputs.tag_name }} \ + --title "${{ steps.set_vars.outputs.tag_name }}" \ + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From 39f2d851274d5d302ba9caeaf0a3768a69e13c2c Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 005/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 819cd8cf..e8dd7f15 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -31,7 +31,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From 5e3b68e2d33a6373f56631b15e6b17abc05e2b33 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 006/143] Initial plan From 7c573b0285782f74cafea72d6db1d7b5c145c5b6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 007/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 124 ++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index e8dd7f15..4494fd73 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,6 +6,10 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true + commit_sha: + description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + required: false + default: '' jobs: create-release: @@ -15,25 +19,137 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required to access full commit history for validation + + - name: Display workflow information + run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY + if [ -n "${{ github.event.inputs.commit_sha }}" ]; then + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + else + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + + - name: Validate commit SHA (if provided) + if: ${{ github.event.inputs.commit_sha != '' }} + run: | + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Invalid commit SHA: $COMMIT_SHA" + exit 1 + fi + echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + + # Use provided commit SHA or default to HEAD + if [ -n "$COMMIT_SHA" ]; then + TARGET_COMMIT="$COMMIT_SHA" + else + TARGET_COMMIT="HEAD" + fi + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT + + # Get the actual commit SHA for display + ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") + echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT + + echo "✅ Release variables set:" + echo " - Tag name: $VERSION" + echo " - Target commit: $ACTUAL_SHA" + echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From f9a4bb2a434fc2f23857477b38cb7d7be416c674 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 008/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 4494fd73..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From 641c4e768f65e6e348b1897e352bd4f0cbc39bae Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 009/143] Update release notes for v1.3.1 --- docs/release-notes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 479c7cb5..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions @@ -165,4 +165,4 @@ hide: * Initial public release * Released to PyPI -* Onboarded to GitHub Pages \ No newline at end of file +* Onboarded to GitHub Pages From 516dbb8cb5dcbbcb1f76372ec9f1236498a10fcf Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 010/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 484993f8291512a108bed94c975fc2bab2647399 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 011/143] Introduce release workflow --- .github/workflows/create-release.yml | 140 +-------------------------- 1 file changed, 4 insertions(+), 136 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fbaa15b3..819cd8cf 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,10 +6,6 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true - commit_sha: - description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' - required: false - default: '' jobs: create-release: @@ -19,151 +15,23 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - with: - fetch-depth: 0 # Required to access full commit history for validation - - - name: Display workflow information - run: | - if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" - else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" - fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF - - - name: Validate commit SHA (if provided) - if: ${{ github.event.inputs.commit_sha != '' }} - run: | - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF - echo "Error: Invalid commit SHA: $COMMIT_SHA" - exit 1 - fi - echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - - # Use provided commit SHA or default to HEAD - if [ -n "$COMMIT_SHA" ]; then - TARGET_COMMIT="$COMMIT_SHA" - else - TARGET_COMMIT="HEAD" - fi - echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT - echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT - - # Get the actual commit SHA for display - ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") - echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT - - echo "✅ Release variables set:" - echo " - Tag name: $VERSION" - echo " - Target commit: $ACTUAL_SHA" - echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" - if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF - echo "Error: Release notes file not found at $CHANGELOG_FILE" + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF - - # Create the release with the target commit - if gh release create ${{ steps.set_vars.outputs.tag_name }} \ + gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ - --target "${{ steps.set_vars.outputs.target_commit }}"; then - - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF - echo "Error: Failed to create release" - exit 1 - fi + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From 3a42a5cc88c1846bc164ea73a3e43a2a7549f4f1 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 012/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 819cd8cf..e8dd7f15 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -31,7 +31,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From 0755733cee4f5bf85a6ef9533c5e44caaeb49a0e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 013/143] Initial plan From 5917da7c91f018d0fedbacfe5d889e8651318d53 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 014/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 124 ++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index e8dd7f15..4494fd73 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,6 +6,10 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true + commit_sha: + description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + required: false + default: '' jobs: create-release: @@ -15,25 +19,137 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required to access full commit history for validation + + - name: Display workflow information + run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY + if [ -n "${{ github.event.inputs.commit_sha }}" ]; then + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + else + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + + - name: Validate commit SHA (if provided) + if: ${{ github.event.inputs.commit_sha != '' }} + run: | + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Invalid commit SHA: $COMMIT_SHA" + exit 1 + fi + echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + + # Use provided commit SHA or default to HEAD + if [ -n "$COMMIT_SHA" ]; then + TARGET_COMMIT="$COMMIT_SHA" + else + TARGET_COMMIT="HEAD" + fi + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT + + # Get the actual commit SHA for display + ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") + echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT + + echo "✅ Release variables set:" + echo " - Tag name: $VERSION" + echo " - Target commit: $ACTUAL_SHA" + echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From 635eadc107fdd33d7d22239951eab46eef0f3b66 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 015/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 4494fd73..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From 22cc9cb859a54276701237c8a19c5afaafd93f81 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 016/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 5897cdee55590c6a9a34d699541a1c8455fea100 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 017/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 845fcb529a00f3602b50ca71425d0b7c6a2564a2 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 018/143] Introduce release workflow --- .github/workflows/create-release.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 61dc03f4..ca613e7a 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,11 +113,8 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From 5278b73827523058ab8721b8deb4c2c154398f0f Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 019/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index ca613e7a..f5f9c1f0 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -115,6 +115,8 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From 3c75e8846bacc12b60921d03996937390481b2f2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 020/143] Initial plan From 326c42954094236bdc2aebbdd3cfddd64bbf31df Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 021/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index f5f9c1f0..61dc03f4 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,6 +113,7 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: From aca88241ad1635fc6994aceaa5bf9bea9100fabf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 022/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 42 ++++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 61dc03f4..026a334d 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -29,14 +29,14 @@ jobs: else TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - + cat >> $GITHUB_STEP_SUMMARY << EOF # 🚀 Create Release Workflow - + ## â„šī¸ Workflow Information - **Version:** ${{ github.event.inputs.version }} $TARGET_INFO - + EOF - name: Validate commit SHA (if provided) @@ -46,14 +46,14 @@ jobs: if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then cat >> $GITHUB_STEP_SUMMARY << EOF ## ❌ Error: Invalid Commit SHA - + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - + ### 📝 Troubleshooting - Verify the commit SHA exists in the repository - Ensure you are using the full commit SHA (or at least 7 characters) - Check that the commit is in the current branch history - + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 @@ -92,23 +92,23 @@ jobs: if [ ! -f "$CHANGELOG_FILE" ]; then cat >> $GITHUB_STEP_SUMMARY << EOF ## ❌ Error: Release Notes File Not Found - + The release notes file was not found at the expected location: - + \`\`\` $CHANGELOG_FILE \`\`\` - + ### 📝 What to do: 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` 3. You can use \`changie batch \` to generate the changelog file - + ### 📂 Available changelog files: \`\`\` $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") \`\`\` - + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 @@ -121,14 +121,14 @@ jobs: run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release - + Creating release with the following details: - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - + EOF - + # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ @@ -137,32 +137,32 @@ jobs: cat >> $GITHUB_STEP_SUMMARY << EOF ## ✅ Release Created Successfully! - + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - + ### 📋 Release Details: - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - + EOF else cat >> $GITHUB_STEP_SUMMARY << EOF ## ❌ Error: Failed to Create Release - + The GitHub CLI failed to create the release. This could be due to: - + ### 🔍 Common Issues: - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - Insufficient permissions to create releases - Network connectivity issues - Invalid release notes format - + ### 📝 Next Steps: 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` 2. Verify you have the necessary permissions to create releases 3. Review the workflow run logs for detailed error messages - + EOF echo "Error: Failed to create release" exit 1 From c2ac8ba9ab7ddb4522a93dfa06bce24d52ecce2f Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 023/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 2dc9582dab18e56219605a7a035ddf586c2fd171 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 024/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 7b9fc6925fb70c4dd003319f679a79e9864acb9c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 025/143] Initial plan From 31fe14a4447ff77583d2e10137d85932f710927f Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 026/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From b5580f2d256bf19fcc8dfe0e99d640550524e3a2 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Thu, 29 Jan 2026 11:58:35 +0000 Subject: [PATCH 027/143] merge --- .github/ISSUE_TEMPLATE/4-documentation.yml | 81 + ...st_set_connection_displayName_success.yaml | 2054 +++++++++++++++++ ..._success[privacyLevel-Organizational].yaml | 1899 +++++++++++++++ ...way_virtualNetwork_capacityId_success.yaml | 614 +++++ ...tualNetwork_success[displayName-None].yaml | 828 +++++++ ...cess[inactivityMinutesBeforeSleep-60].yaml | 614 +++++ ...ork_success[numberOfMemberGateways-2].yaml | 614 +++++ ...test_set_sparkpool_success[name-None].yaml | 1008 ++++++++ 8 files changed, 7712 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/4-documentation.yml create mode 100644 tests/test_commands/recordings/test_commands/test_set/test_set_connection_displayName_success.yaml create mode 100644 tests/test_commands/recordings/test_commands/test_set/test_set_connection_metadata_success[privacyLevel-Organizational].yaml create mode 100644 tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_capacityId_success.yaml create mode 100644 tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_success[displayName-None].yaml create mode 100644 tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_success[inactivityMinutesBeforeSleep-60].yaml create mode 100644 tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_success[numberOfMemberGateways-2].yaml create mode 100644 tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[name-None].yaml diff --git a/.github/ISSUE_TEMPLATE/4-documentation.yml b/.github/ISSUE_TEMPLATE/4-documentation.yml new file mode 100644 index 00000000..0f1057e3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/4-documentation.yml @@ -0,0 +1,81 @@ +name: "📝 Documentation Feedback" +description: Provide documentation feedback +title: "[DOCUMENTATION] " +labels: ["documentation"] +body: + - type: markdown + attributes: + value: Thanks for taking the time to provide documentation feedback! Please include as much detail as possible to help us improve our documentation. + + - type: input + id: documentation-location + attributes: + label: URL to documentation + description: Provide a URL to the documentation location. + placeholder: "https://microsoft.github.io/fabric-cli/..." + validations: + required: true + + - type: dropdown + id: feedback-type + attributes: + label: Type of feedback + description: What kind of documentation issue is this? + options: + - Unclear or confusing content + - Missing information + - Incorrect or outdated information + - Typo or grammatical error + - Code example issue + - Broken link + - Suggestion for improvement + - Other + validations: + required: true + + - type: textarea + id: current-content + attributes: + label: Current content + description: Copy the relevant section of documentation that needs improvement (if applicable). + placeholder: "Paste the current text or describe what exists..." + validations: + required: false + + - type: textarea + id: feedback + attributes: + label: Feedback + description: What is the issue or what improvement would you suggest? + placeholder: "Describe what's wrong or what could be better..." + validations: + required: true + + - type: textarea + id: suggested-change + attributes: + label: Suggested change + description: If you have a specific suggestion, please provide it here. + placeholder: "Provide your suggested text, code, or improvement..." + validations: + required: false + + - type: dropdown + id: user-experience + attributes: + label: Experience with fabric-cli + description: This helps us understand our audience better. + options: + - New to fabric-cli + - Some experience with fabric-cli + - Experienced user + validations: + required: false + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add any other context, screenshots, or related links here. + validations: + required: false \ No newline at end of file diff --git a/tests/test_commands/recordings/test_commands/test_set/test_set_connection_displayName_success.yaml b/tests/test_commands/recordings/test_commands/test_set/test_set_connection_displayName_success.yaml new file mode 100644 index 00000000..987a36d6 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_set/test_set_connection_displayName_success.yaml @@ -0,0 +1,2054 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '907' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:14:52 GMT + Pragma: + - no-cache + RequestId: + - a556188b-3c60-41f2-891a-95ef8c6a1db4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections/supportedConnectionTypes + response: + body: + string: '{"value": [{"type": "SQL", "creationMethods": [{"name": "Sql", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2", "ServicePrincipal", + "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": ["NotEncrypted", + "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Basic", "ServicePrincipal", "WorkspaceIdentity"]}, {"type": "AnalysisServices", + "creationMethods": [{"name": "AnalysisServices", "parameters": [{"name": "server", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "database", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic", "OAuth2", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Basic", "WorkspaceIdentity"]}, {"type": "SharePoint", "creationMethods": + [{"name": "SharePointList", "parameters": [{"name": "sharePointSiteUrl", "dataType": + "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["Anonymous", "OAuth2", "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Anonymous", "ServicePrincipal", "WorkspaceIdentity"]}, {"type": "Web", "creationMethods": + [{"name": "Web", "parameters": [{"name": "url", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Anonymous", + "Basic", "OAuth2", "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": true, "supportedCredentialTypesForUsageInUserControlledCode": + ["Anonymous", "Basic", "ServicePrincipal", "WorkspaceIdentity"]}, {"type": + "OData", "creationMethods": [{"name": "OData", "parameters": [{"name": "url", + "dataType": "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["Anonymous", "Basic", "Key", "OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": true, "supportedCredentialTypesForUsageInUserControlledCode": + ["Anonymous", "Basic", "Key"]}, {"type": "MySql", "creationMethods": [{"name": + "MySql", "parameters": [{"name": "server", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "database", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Basic"]}, {"type": "PostgreSQL", "creationMethods": [{"name": "PostgreSql", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Basic"]}, {"type": "AzureTables", "creationMethods": [{"name": "AzureTables", + "parameters": [{"name": "account", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "domain", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key", "OAuth2", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": ["Key", "WorkspaceIdentity"]}, + {"type": "AzureBlobs", "creationMethods": [{"name": "AzureBlobs", "parameters": + [{"name": "account", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "domain", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Anonymous", "Key", "OAuth2", "SharedAccessSignature", + "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Anonymous", "Key", "SharedAccessSignature", "ServicePrincipal", "WorkspaceIdentity"]}, + {"type": "GoogleAnalytics", "creationMethods": [{"name": "GoogleAnalytics", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + []}, {"type": "Salesforce", "creationMethods": [{"name": "Salesforce", "parameters": + [{"name": "loginServer", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "classInfo", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + []}, {"type": "AdobeAnalytics", "creationMethods": [{"name": "AdobeAnalytics", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + []}, {"type": "AzureDataLakeStorage", "creationMethods": [{"name": "AzureDataLakeStorage", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "path", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key", "OAuth2", "SharedAccessSignature", + "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Key", "SharedAccessSignature", "ServicePrincipal", "WorkspaceIdentity"]}, + {"type": "Exchange", "creationMethods": [{"name": "Exchange", "parameters": + [{"name": "emailAddress", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + []}, {"type": "appFigures", "creationMethods": [{"name": "appFigures.Tables", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GoogleBigQuery", "creationMethods": [{"name": "GoogleBigQuery.Database", + "parameters": [{"name": "BillingProject", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "UseStorageApi", "dataType": "Boolean", + "required": false, "allowedValues": null}, {"name": "ConnectionTimeout", "dataType": + "Duration", "required": false, "allowedValues": null}, {"name": "CommandTimeout", + "dataType": "Duration", "required": false, "allowedValues": null}, {"name": + "ProjectId", "dataType": "Text", "required": false, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GoogleBigQueryAad", "creationMethods": [{"name": "GoogleBigQueryAad.Database", + "parameters": [{"name": "billingProject", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "Implementation", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "UseStorageApi", "dataType": + "Boolean", "required": false, "allowedValues": null}, {"name": "ConnectionTimeout", + "dataType": "Duration", "required": false, "allowedValues": null}, {"name": + "CommandTimeout", "dataType": "Duration", "required": false, "allowedValues": + null}, {"name": "BYOID_AudienceUri", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "ProjectId", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "PowerBI", "creationMethods": [{"name": "PowerBI.Dataflows", "parameters": + []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Cds", "creationMethods": [{"name": "Cds.Entities", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "ReorderColumns", "dataType": "Boolean", "required": false, "allowedValues": + null}, {"name": "UseFormattedValue", "dataType": "Boolean", "required": false, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DataLake", "creationMethods": [{"name": "DataLake.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "PageSize", "dataType": "Number", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "DataWorld", "creationMethods": [{"name": "DataWorld.Dataset", "parameters": + [{"name": "owner", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "id", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "query", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DocumentDB", "creationMethods": [{"name": "DocumentDB.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "collection", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Dynamics365BusinessCentral", "creationMethods": [{"name": + "Dynamics365BusinessCentral.ApiContentsWithOptions", "parameters": [{"name": + "environment", "dataType": "Text", "required": false, "allowedValues": null}, + {"name": "company", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "apiRoute", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "UseReadOnlyReplica", "dataType": "Boolean", "required": false, + "allowedValues": null}, {"name": "AcceptLanguage", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "Timeout", "dataType": "Duration", + "required": false, "allowedValues": null}, {"name": "ODataMaxPageSize", "dataType": + "Number", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Dynamics 365 Business Central (on-premises)", "creationMethods": [{"name": + "Dynamics365BusinessCentralOnPremises.Contents", "parameters": [{"name": "url", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "company", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Dynamics NAV", "creationMethods": [{"name": "DynamicsNav.Contents", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "company", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "github", "creationMethods": [{"name": "Github.Tables", "parameters": + [{"name": "RepositoryOwner", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Repository", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureHive", "creationMethods": [{"name": "AzureHiveLLAP.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ApacheHive", "creationMethods": [{"name": "ApacheHiveLLAP.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "thriftTransport", "dataType": "Number", "required": true, + "allowedValues": ["1", "2"]}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Impala", "creationMethods": [{"name": "Impala.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Implementation", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "ConnectionTimeout", "dataType": "Duration", "required": false, + "allowedValues": null}, {"name": "CommandTimeout", "dataType": "Duration", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Anonymous", "Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted", + "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDataExplorer", "creationMethods": [{"name": "AzureDataExplorer.Contents", + "parameters": [{"name": "cluster", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "tableOrQuery", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "MaxRows", "dataType": "Number", "required": false, "allowedValues": + null}, {"name": "MaxSize", "dataType": "Number", "required": false, "allowedValues": + null}, {"name": "NoTruncate", "dataType": "Boolean", "required": false, "allowedValues": + null}, {"name": "AdditionalSetStatements", "dataType": "Text", "required": + false, "allowedValues": null}]}, {"name": "AzureDataExplorer.KqlDatabase", + "parameters": [{"name": "cluster", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "database", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "tableOrQuery", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "MaxRows", "dataType": + "Number", "required": false, "allowedValues": null}, {"name": "MaxSize", "dataType": + "Number", "required": false, "allowedValues": null}, {"name": "NoTruncate", + "dataType": "Boolean", "required": false, "allowedValues": null}, {"name": + "AdditionalSetStatements", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "LinkedIn", "creationMethods": [{"name": "LinkedIn.SalesNavigator", "parameters": + [{"name": "selectContracts", "dataType": "Text", "required": true, "allowedValues": + ["All Contracts", "Selected Contracts"]}, {"name": "startAt", "dataType": + "Date", "required": false, "allowedValues": null}, {"name": "endAt", "dataType": + "Date", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "mixpanel", "creationMethods": [{"name": "Mixpanel.Tables", "parameters": + []}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Netezza", "creationMethods": [{"name": "Netezza.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "ConnectionTimeout", "dataType": "Duration", "required": false, + "allowedValues": null}, {"name": "CommandTimeout", "dataType": "Duration", + "required": false, "allowedValues": null}, {"name": "NormalizeDatabaseName", + "dataType": "Boolean", "required": false, "allowedValues": null}, {"name": + "HierarchicalNavigation", "dataType": "Boolean", "required": false, "allowedValues": + null}, {"name": "CreateNavigationProperties", "dataType": "Boolean", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PlanviewEnterprise", "creationMethods": [{"name": "PlanviewEnterprise.Feed", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AmazonRedshift", "creationMethods": [{"name": "AmazonRedshift.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "ProviderName", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "BatchSize", "dataType": "Number", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Snowflake", "creationMethods": [{"name": "Snowflake.Databases", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "warehouse", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Role", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "CreateNavigationProperties", "dataType": "Boolean", "required": + false, "allowedValues": null}, {"name": "ConnectionTimeout", "dataType": "Number", + "required": false, "allowedValues": null}, {"name": "CommandTimeout", "dataType": + "Number", "required": false, "allowedValues": null}, {"name": "Implementation", + "dataType": "Text", "required": false, "allowedValues": [null, "2.0"]}]}], + "supportedCredentialTypes": ["Basic", "OAuth2", "KeyPair"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Spark", "creationMethods": [{"name": "AzureSpark.Tables", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "BatchSize", "dataType": "Number", "required": false, "allowedValues": + null}, {"name": "HierarchicalNavigation", "dataType": "Boolean", "required": + false, "allowedValues": null}, {"name": "Implementation", "dataType": "Text", + "required": false, "allowedValues": null}]}, {"name": "ApacheSpark.Tables", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "protocol", "dataType": "Number", "required": true, "allowedValues": + ["0", "2"]}, {"name": "BatchSize", "dataType": "Number", "required": false, + "allowedValues": null}, {"name": "HierarchicalNavigation", "dataType": "Boolean", + "required": false, "allowedValues": null}, {"name": "Implementation", "dataType": + "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SparkPost", "creationMethods": [{"name": "SparkPost.NavTable", "parameters": + [{"name": "DaysToAggregate", "dataType": "Number", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SweetIQ", "creationMethods": [{"name": "SweetIQ.Tables", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Troux", "creationMethods": [{"name": "Troux.Feed", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "VSTS", "creationMethods": [{"name": "VSTS.AnalyticsViews", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "project", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Vertica", "creationMethods": [{"name": "Vertica.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Acterys", "creationMethods": [{"name": "Acterys.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ADPAnalytics", "creationMethods": [{"name": "ADPAnalytics.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Anaplan", "creationMethods": [{"name": "Anaplan.Contents", + "parameters": [{"name": "apiUrl", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "authUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Asana", "creationMethods": [{"name": "Asana.Tables", "parameters": + [{"name": "link", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AssembleViews", "creationMethods": [{"name": "AssembleViews.Feed", + "parameters": [{"name": "resourceUrl", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AutodeskConstructionCloud", "creationMethods": [{"name": + "AutodeskConstructionCloud.Feed", "parameters": [{"name": "region", "dataType": + "Text", "required": true, "allowedValues": ["Australia", "Canada", "Europe", + "Germany", "India", "Japan", "UK", "United States"]}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AutomationAnywhere", "creationMethods": [{"name": "AutomationAnywhere.Feed", + "parameters": [{"name": "CRVersion", "dataType": "Text", "required": true, + "allowedValues": ["10.x/11.x", "Automation 360", "11.3.5.1 Or Higher"]}, {"name": + "CRHostName", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AutomyDataAnalytics", "creationMethods": [{"name": "AutomyDataAnalytics.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "BI360", "creationMethods": [{"name": "BI360.Contents", "parameters": + [{"name": "Url", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "BitSightSecurityRatings", "creationMethods": [{"name": "BitSightSecurityRatings.Contents", + "parameters": [{"name": "company_guid", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "affects_rating_findings", "dataType": "Boolean", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Key"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Bloomberg", "creationMethods": [{"name": "Bloomberg.Query", "parameters": + [{"name": "Bloomberg", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "BQECore", "creationMethods": [{"name": "BQECore.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "BuildingConnected", "creationMethods": [{"name": "BuildingConnected.Contents", + "parameters": [{"name": "rangeStart", "dataType": "DateTimeZone", "required": + false, "allowedValues": null}, {"name": "rangeEnd", "dataType": "DateTimeZone", + "required": false, "allowedValues": null}, {"name": "includeClosed", "dataType": + "Boolean", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "CCHTagetik", "creationMethods": [{"name": "CCHTagetik.Contents2", "parameters": + [{"name": "URL", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "Database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "AW", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "Dataset", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "StartDate", "dataType": "DateTime", "required": false, "allowedValues": + null}, {"name": "EndDate", "dataType": "DateTime", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CDataConnectCloud", "creationMethods": [{"name": "CDataConnectCloud.ContentsV2", + "parameters": [{"name": "Query", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Celonis", "creationMethods": [{"name": "Celonis.Navigation", + "parameters": [{"name": "URL", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Cherwell", "creationMethods": [{"name": "Cherwell.SavedSearches", + "parameters": [{"name": "API URL", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Client ID", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Locale", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "Saved Search URL", "dataType": "Text", "required": false, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CloudBluePSA", "creationMethods": [{"name": "CloudBluePSA.Feed", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "filter", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Cognite", "creationMethods": [{"name": "Cognite.Contents", + "parameters": [{"name": "project", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "environment", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CogniteDataSource", "creationMethods": [{"name": "CogniteDataSource.Contents", + "parameters": [{"name": "project", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "organization", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Databricks", "creationMethods": [{"name": "Databricks.Catalogs", + "parameters": [{"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "httpPath", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Catalog", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "Database", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "QueryTags", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "EnableAutomaticProxyDiscovery", "dataType": "Text", "required": + false, "allowedValues": ["enabled", "disabled"]}, {"name": "Implementation", + "dataType": "Text", "required": false, "allowedValues": [null, "2.0"]}]}], + "supportedCredentialTypes": ["OAuth2", "Key", "Basic", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "DatabricksMultiCloud", "creationMethods": [{"name": "DatabricksMultiCloud.Catalogs", + "parameters": [{"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "httpPath", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Catalog", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "Database", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "QueryTags", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "EnableAutomaticProxyDiscovery", "dataType": "Text", "required": + false, "allowedValues": ["enabled", "disabled"]}, {"name": "Implementation", + "dataType": "Text", "required": false, "allowedValues": [null, "2.0"]}]}], + "supportedCredentialTypes": ["OAuth2", "Key", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DeltaSharing", "creationMethods": [{"name": "DeltaSharing.Contents", + "parameters": [{"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "rowLimitHint", "dataType": "Number", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Dremio", "creationMethods": [{"name": "Dremio.DatabasesV370", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "encryption", "dataType": "Text", "required": true, "allowedValues": + ["Enabled", "Disabled", "Enabled-PEM"]}, {"name": "engine", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "routingTag", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "routingQueue", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DremioCloud", "creationMethods": [{"name": "DremioCloud.DatabasesByServerV370", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "projectId", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "engine", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "routingTag", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "routingQueue", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "encryption", "dataType": "Text", "required": false, "allowedValues": + ["Enabled-PEM"]}]}], "supportedCredentialTypes": ["OAuth2", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DynatraceGrail", "creationMethods": [{"name": "DynatraceGrail.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "QueryInput", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "ScanGBParameter", "dataType": "Number", "required": false, + "allowedValues": null}, {"name": "MaxResultParameter", "dataType": "Number", + "required": false, "allowedValues": null}, {"name": "MaxBytesParameter", "dataType": + "Number", "required": false, "allowedValues": null}, {"name": "SamplingParameter", + "dataType": "Number", "required": false, "allowedValues": ["10", "100", "1000", + "10000"]}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "EduFrame", "creationMethods": [{"name": "EduFrame.Contents", + "parameters": [{"name": "domainSlug", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2", "Key"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "EmigoDataSourceConnector", "creationMethods": [{"name": "Emigo.Contents", + "parameters": [{"name": "DataRestrictionType", "dataType": "Text", "required": + false, "allowedValues": ["Not set", "Days", "Weeks", "Months", "Quarters", + "Years"]}, {"name": "DataRestrictionValue", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "DataRestrictionMode", "dataType": + "Text", "required": false, "allowedValues": ["Default", "Exact"]}, {"name": + "AuthorizationMode", "dataType": "Text", "required": false, "allowedValues": + ["Default", "EmigoObszary", "EmigoHierarchia", "CustomRestrictions"]}]}], + "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "EntersoftBusinessSuite", "creationMethods": [{"name": "EntersoftBusinessSuite.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "EQuIS", "creationMethods": [{"name": "EQuIS.Contents", "parameters": + [{"name": "baseUri", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key", "Basic", "OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "eWayCRM", "creationMethods": [{"name": "eWayCRM.Contents2", + "parameters": [{"name": "IncludeRelations", "dataType": "Boolean", "required": + false, "allowedValues": ["false", "true"]}, {"name": "Query", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "QueryAmount", + "dataType": "Boolean", "required": false, "allowedValues": ["false", "true"]}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FactSetAnalytics", "creationMethods": [{"name": "FactSetAnalytics.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FactSetRMS", "creationMethods": [{"name": "FactSetRMS.Functions", + "parameters": []}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Funnel", "creationMethods": [{"name": "Funnel.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "HexagonSmartApi", "creationMethods": [{"name": "HexagonSmartApi.Feed", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "headers", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "odataFeedVersion", "dataType": "Text", "required": false, + "allowedValues": ["2.0", "1.0"]}]}], "supportedCredentialTypes": ["OAuth2"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "IndustrialAppStore", "creationMethods": [{"name": "IndustrialAppStore.NavigationTable", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "InformationGrid", "creationMethods": [{"name": "InformationGrid.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "inwink", "creationMethods": [{"name": "inwink.ScopeContents", + "parameters": [{"name": "customerId", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "scope", "dataType": "Text", "required": + true, "allowedValues": ["Audience", "Event", "Community"]}, {"name": "scopeId", + "dataType": "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "JamfPro", "creationMethods": [{"name": "JamfPro.Contents", "parameters": + [{"name": "jamfUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Kognitwin", "creationMethods": [{"name": "Kognitwin.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "kxkdbinsightsenterprise", "creationMethods": [{"name": "kxkdbinsightsenterprise.Contents", + "parameters": [{"name": "HostUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "LEAP", "creationMethods": [{"name": "LEAP.Contents", "parameters": + []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "LinkedInLearning", "creationMethods": [{"name": "LinkedInLearning.Contents", + "parameters": [{"name": "start_date", "dataType": "DateTime", "required": + false, "allowedValues": null}, {"name": "end_date", "dataType": "DateTime", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "MicroStrategyDataset", "creationMethods": [{"name": "MicroStrategyDataset.Contents", + "parameters": [{"name": "libraryUrl", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "authMode", "dataType": "Text", "required": + false, "allowedValues": ["Standard", "LDAP"]}, {"name": "limit", "dataType": + "Number", "required": false, "allowedValues": null}, {"name": "timeout", "dataType": + "Number", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "OneStream", "creationMethods": [{"name": "OneStream.Navigation", + "parameters": [{"name": "OneStreamURL", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Paxata", "creationMethods": [{"name": "Paxata.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PlanviewOKR", "creationMethods": [{"name": "PlanviewOKR.Contents", + "parameters": [{"name": "ODataURL", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PlanviewProjectplace", "creationMethods": [{"name": "PlanviewProjectplace.Contents", + "parameters": [{"name": "ODataURL", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Profisee", "creationMethods": [{"name": "Profisee.Tables", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "QuickBase", "creationMethods": [{"name": "QuickBase.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Roamler", "creationMethods": [{"name": "Roamler.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Samsara", "creationMethods": [{"name": "Samsara.Records", + "parameters": [{"name": "Region", "dataType": "Text", "required": true, "allowedValues": + ["US", "EU"]}, {"name": "RangeStart", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "RangeEnd", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SDMX", "creationMethods": [{"name": "SDMX.Contents", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "Option", "dataType": "Text", "required": true, "allowedValues": + ["Show codes and labels", "Show codes only", "Show labels only"]}, {"name": + "Language", "dataType": "Text", "required": false, "allowedValues": null}]}], + "supportedCredentialTypes": ["Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ShortcutsBI", "creationMethods": [{"name": "ShortcutsBI.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Siteimprove", "creationMethods": [{"name": "Siteimprove.Contents", + "parameters": []}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SmartsheetGlobal", "creationMethods": [{"name": "SmartsheetGlobal.Contents", + "parameters": [{"name": "region", "dataType": "Text", "required": true, "allowedValues": + ["US", "EU"]}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SoftOneBI", "creationMethods": [{"name": "SoftOneBI.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SolarWindsServiceDesk", "creationMethods": [{"name": "SolarWindsServiceDesk.ContentsV113", + "parameters": [{"name": "RangeStart", "dataType": "DateTime", "required": + false, "allowedValues": null}, {"name": "RangeEnd", "dataType": "DateTime", + "required": false, "allowedValues": null}, {"name": "CustomFieldsStr", "dataType": + "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Key"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Spigit", "creationMethods": [{"name": "Spigit.Contents", "parameters": [{"name": + "ODataURL", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SumTotal", "creationMethods": [{"name": "SumTotal.ODataFeed", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Supermetrics", "creationMethods": [{"name": "Supermetrics.Render", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SurveyMonkey", "creationMethods": [{"name": "SurveyMonkey.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "TeamDesk", "creationMethods": [{"name": "TeamDesk.Database", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Tenforce", "creationMethods": [{"name": "Tenforce.Contents", + "parameters": [{"name": "ApplicationUrl", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "ListId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "DataType", "dataType": "Text", "required": + true, "allowedValues": ["Do not include", "Include"]}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Usercube", "creationMethods": [{"name": "Usercube.Universes", "parameters": + [{"name": "serverUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Vena", "creationMethods": [{"name": "Vena.Contents", "parameters": + [{"name": "source", "dataType": "Text", "required": true, "allowedValues": + ["https://ca3.vena.io", "https://ca4.vena.io", "https://eu1.vena.io", "https://eu2.vena.io", + "https://eu3.vena.io", "https://us1.vena.io", "https://us2.vena.io", "https://us3.vena.io", + "https://us4.vena.io", "https://us5.vena.io"]}, {"name": "modelQuery", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "apiVersion", + "dataType": "Text", "required": false, "allowedValues": ["v1", "v2"]}]}], + "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "VesselInsight", "creationMethods": [{"name": "VesselInsight.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "WebtrendsAnalytics", "creationMethods": [{"name": "WebtrendsAnalytics.Tables", + "parameters": [{"name": "ProfileId", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "Period", "dataType": "Text", "required": + true, "allowedValues": ["Custom Date", "Report Period"]}, {"name": "reportType", + "dataType": "Text", "required": true, "allowedValues": ["Summary", "Trend", + "Individual"]}, {"name": "startDate", "dataType": "Date", "required": false, + "allowedValues": null}, {"name": "endDate", "dataType": "Date", "required": + false, "allowedValues": null}, {"name": "startPeriod", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "endPeriod", "dataType": + "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Windsor", "creationMethods": [{"name": "Windsor.Main", "parameters": []}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Witivio", "creationMethods": [{"name": "Witivio.Contents", + "parameters": [{"name": "botId", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Wrike", "creationMethods": [{"name": "Wrike.Contents", "parameters": + []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ZendeskData", "creationMethods": [{"name": "ZendeskData.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ZohoCreator", "creationMethods": [{"name": "ZohoCreator.Contents", + "parameters": [{"name": "creatordomain", "dataType": "Text", "required": true, + "allowedValues": ["zoho.com", "zoho.eu", "zoho.com.cn", "zoho.in", "zoho.com.au"]}, + {"name": "scopname", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "applinkname", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "reportlinkname", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Zucchetti", "creationMethods": [{"name": "Zucchetti.Contents", + "parameters": [{"name": "Url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Environment", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AtScale", "creationMethods": [{"name": "AtScale.Cubes", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "ConnectionTimeout", "dataType": "Duration", "required": false, + "allowedValues": null}, {"name": "CommandTimeout", "dataType": "Duration", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureCosmosDBForMongoDBvCore", "creationMethods": [{"name": "AzureCosmosDBForMongoDBvCore.Contents", + "parameters": [{"name": "baseURL", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "collection", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureCostManagement", "creationMethods": [{"name": "AzureCostManagement.Tables", + "parameters": [{"name": "scope", "dataType": "Text", "required": true, "allowedValues": + ["Billing Profile Id", "Enrollment Number", "Manually Input Scope"]}, {"name": + "scopeValue", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "numberOfMonths", "dataType": "Number", "required": true, "allowedValues": + null}, {"name": "startDate", "dataType": "Date", "required": false, "allowedValues": + null}, {"name": "endDate", "dataType": "Date", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDeviceRegistry", "creationMethods": [{"name": "AzureDeviceRegistry.Query", + "parameters": [{"name": "scope", "dataType": "Text", "required": true, "allowedValues": + ["Tenant", "Subscription"]}, {"name": "subscriptions", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "namespaces", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "customAttributes", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "resultTruncated", + "dataType": "Boolean", "required": false, "allowedValues": ["true", "false"]}, + {"name": "pagesize", "dataType": "Number", "required": false, "allowedValues": + ["5", "10", "25", "50", "100", "200", "300", "400", "500", "600", "700", "800", + "900", "1000"]}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureResourceGraph", "creationMethods": [{"name": "AzureResourceGraph.Query", + "parameters": [{"name": "query", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "scope", "dataType": "Text", "required": false, "allowedValues": + ["Tenant", "Subscription", "Management group"]}, {"name": "subscription", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "managementGroup", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "resultTruncated", + "dataType": "Boolean", "required": false, "allowedValues": ["true", "false"]}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CommonDataService", "creationMethods": [{"name": "CommonDataService.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "CreateNavigationProperties", "dataType": "Boolean", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", + "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": ["NotEncrypted", + "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CosmosDB", "creationMethods": [{"name": "CosmosDB.Contents", + "parameters": [{"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "NUMBER_OF_RETRIES", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "ENABLE_AVERAGE_FUNCTION_PASSDOWN", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "ENABLE_SORT_PASSDOWN_FOR_MULTIPLE_COLUMNS", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Key", "OAuth2", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CustomerInsights", "creationMethods": [{"name": "CustomerInsights.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FabricSql", "creationMethods": [{"name": "FabricSql.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Fhir", "creationMethods": [{"name": "Fhir.Contents", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "searchQuery", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GoogleSheets", "creationMethods": [{"name": "GoogleSheets.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "IntuneV2", "creationMethods": [{"name": "IntuneV2.Contents", + "parameters": [{"name": "dataWarehouseAsuUri", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "maxHistoryDays", "dataType": "Number", + "required": false, "allowedValues": ["1", "2", "3", "4", "5", "6", "7", "14", + "30"]}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Lakehouse", "creationMethods": [{"name": "Lakehouse.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MicrosoftAzureDataManagerForEnergy", "creationMethods": [{"name": + "MicrosoftAzureDataManagerForEnergy.Search", "parameters": [{"name": "serviceName", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "dataPartition", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "kind", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "query", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "limit", + "dataType": "Number", "required": false, "allowedValues": null}, {"name": + "returnedFields", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PowerBIDatamarts", "creationMethods": [{"name": "PowerBI.Datamarts", + "parameters": [{"name": "server", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PowerPlatformDataflows", "creationMethods": [{"name": "PowerPlatform.Dataflows", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ProductInsights", "creationMethods": [{"name": "ProductInsights.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Synapse", "creationMethods": [{"name": "Synapse.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Warehouse", "creationMethods": [{"name": "Fabric.Warehouse", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "VivaInsights", "creationMethods": [{"name": "VivaInsights.Data", + "parameters": [{"name": "scopeId", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "jobName", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "jobId", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "SchemaType", "dataType": "Text", "required": false, "allowedValues": + ["Pivoted", "Unpivoted"]}, {"name": "APIType", "dataType": "Text", "required": + false, "allowedValues": ["Aggregated data", "Row-level data"]}, {"name": "TableName", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AdlsGen2CosmosStructuredStream", "creationMethods": [{"name": "AdlsGen2CosmosStructuredStream.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AmazonRdsForOracle", "creationMethods": [{"name": "AmazonRdsForOracle.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AmazonRdsForSqlServer", "creationMethods": [{"name": "AmazonRdsForSqlServer.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AmazonS3", "creationMethods": [{"name": "AmazonS3.Storage", + "parameters": [{"name": "url", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "roleArn", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SAPDatasphereAmazonS3", "creationMethods": [{"name": "SAPDatasphereAmazonS3.Actions", + "parameters": [{"name": "url", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "roleArn", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AmazonS3Compatible", "creationMethods": [{"name": "AmazonS3Compatible.Storage", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AvevaConnect", "creationMethods": [{"name": "AvevaConnect.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureAISearch", "creationMethods": [{"name": "AzureAISearch.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureArtifactFeed", "creationMethods": [{"name": "AzureArtifactFeed.Contents", + "parameters": [{"name": "feedUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureBatch", "creationMethods": [{"name": "AzureBatch.Contents", + "parameters": [{"name": "accountName", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "batchUrl", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "poolName", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureCosmosDBForMongoDB", "creationMethods": [{"name": "AzureCosmosDBForMongoDB.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "serverVersion", "dataType": "Text", "required": true, "allowedValues": + ["Above 3.2", "3.2"]}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDatabaseForMySQL", "creationMethods": [{"name": "AzureDatabaseForMySQL.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDatabricksWorkspace", "creationMethods": [{"name": "AzureDatabricksWorkspace.Actions", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key", "OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureDataFactory", "creationMethods": [{"name": "AzureDataFactory.Actions", + "parameters": [{"name": "subscriptionId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "resourceGroup", "dataType": "Text", + "required": true, "allowedValues": null}, {"name": "dataFactoryName", "dataType": + "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDataLakeStoreCosmosStructuredStream", "creationMethods": + [{"name": "AzureDataLakeStoreCosmosStructuredStream.Contents", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureFiles", "creationMethods": [{"name": "AzureFiles.Contents", + "parameters": [{"name": "shareUrl", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "snapshot", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureFunction", "creationMethods": [{"name": "AzureFunction.Contents", + "parameters": [{"name": "functionAppUrl", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Key", "Anonymous"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureHDInsightCluster", "creationMethods": [{"name": "AzureHDInsightCluster.Actions", + "parameters": [{"name": "hdiUrl", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "entSecPackageEnabled", "dataType": "Boolean", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureHDInsightOnDemandCluster", "creationMethods": [{"name": + "AzureHDInsightOnDemandCluster.Actions", "parameters": [{"name": "subscriptionId", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "resourceGroupName", + "dataType": "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureKeyVault", "creationMethods": [{"name": "AzureKeyVault.Actions", + "parameters": [{"name": "accountName", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureMachineLearning", "creationMethods": [{"name": "AzureMachineLearning.Contents", + "parameters": [{"name": "subscriptionId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "resourceGroupName", "dataType": "Text", + "required": true, "allowedValues": null}, {"name": "workspaceName", "dataType": + "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzurePostgreSQL", "creationMethods": [{"name": "AzurePostgreSQL.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "CommandTimeout", "dataType": "Duration", "required": false, + "allowedValues": null}]}], "supportedCredentialTypes": ["Basic", "OAuth2"], + "supportedConnectionEncryptionTypes": ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureServiceBus", "creationMethods": [{"name": "AzureServiceBus.Contents", + "parameters": [{"name": "hostName", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureSqlMI", "creationMethods": [{"name": "AzureSqlMI.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Query", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureSynapseWorkspace", "creationMethods": [{"name": "AzureSynapseWorkspace.Actions", + "parameters": [{"name": "workspaceName", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", + "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Cassandra", "creationMethods": [{"name": "Cassandra.Contents", + "parameters": [{"name": "Host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Port", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ConfluentCloud", "creationMethods": [{"name": "ConfluentCloud.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ConfluentSchemaRegistry", "creationMethods": [{"name": "ConfluentSchemaRegistry.Contents", + "parameters": [{"name": "schemaRegistryUrl", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CopyJob", "creationMethods": [{"name": "CopyJob.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "CustomStreamSource", "creationMethods": [{"name": "CustomStreamSource.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DataBuildToolJob", "creationMethods": [{"name": "DataBuildToolJob.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "DataLakeAnalytics", "creationMethods": [{"name": "DataLakeAnalytics.Account", + "parameters": [{"name": "accountName", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "subscriptionId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "resourceGroupName", "dataType": "Text", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Dynamics365", "creationMethods": [{"name": "Dynamics365.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "DynamicsAX", "creationMethods": [{"name": "DynamicsAX.Contents", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "DynamicsCrm", "creationMethods": [{"name": "DynamicsCrm.Contents", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "EventHub", "creationMethods": [{"name": "EventHub.Contents", "parameters": + [{"name": "endpoint", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "entityPath", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FabricDataPipelines", "creationMethods": [{"name": "FabricDataPipelines.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", + "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FabricMaterializedLakehouseView", "creationMethods": [{"name": + "FabricMaterializedLakehouseView.Actions", "parameters": []}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FabricSqlEndpointMetadata", "creationMethods": [{"name": + "FabricSqlEndpointMetadata.Actions", "parameters": []}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FTP", "creationMethods": [{"name": "FTP.Contents", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GoogleCloudStorage", "creationMethods": [{"name": "GoogleCloudStorage.Storage", + "parameters": [{"name": "url", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SAPDatasphereGoogleCloudStorage", "creationMethods": [{"name": + "SAPDatasphereGoogleCloudStorage.Actions", "parameters": [{"name": "url", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "GooglePubSub", "creationMethods": [{"name": "GooglePubSub.Contents", "parameters": + [{"name": "projectId", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GreenplumForPipeline", "creationMethods": [{"name": "GreenplumForPipeline.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "connectionTimeout", "dataType": "Number", "required": false, + "allowedValues": null}, {"name": "commandTimeout", "dataType": "Number", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "HdfsForPipeline", "creationMethods": [{"name": "HdfsForPipeline.Contents", + "parameters": [{"name": "clusterURL", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "HttpServer", "creationMethods": [{"name": "HttpServer.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic", "Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "InformixForPipeline", "creationMethods": [{"name": "InformixForPipeline.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "service", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "protocol", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Anonymous", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "IoTHub", "creationMethods": [{"name": "IoTHub.Contents", + "parameters": [{"name": "entityPath", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Kinesis", "creationMethods": [{"name": "Kinesis.Contents", + "parameters": [{"name": "streamName", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MariaDBForPipeline", "creationMethods": [{"name": "MariaDBForPipeline.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MicrosoftAccess", "creationMethods": [{"name": "MicrosoftAccess.Contents", + "parameters": [{"name": "filePath", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Anonymous", "Basic"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "MicrosoftOutlook", "creationMethods": [{"name": "MicrosoftOutlook.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "MicrosoftTeams", "creationMethods": [{"name": "MicrosoftTeams.Actions", "parameters": + []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MongoDBAtlasForPipeline", "creationMethods": [{"name": "MongoDBAtlasForPipeline.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "cluster", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MongoDBForPipeline", "creationMethods": [{"name": "MongoDBForPipeline.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MQTT", "creationMethods": [{"name": "MQTT.Contents", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Notebook", "creationMethods": [{"name": "Notebook.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "OracleCloudStorage", "creationMethods": [{"name": "OracleCloudStorage.Contents", + "parameters": [{"name": "APIEndpoint", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PowerBIDatasets", "creationMethods": [{"name": "PowerBIDatasets.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", + "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Presto", "creationMethods": [{"name": "Presto.Contents", + "parameters": [{"name": "Server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Catalog", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Timezone", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "ServerCertificateValidation", "dataType": "Text", "required": + false, "allowedValues": ["Enable", "Disable"]}]}], "supportedCredentialTypes": + ["Anonymous", "Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted", + "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "RestService", "creationMethods": [{"name": "RestService.Contents", + "parameters": [{"name": "baseUrl", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "audience", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic", "Anonymous", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SalesforceServiceCloud", "creationMethods": [{"name": "SalesforceServiceCloud.Contents", + "parameters": [{"name": "environmentURL", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "apiVersion", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SAPAzureDataLakeStorageGen2", "creationMethods": [{"name": + "SAPAzureDataLakeStorageGen2.Actions", "parameters": [{"name": "url", "dataType": + "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "Key", "ServicePrincipal"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SAPBWOpenHubApplicationServer", "creationMethods": [{"name": + "SAPBWOpenHubApplicationServer.Contents", "parameters": [{"name": "appServerName", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "systemNumber", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "clientID", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "languageCode", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SAPBWOpenHubMessageServer", "creationMethods": [{"name": "SAPBWOpenHubMessageServer.Contents", + "parameters": [{"name": "messageServer", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "clientID", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "messageServerService", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "systemID", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "logonGroup", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "languageCode", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SAPTableApplicationServer", "creationMethods": [{"name": "SAPTableApplicationServer.Contents", + "parameters": [{"name": "appServerName", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "systemNumber", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "clientID", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "languageCode", "dataType": "Text", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SAPTableMessageServer", "creationMethods": [{"name": "SAPTableMessageServer.Contents", + "parameters": [{"name": "messageServer", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "clientID", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "messageServerService", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "systemID", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "logonGroup", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "languageCode", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "ServiceNow", "creationMethods": [{"name": "ServiceNow.Data", "parameters": + [{"name": "instance", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SFTP", "creationMethods": [{"name": "SFTP.Contents", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "fingerprint", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Shopify", "creationMethods": [{"name": "Shopify.Database", + "parameters": [{"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ShortcutsExtensibilityTest", "creationMethods": [{"name": + "ShortcutsExtensibilityTest.Contents", "parameters": [{"name": "baseUrl", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "audience", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SolacePubsub", "creationMethods": [{"name": "SolacePubsub.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SparkJobDefinition", "creationMethods": [{"name": "SparkJobDefinition.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SqlAnalyticsEndpoint", "creationMethods": [{"name": "SqlAnalyticsEndpoint.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "UserDataFunctions", "creationMethods": [{"name": "UserDataFunctions.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "WebForPipeline", "creationMethods": [{"name": "WebForPipeline.Contents", + "parameters": [{"name": "baseUrl", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "audience", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic", "Anonymous", "Key", + "ServicePrincipal"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDevOpsSourceControl", "creationMethods": [{"name": "AzureDevOpsSourceControl.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GitHubSourceControl", "creationMethods": [{"name": "GitHubSourceControl.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GoogleAds", "creationMethods": [{"name": "GoogleAds.Contents", + "parameters": [{"name": "googleAdsApiVersion", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "clientCustomerID", "dataType": "Text", + "required": true, "allowedValues": null}, {"name": "loginCustomerID", "dataType": + "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Microsoft365", "creationMethods": [{"name": "Microsoft365.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "QuickBooksForPipeline", "creationMethods": [{"name": "QuickBooksForPipeline.Contents", + "parameters": [{"name": "endpoint", "dataType": "Text", "required": true, + "allowedValues": ["https://sandbox-quickbooks.api.intuit.com", "https://quickbooks.api.intuit.com"]}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AriaConnector", "creationMethods": [{"name": "AriaDataConnector.GetCubes", + "parameters": [{"name": "Project ID", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "interval", "dataType": "Text", "required": + false, "allowedValues": ["Last hour", "Last 2 hours", "Last 4 hours", "Last + 12 hours", "Last 24 hours", "Last 2 days", "Last 4 days", "Last week", "Last + 2 weeks", "Last 4 weeks", "Last 8 weeks", "Last 12 weeks", "Last 30 days", + "Last 60 days", "Last 90 days", "Last 180 days"]}, {"name": "granularity", + "dataType": "Text", "required": false, "allowedValues": ["Five seconds", "Ten + seconds", "Five minutes", "One hour", "One day", "One week", "One month"]}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureEnterprise", "creationMethods": [{"name": "AzureEnterprise.Tables", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CloudScope", "creationMethods": [{"name": "CloudScope.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CloudScopeInstagram", "creationMethods": [{"name": "CloudScopeInstagram.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "comScore", "creationMethods": [{"name": "comScore.NavTable", + "parameters": [{"name": "datacenter", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "client", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "startDate", "dataType": "Date", "required": + false, "allowedValues": null}, {"name": "endDate", "dataType": "Date", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "InfinityConnector", "creationMethods": [{"name": "InfinityConnector.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "JDIConnector", "creationMethods": [{"name": "JDIConnector.Contents", + "parameters": [{"name": "DataUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "KaizalaAttendanceReports", "creationMethods": [{"name": "KaizalaAttendanceReports.Feed", + "parameters": [{"name": "ContentPackName", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "KaizalaReports", "creationMethods": [{"name": "KaizalaReports.Feed", + "parameters": [{"name": "MethodName", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "KaizalaSurveyReports", "creationMethods": [{"name": "KaizalaSurveyReports.Feed", + "parameters": [{"name": "ContentPackName", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AdMaD", "creationMethods": [{"name": "AdMaD.Feed", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": ["https://columnstoremt.azurewebsites.net/", + "https://admadmt.azurewebsites.net/", "https://firebirdapi.azure-api.net/", + "https://firebirdapptest.azurewebsites.net/"]}, {"name": "sourceName", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "request", "dataType": + "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "myob_ar", "creationMethods": [{"name": "myob_ar.GetCompanyFiles", "parameters": + [{"name": "company", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Office365Mon2", "creationMethods": [{"name": "Office365Mon.Outages.Feed", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Plantronics", "creationMethods": [{"name": "Plantronics.Feed", + "parameters": [{"name": "URL", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Tenant", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "URL1", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "URL2", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "Parameters", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "ElementsPerPage", "dataType": "Number", "required": false, + "allowedValues": null}]}], "supportedCredentialTypes": ["Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ProductioneerMExt", "creationMethods": [{"name": "ProductioneerMExt.Contents", + "parameters": [{"name": "CompanyName", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "endpoint", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "StartDate", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ProjectIntelligence", "creationMethods": [{"name": "ProjectIntelligence.Service", + "parameters": [{"name": "ShareAdvanceWebAddress", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "Dimension", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "DataType", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "QuestionPro", "creationMethods": [{"name": "QuestionPro.Contents", + "parameters": [{"name": "access_id", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ScopevisioPowerBICon", "creationMethods": [{"name": "ScopevisioPowerBICon.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SentryOne", "creationMethods": [{"name": "SentryOne.Tables", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SpotlightCloudReports", "creationMethods": [{"name": "SpotlightCloudReports.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Timelog", "creationMethods": [{"name": "Timelog.Tables", + "parameters": [{"name": "SiteCode", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "ApiID", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "ApiPassword", "dataType": "Text", + "required": true, "allowedValues": null}, {"name": "URLAccountName", "dataType": + "Text", "required": true, "allowedValues": null}, {"name": "DefaultNumberAccount", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "CurrentMonthOnly", + "dataType": "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["Anonymous"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "UserVoice", "creationMethods": [{"name": "UserVoice.Tables", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "WtsParadigm", "creationMethods": [{"name": "WtsParadigm.GetDefaultData", + "parameters": []}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Xero", "creationMethods": [{"name": "Xero.Contents", "parameters": + [{"name": "urlInput", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "countInput", "dataType": "Number", "required": false, "allowedValues": + null}, {"name": "company", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "tenantId", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AdminInsights", "creationMethods": [{"name": "AdminInsights.GetAzureBlobContents", + "parameters": [{"name": "_workload", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "_fileType", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_version", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_rangeStart", "dataType": "Text", + "required": true, "allowedValues": null}, {"name": "_rangeEnd", "dataType": + "Text", "required": true, "allowedValues": null}, {"name": "_desktopHostContainerUrl", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AutoPremium", "creationMethods": [{"name": "AutoPremium.GetMetricsData", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "isPbiAdmin", "dataType": "Boolean", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CapacityMetricsCES", "creationMethods": [{"name": "CapacityMetricsCES.GetMetricsData", + "parameters": [{"name": "_queryName", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "_capacityId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_tenantId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_ago", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_cluster", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_database", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_utcOffset", "dataType": "Number", + "required": false, "allowedValues": null}, {"name": "_releaseType", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "_localTimepoint", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_byPassAdminCheckForTenantAdmin", + "dataType": "Boolean", "required": false, "allowedValues": null}, {"name": + "_shouldMaskUser", "dataType": "Boolean", "required": false, "allowedValues": + null}, {"name": "_targetCesRegion", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "_startDate", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "_endDate", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "_uniqueKey", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "_artifactId", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "_workspaceId", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_operationName", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_operationId", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_user", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_status", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_isOverride", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_aggCuThreshold", + "dataType": "Number", "required": false, "allowedValues": null}, {"name": + "_experience", "dataType": "Text", "required": false, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": true, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Goals", "creationMethods": [{"name": "Goals.GetScorecardData", + "parameters": [{"name": "scorecardId", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "top", "dataType": "Number", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "MetricsCES", "creationMethods": [{"name": "MetricsCES.GetMetricsData", "parameters": + [{"name": "_capacityId", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "_database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "_ago", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "_hour", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "_kustoUri", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MetricsDataConnector", "creationMethods": [{"name": "MetricsDataConnector.GetMetricsData", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "isPbiAdmin", "dataType": "Boolean", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MicrosoftCallQuality", "creationMethods": [{"name": "MicrosoftCallQuality.GenerateTable", + "parameters": [{"name": "tenantId", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "filters", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "UsageMetricsDataConnector", "creationMethods": [{"name": "UsageMetricsDataConnector.GetMetricsData", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "UsageMetricsCES", "creationMethods": [{"name": "UsageMetricsCES.Contents", + "parameters": [{"name": "_tenantId", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "_workspaceId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_database", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_ago", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_hour", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_kustoUri", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ElasticSearch", "creationMethods": [{"name": "ElasticSearch.Database", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "keyColumnName", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Looker", "creationMethods": [{"name": "Looker.DataSource", + "parameters": [{"name": "Host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "ShowHidden", "dataType": "Boolean", "required": false, "allowedValues": + ["true", "false"]}, {"name": "EnableLogging", "dataType": "Boolean", "required": + false, "allowedValues": ["true", "false"]}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '8567' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:14:53 GMT + Pragma: + - no-cache + RequestId: + - 267cff08-f805-46ca-8200-8131e7a342da + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"description": "Created by fab", "displayName": "fabcli000001", "connectivityType": + "ShareableCloud", "privacyLevel": "None", "connectionDetails": "mock_request_connection_details", + "credentialDetails": "mocked_credential_details"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '586' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "41a127a8-1da4-40f7-a7e6-23e549a0625d", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '306' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:14:55 GMT + Location: + - https://api.fabric.microsoft.com/v1/connections/41a127a8-1da4-40f7-a7e6-23e549a0625d + Pragma: + - no-cache + RequestId: + - 58a4d8ca-ef12-492e-ab2a-fc4053cba857 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"value": [{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "41a127a8-1da4-40f7-a7e6-23e549a0625d", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '949' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:14:57 GMT + Pragma: + - no-cache + RequestId: + - 5825bfdd-5dcb-4d37-910f-068177596631 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections/41a127a8-1da4-40f7-a7e6-23e549a0625d + response: + body: + string: '{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "41a127a8-1da4-40f7-a7e6-23e549a0625d", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '306' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:14:59 GMT + Pragma: + - no-cache + RequestId: + - 00fe20d7-b3f0-4b08-9eef-ae9275b120f5 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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", "connectivityType": "ShareableCloud"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '73' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/connections/41a127a8-1da4-40f7-a7e6-23e549a0625d + response: + body: + string: '{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "41a127a8-1da4-40f7-a7e6-23e549a0625d", "displayName": "fabcli000002", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '304' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:15:00 GMT + Pragma: + - no-cache + RequestId: + - 20c68a2f-d1d4-437c-a6e0-8dc2cededda2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"value": [{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "41a127a8-1da4-40f7-a7e6-23e549a0625d", "displayName": "fabcli000002", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '947' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:15:02 GMT + Pragma: + - no-cache + RequestId: + - 48e9e961-bc41-43f3-a0f2-b13abcbdc4f9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections/41a127a8-1da4-40f7-a7e6-23e549a0625d + response: + body: + string: '{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "41a127a8-1da4-40f7-a7e6-23e549a0625d", "displayName": "fabcli000002", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '304' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:15:03 GMT + Pragma: + - no-cache + RequestId: + - 581d5e98-d62f-47fc-9801-a79eda7a1e8c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"value": [{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "41a127a8-1da4-40f7-a7e6-23e549a0625d", "displayName": "fabcli000002", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '947' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:15:05 GMT + Pragma: + - no-cache + RequestId: + - eb7ac956-d49c-4470-baa2-7b758772ab38 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections/41a127a8-1da4-40f7-a7e6-23e549a0625d + response: + body: + string: '{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "41a127a8-1da4-40f7-a7e6-23e549a0625d", "displayName": "fabcli000002", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '304' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:15:05 GMT + Pragma: + - no-cache + RequestId: + - e933655d-5e93-4d0d-a996-4a5885c47911 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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", "connectivityType": "ShareableCloud"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '73' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/connections/41a127a8-1da4-40f7-a7e6-23e549a0625d + response: + body: + string: '{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "41a127a8-1da4-40f7-a7e6-23e549a0625d", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '306' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:15:07 GMT + Pragma: + - no-cache + RequestId: + - 0b9d23c6-75d2-446b-b75c-6f54487bfbb7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"value": [{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "41a127a8-1da4-40f7-a7e6-23e549a0625d", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '949' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:15:07 GMT + Pragma: + - no-cache + RequestId: + - 5d1f67ef-5691-42bc-8ff1-5201a01f6778 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/connections/41a127a8-1da4-40f7-a7e6-23e549a0625d + 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: + - Wed, 21 Jan 2026 12:15:09 GMT + Pragma: + - no-cache + RequestId: + - 23c383e5-7ec6-4b3f-8805-913354a775e0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-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_set/test_set_connection_metadata_success[privacyLevel-Organizational].yaml b/tests/test_commands/recordings/test_commands/test_set/test_set_connection_metadata_success[privacyLevel-Organizational].yaml new file mode 100644 index 00000000..c2c47c56 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_set/test_set_connection_metadata_success[privacyLevel-Organizational].yaml @@ -0,0 +1,1899 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '860' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:43:18 GMT + Pragma: + - no-cache + RequestId: + - 11e3fa85-eee6-4905-a742-34c42adc0da9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections/supportedConnectionTypes + response: + body: + string: '{"value": [{"type": "SQL", "creationMethods": [{"name": "Sql", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2", "ServicePrincipal", + "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": ["NotEncrypted", + "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Basic", "ServicePrincipal", "WorkspaceIdentity"]}, {"type": "AnalysisServices", + "creationMethods": [{"name": "AnalysisServices", "parameters": [{"name": "server", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "database", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic", "OAuth2", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Basic", "WorkspaceIdentity"]}, {"type": "SharePoint", "creationMethods": + [{"name": "SharePointList", "parameters": [{"name": "sharePointSiteUrl", "dataType": + "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["Anonymous", "OAuth2", "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Anonymous", "ServicePrincipal", "WorkspaceIdentity"]}, {"type": "Web", "creationMethods": + [{"name": "Web", "parameters": [{"name": "url", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Anonymous", + "Basic", "OAuth2", "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": true, "supportedCredentialTypesForUsageInUserControlledCode": + ["Anonymous", "Basic", "ServicePrincipal", "WorkspaceIdentity"]}, {"type": + "OData", "creationMethods": [{"name": "OData", "parameters": [{"name": "url", + "dataType": "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["Anonymous", "Basic", "Key", "OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": true, "supportedCredentialTypesForUsageInUserControlledCode": + ["Anonymous", "Basic", "Key"]}, {"type": "MySql", "creationMethods": [{"name": + "MySql", "parameters": [{"name": "server", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "database", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Basic"]}, {"type": "PostgreSQL", "creationMethods": [{"name": "PostgreSql", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Basic"]}, {"type": "AzureTables", "creationMethods": [{"name": "AzureTables", + "parameters": [{"name": "account", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "domain", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key", "OAuth2", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": ["Key", "WorkspaceIdentity"]}, + {"type": "AzureBlobs", "creationMethods": [{"name": "AzureBlobs", "parameters": + [{"name": "account", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "domain", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Anonymous", "Key", "OAuth2", "SharedAccessSignature", + "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Anonymous", "Key", "SharedAccessSignature", "ServicePrincipal", "WorkspaceIdentity"]}, + {"type": "GoogleAnalytics", "creationMethods": [{"name": "GoogleAnalytics", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + []}, {"type": "Salesforce", "creationMethods": [{"name": "Salesforce", "parameters": + [{"name": "loginServer", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "classInfo", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + []}, {"type": "AdobeAnalytics", "creationMethods": [{"name": "AdobeAnalytics", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + []}, {"type": "AzureDataLakeStorage", "creationMethods": [{"name": "AzureDataLakeStorage", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "path", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key", "OAuth2", "SharedAccessSignature", + "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + ["Key", "SharedAccessSignature", "ServicePrincipal", "WorkspaceIdentity"]}, + {"type": "Exchange", "creationMethods": [{"name": "Exchange", "parameters": + [{"name": "emailAddress", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + []}, {"type": "appFigures", "creationMethods": [{"name": "appFigures.Tables", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GoogleBigQuery", "creationMethods": [{"name": "GoogleBigQuery.Database", + "parameters": [{"name": "BillingProject", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "UseStorageApi", "dataType": "Boolean", + "required": false, "allowedValues": null}, {"name": "ConnectionTimeout", "dataType": + "Duration", "required": false, "allowedValues": null}, {"name": "CommandTimeout", + "dataType": "Duration", "required": false, "allowedValues": null}, {"name": + "ProjectId", "dataType": "Text", "required": false, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GoogleBigQueryAad", "creationMethods": [{"name": "GoogleBigQueryAad.Database", + "parameters": [{"name": "billingProject", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "Implementation", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "UseStorageApi", "dataType": + "Boolean", "required": false, "allowedValues": null}, {"name": "ConnectionTimeout", + "dataType": "Duration", "required": false, "allowedValues": null}, {"name": + "CommandTimeout", "dataType": "Duration", "required": false, "allowedValues": + null}, {"name": "BYOID_AudienceUri", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "ProjectId", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "PowerBI", "creationMethods": [{"name": "PowerBI.Dataflows", "parameters": + []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Cds", "creationMethods": [{"name": "Cds.Entities", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "ReorderColumns", "dataType": "Boolean", "required": false, "allowedValues": + null}, {"name": "UseFormattedValue", "dataType": "Boolean", "required": false, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DataLake", "creationMethods": [{"name": "DataLake.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "PageSize", "dataType": "Number", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "DataWorld", "creationMethods": [{"name": "DataWorld.Dataset", "parameters": + [{"name": "owner", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "id", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "query", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DocumentDB", "creationMethods": [{"name": "DocumentDB.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "collection", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Dynamics365BusinessCentral", "creationMethods": [{"name": + "Dynamics365BusinessCentral.ApiContentsWithOptions", "parameters": [{"name": + "environment", "dataType": "Text", "required": false, "allowedValues": null}, + {"name": "company", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "apiRoute", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "UseReadOnlyReplica", "dataType": "Boolean", "required": false, + "allowedValues": null}, {"name": "AcceptLanguage", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "Timeout", "dataType": "Duration", + "required": false, "allowedValues": null}, {"name": "ODataMaxPageSize", "dataType": + "Number", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Dynamics 365 Business Central (on-premises)", "creationMethods": [{"name": + "Dynamics365BusinessCentralOnPremises.Contents", "parameters": [{"name": "url", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "company", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Dynamics NAV", "creationMethods": [{"name": "DynamicsNav.Contents", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "company", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "github", "creationMethods": [{"name": "Github.Tables", "parameters": + [{"name": "RepositoryOwner", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Repository", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureHive", "creationMethods": [{"name": "AzureHiveLLAP.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ApacheHive", "creationMethods": [{"name": "ApacheHiveLLAP.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "thriftTransport", "dataType": "Number", "required": true, + "allowedValues": ["1", "2"]}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Impala", "creationMethods": [{"name": "Impala.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Implementation", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "ConnectionTimeout", "dataType": "Duration", "required": false, + "allowedValues": null}, {"name": "CommandTimeout", "dataType": "Duration", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Anonymous", "Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted", + "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDataExplorer", "creationMethods": [{"name": "AzureDataExplorer.Contents", + "parameters": [{"name": "cluster", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "tableOrQuery", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "MaxRows", "dataType": "Number", "required": false, "allowedValues": + null}, {"name": "MaxSize", "dataType": "Number", "required": false, "allowedValues": + null}, {"name": "NoTruncate", "dataType": "Boolean", "required": false, "allowedValues": + null}, {"name": "AdditionalSetStatements", "dataType": "Text", "required": + false, "allowedValues": null}]}, {"name": "AzureDataExplorer.KqlDatabase", + "parameters": [{"name": "cluster", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "database", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "tableOrQuery", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "MaxRows", "dataType": + "Number", "required": false, "allowedValues": null}, {"name": "MaxSize", "dataType": + "Number", "required": false, "allowedValues": null}, {"name": "NoTruncate", + "dataType": "Boolean", "required": false, "allowedValues": null}, {"name": + "AdditionalSetStatements", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "LinkedIn", "creationMethods": [{"name": "LinkedIn.SalesNavigator", "parameters": + [{"name": "selectContracts", "dataType": "Text", "required": true, "allowedValues": + ["All Contracts", "Selected Contracts"]}, {"name": "startAt", "dataType": + "Date", "required": false, "allowedValues": null}, {"name": "endAt", "dataType": + "Date", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "mixpanel", "creationMethods": [{"name": "Mixpanel.Tables", "parameters": + []}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Netezza", "creationMethods": [{"name": "Netezza.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "ConnectionTimeout", "dataType": "Duration", "required": false, + "allowedValues": null}, {"name": "CommandTimeout", "dataType": "Duration", + "required": false, "allowedValues": null}, {"name": "NormalizeDatabaseName", + "dataType": "Boolean", "required": false, "allowedValues": null}, {"name": + "HierarchicalNavigation", "dataType": "Boolean", "required": false, "allowedValues": + null}, {"name": "CreateNavigationProperties", "dataType": "Boolean", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PlanviewEnterprise", "creationMethods": [{"name": "PlanviewEnterprise.Feed", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AmazonRedshift", "creationMethods": [{"name": "AmazonRedshift.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "ProviderName", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "BatchSize", "dataType": "Number", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Snowflake", "creationMethods": [{"name": "Snowflake.Databases", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "warehouse", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Role", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "CreateNavigationProperties", "dataType": "Boolean", "required": + false, "allowedValues": null}, {"name": "ConnectionTimeout", "dataType": "Number", + "required": false, "allowedValues": null}, {"name": "CommandTimeout", "dataType": + "Number", "required": false, "allowedValues": null}, {"name": "Implementation", + "dataType": "Text", "required": false, "allowedValues": [null, "2.0"]}]}], + "supportedCredentialTypes": ["Basic", "OAuth2", "KeyPair"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Spark", "creationMethods": [{"name": "AzureSpark.Tables", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "BatchSize", "dataType": "Number", "required": false, "allowedValues": + null}, {"name": "HierarchicalNavigation", "dataType": "Boolean", "required": + false, "allowedValues": null}, {"name": "Implementation", "dataType": "Text", + "required": false, "allowedValues": null}]}, {"name": "ApacheSpark.Tables", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "protocol", "dataType": "Number", "required": true, "allowedValues": + ["0", "2"]}, {"name": "BatchSize", "dataType": "Number", "required": false, + "allowedValues": null}, {"name": "HierarchicalNavigation", "dataType": "Boolean", + "required": false, "allowedValues": null}, {"name": "Implementation", "dataType": + "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SparkPost", "creationMethods": [{"name": "SparkPost.NavTable", "parameters": + [{"name": "DaysToAggregate", "dataType": "Number", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SweetIQ", "creationMethods": [{"name": "SweetIQ.Tables", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Troux", "creationMethods": [{"name": "Troux.Feed", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "VSTS", "creationMethods": [{"name": "VSTS.AnalyticsViews", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "project", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Vertica", "creationMethods": [{"name": "Vertica.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Acterys", "creationMethods": [{"name": "Acterys.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ADPAnalytics", "creationMethods": [{"name": "ADPAnalytics.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Anaplan", "creationMethods": [{"name": "Anaplan.Contents", + "parameters": [{"name": "apiUrl", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "authUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Asana", "creationMethods": [{"name": "Asana.Tables", "parameters": + [{"name": "link", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AssembleViews", "creationMethods": [{"name": "AssembleViews.Feed", + "parameters": [{"name": "resourceUrl", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AutodeskConstructionCloud", "creationMethods": [{"name": + "AutodeskConstructionCloud.Feed", "parameters": [{"name": "region", "dataType": + "Text", "required": true, "allowedValues": ["Australia", "Canada", "Europe", + "Germany", "India", "Japan", "UK", "United States"]}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AutomationAnywhere", "creationMethods": [{"name": "AutomationAnywhere.Feed", + "parameters": [{"name": "CRVersion", "dataType": "Text", "required": true, + "allowedValues": ["10.x/11.x", "Automation 360", "11.3.5.1 Or Higher"]}, {"name": + "CRHostName", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AutomyDataAnalytics", "creationMethods": [{"name": "AutomyDataAnalytics.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "BI360", "creationMethods": [{"name": "BI360.Contents", "parameters": + [{"name": "Url", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "BitSightSecurityRatings", "creationMethods": [{"name": "BitSightSecurityRatings.Contents", + "parameters": [{"name": "company_guid", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "affects_rating_findings", "dataType": "Boolean", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Key"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Bloomberg", "creationMethods": [{"name": "Bloomberg.Query", "parameters": + [{"name": "Bloomberg", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "BQECore", "creationMethods": [{"name": "BQECore.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "BuildingConnected", "creationMethods": [{"name": "BuildingConnected.Contents", + "parameters": [{"name": "rangeStart", "dataType": "DateTimeZone", "required": + false, "allowedValues": null}, {"name": "rangeEnd", "dataType": "DateTimeZone", + "required": false, "allowedValues": null}, {"name": "includeClosed", "dataType": + "Boolean", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "CCHTagetik", "creationMethods": [{"name": "CCHTagetik.Contents2", "parameters": + [{"name": "URL", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "Database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "AW", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "Dataset", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "StartDate", "dataType": "DateTime", "required": false, "allowedValues": + null}, {"name": "EndDate", "dataType": "DateTime", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CDataConnectCloud", "creationMethods": [{"name": "CDataConnectCloud.ContentsV2", + "parameters": [{"name": "Query", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Celonis", "creationMethods": [{"name": "Celonis.Navigation", + "parameters": [{"name": "URL", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Cherwell", "creationMethods": [{"name": "Cherwell.SavedSearches", + "parameters": [{"name": "API URL", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Client ID", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Locale", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "Saved Search URL", "dataType": "Text", "required": false, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CloudBluePSA", "creationMethods": [{"name": "CloudBluePSA.Feed", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "filter", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Cognite", "creationMethods": [{"name": "Cognite.Contents", + "parameters": [{"name": "project", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "environment", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CogniteDataSource", "creationMethods": [{"name": "CogniteDataSource.Contents", + "parameters": [{"name": "project", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "organization", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Databricks", "creationMethods": [{"name": "Databricks.Catalogs", + "parameters": [{"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "httpPath", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Catalog", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "Database", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "QueryTags", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "EnableAutomaticProxyDiscovery", "dataType": "Text", "required": + false, "allowedValues": ["enabled", "disabled"]}, {"name": "Implementation", + "dataType": "Text", "required": false, "allowedValues": [null, "2.0"]}]}], + "supportedCredentialTypes": ["OAuth2", "Key", "Basic", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "DatabricksMultiCloud", "creationMethods": [{"name": "DatabricksMultiCloud.Catalogs", + "parameters": [{"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "httpPath", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Catalog", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "Database", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "QueryTags", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "EnableAutomaticProxyDiscovery", "dataType": "Text", "required": + false, "allowedValues": ["enabled", "disabled"]}, {"name": "Implementation", + "dataType": "Text", "required": false, "allowedValues": [null, "2.0"]}]}], + "supportedCredentialTypes": ["OAuth2", "Key", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DeltaSharing", "creationMethods": [{"name": "DeltaSharing.Contents", + "parameters": [{"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "rowLimitHint", "dataType": "Number", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Dremio", "creationMethods": [{"name": "Dremio.DatabasesV370", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "encryption", "dataType": "Text", "required": true, "allowedValues": + ["Enabled", "Disabled", "Enabled-PEM"]}, {"name": "engine", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "routingTag", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "routingQueue", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DremioCloud", "creationMethods": [{"name": "DremioCloud.DatabasesByServerV370", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "projectId", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "engine", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "routingTag", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "routingQueue", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "encryption", "dataType": "Text", "required": false, "allowedValues": + ["Enabled-PEM"]}]}], "supportedCredentialTypes": ["OAuth2", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DynatraceGrail", "creationMethods": [{"name": "DynatraceGrail.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "QueryInput", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "ScanGBParameter", "dataType": "Number", "required": false, + "allowedValues": null}, {"name": "MaxResultParameter", "dataType": "Number", + "required": false, "allowedValues": null}, {"name": "MaxBytesParameter", "dataType": + "Number", "required": false, "allowedValues": null}, {"name": "SamplingParameter", + "dataType": "Number", "required": false, "allowedValues": ["10", "100", "1000", + "10000"]}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "EduFrame", "creationMethods": [{"name": "EduFrame.Contents", + "parameters": [{"name": "domainSlug", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2", "Key"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "EmigoDataSourceConnector", "creationMethods": [{"name": "Emigo.Contents", + "parameters": [{"name": "DataRestrictionType", "dataType": "Text", "required": + false, "allowedValues": ["Not set", "Days", "Weeks", "Months", "Quarters", + "Years"]}, {"name": "DataRestrictionValue", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "DataRestrictionMode", "dataType": + "Text", "required": false, "allowedValues": ["Default", "Exact"]}, {"name": + "AuthorizationMode", "dataType": "Text", "required": false, "allowedValues": + ["Default", "EmigoObszary", "EmigoHierarchia", "CustomRestrictions"]}]}], + "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "EntersoftBusinessSuite", "creationMethods": [{"name": "EntersoftBusinessSuite.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "EQuIS", "creationMethods": [{"name": "EQuIS.Contents", "parameters": + [{"name": "baseUri", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key", "Basic", "OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "eWayCRM", "creationMethods": [{"name": "eWayCRM.Contents2", + "parameters": [{"name": "IncludeRelations", "dataType": "Boolean", "required": + false, "allowedValues": ["false", "true"]}, {"name": "Query", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "QueryAmount", + "dataType": "Boolean", "required": false, "allowedValues": ["false", "true"]}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FactSetAnalytics", "creationMethods": [{"name": "FactSetAnalytics.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FactSetRMS", "creationMethods": [{"name": "FactSetRMS.Functions", + "parameters": []}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Funnel", "creationMethods": [{"name": "Funnel.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "HexagonSmartApi", "creationMethods": [{"name": "HexagonSmartApi.Feed", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "headers", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "odataFeedVersion", "dataType": "Text", "required": false, + "allowedValues": ["2.0", "1.0"]}]}], "supportedCredentialTypes": ["OAuth2"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "IndustrialAppStore", "creationMethods": [{"name": "IndustrialAppStore.NavigationTable", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "InformationGrid", "creationMethods": [{"name": "InformationGrid.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "inwink", "creationMethods": [{"name": "inwink.ScopeContents", + "parameters": [{"name": "customerId", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "scope", "dataType": "Text", "required": + true, "allowedValues": ["Audience", "Event", "Community"]}, {"name": "scopeId", + "dataType": "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "JamfPro", "creationMethods": [{"name": "JamfPro.Contents", "parameters": + [{"name": "jamfUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Kognitwin", "creationMethods": [{"name": "Kognitwin.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "kxkdbinsightsenterprise", "creationMethods": [{"name": "kxkdbinsightsenterprise.Contents", + "parameters": [{"name": "HostUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "LEAP", "creationMethods": [{"name": "LEAP.Contents", "parameters": + []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "LinkedInLearning", "creationMethods": [{"name": "LinkedInLearning.Contents", + "parameters": [{"name": "start_date", "dataType": "DateTime", "required": + false, "allowedValues": null}, {"name": "end_date", "dataType": "DateTime", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "MicroStrategyDataset", "creationMethods": [{"name": "MicroStrategyDataset.Contents", + "parameters": [{"name": "libraryUrl", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "authMode", "dataType": "Text", "required": + false, "allowedValues": ["Standard", "LDAP"]}, {"name": "limit", "dataType": + "Number", "required": false, "allowedValues": null}, {"name": "timeout", "dataType": + "Number", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "OneStream", "creationMethods": [{"name": "OneStream.Navigation", + "parameters": [{"name": "OneStreamURL", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Paxata", "creationMethods": [{"name": "Paxata.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PlanviewOKR", "creationMethods": [{"name": "PlanviewOKR.Contents", + "parameters": [{"name": "ODataURL", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PlanviewProjectplace", "creationMethods": [{"name": "PlanviewProjectplace.Contents", + "parameters": [{"name": "ODataURL", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Profisee", "creationMethods": [{"name": "Profisee.Tables", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "QuickBase", "creationMethods": [{"name": "QuickBase.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Roamler", "creationMethods": [{"name": "Roamler.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Samsara", "creationMethods": [{"name": "Samsara.Records", + "parameters": [{"name": "Region", "dataType": "Text", "required": true, "allowedValues": + ["US", "EU"]}, {"name": "RangeStart", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "RangeEnd", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SDMX", "creationMethods": [{"name": "SDMX.Contents", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "Option", "dataType": "Text", "required": true, "allowedValues": + ["Show codes and labels", "Show codes only", "Show labels only"]}, {"name": + "Language", "dataType": "Text", "required": false, "allowedValues": null}]}], + "supportedCredentialTypes": ["Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ShortcutsBI", "creationMethods": [{"name": "ShortcutsBI.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Siteimprove", "creationMethods": [{"name": "Siteimprove.Contents", + "parameters": []}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SmartsheetGlobal", "creationMethods": [{"name": "SmartsheetGlobal.Contents", + "parameters": [{"name": "region", "dataType": "Text", "required": true, "allowedValues": + ["US", "EU"]}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SoftOneBI", "creationMethods": [{"name": "SoftOneBI.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SolarWindsServiceDesk", "creationMethods": [{"name": "SolarWindsServiceDesk.ContentsV113", + "parameters": [{"name": "RangeStart", "dataType": "DateTime", "required": + false, "allowedValues": null}, {"name": "RangeEnd", "dataType": "DateTime", + "required": false, "allowedValues": null}, {"name": "CustomFieldsStr", "dataType": + "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Key"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Spigit", "creationMethods": [{"name": "Spigit.Contents", "parameters": [{"name": + "ODataURL", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SumTotal", "creationMethods": [{"name": "SumTotal.ODataFeed", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Supermetrics", "creationMethods": [{"name": "Supermetrics.Render", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SurveyMonkey", "creationMethods": [{"name": "SurveyMonkey.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "TeamDesk", "creationMethods": [{"name": "TeamDesk.Database", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Tenforce", "creationMethods": [{"name": "Tenforce.Contents", + "parameters": [{"name": "ApplicationUrl", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "ListId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "DataType", "dataType": "Text", "required": + true, "allowedValues": ["Do not include", "Include"]}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Usercube", "creationMethods": [{"name": "Usercube.Universes", "parameters": + [{"name": "serverUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Vena", "creationMethods": [{"name": "Vena.Contents", "parameters": + [{"name": "source", "dataType": "Text", "required": true, "allowedValues": + ["https://ca3.vena.io", "https://ca4.vena.io", "https://eu1.vena.io", "https://eu2.vena.io", + "https://eu3.vena.io", "https://us1.vena.io", "https://us2.vena.io", "https://us3.vena.io", + "https://us4.vena.io", "https://us5.vena.io"]}, {"name": "modelQuery", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "apiVersion", + "dataType": "Text", "required": false, "allowedValues": ["v1", "v2"]}]}], + "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "VesselInsight", "creationMethods": [{"name": "VesselInsight.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "WebtrendsAnalytics", "creationMethods": [{"name": "WebtrendsAnalytics.Tables", + "parameters": [{"name": "ProfileId", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "Period", "dataType": "Text", "required": + true, "allowedValues": ["Custom Date", "Report Period"]}, {"name": "reportType", + "dataType": "Text", "required": true, "allowedValues": ["Summary", "Trend", + "Individual"]}, {"name": "startDate", "dataType": "Date", "required": false, + "allowedValues": null}, {"name": "endDate", "dataType": "Date", "required": + false, "allowedValues": null}, {"name": "startPeriod", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "endPeriod", "dataType": + "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "Windsor", "creationMethods": [{"name": "Windsor.Main", "parameters": []}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Witivio", "creationMethods": [{"name": "Witivio.Contents", + "parameters": [{"name": "botId", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Wrike", "creationMethods": [{"name": "Wrike.Contents", "parameters": + []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ZendeskData", "creationMethods": [{"name": "ZendeskData.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ZohoCreator", "creationMethods": [{"name": "ZohoCreator.Contents", + "parameters": [{"name": "creatordomain", "dataType": "Text", "required": true, + "allowedValues": ["zoho.com", "zoho.eu", "zoho.com.cn", "zoho.in", "zoho.com.au"]}, + {"name": "scopname", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "applinkname", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "reportlinkname", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Zucchetti", "creationMethods": [{"name": "Zucchetti.Contents", + "parameters": [{"name": "Url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Environment", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AtScale", "creationMethods": [{"name": "AtScale.Cubes", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "ConnectionTimeout", "dataType": "Duration", "required": false, + "allowedValues": null}, {"name": "CommandTimeout", "dataType": "Duration", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureCosmosDBForMongoDBvCore", "creationMethods": [{"name": "AzureCosmosDBForMongoDBvCore.Contents", + "parameters": [{"name": "baseURL", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "collection", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureCostManagement", "creationMethods": [{"name": "AzureCostManagement.Tables", + "parameters": [{"name": "scope", "dataType": "Text", "required": true, "allowedValues": + ["Billing Profile Id", "Enrollment Number", "Manually Input Scope"]}, {"name": + "scopeValue", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "numberOfMonths", "dataType": "Number", "required": true, "allowedValues": + null}, {"name": "startDate", "dataType": "Date", "required": false, "allowedValues": + null}, {"name": "endDate", "dataType": "Date", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDeviceRegistry", "creationMethods": [{"name": "AzureDeviceRegistry.Query", + "parameters": [{"name": "scope", "dataType": "Text", "required": true, "allowedValues": + ["Tenant", "Subscription"]}, {"name": "subscriptions", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "namespaces", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "customAttributes", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "resultTruncated", + "dataType": "Boolean", "required": false, "allowedValues": ["true", "false"]}, + {"name": "pagesize", "dataType": "Number", "required": false, "allowedValues": + ["5", "10", "25", "50", "100", "200", "300", "400", "500", "600", "700", "800", + "900", "1000"]}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureResourceGraph", "creationMethods": [{"name": "AzureResourceGraph.Query", + "parameters": [{"name": "query", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "scope", "dataType": "Text", "required": false, "allowedValues": + ["Tenant", "Subscription", "Management group"]}, {"name": "subscription", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "managementGroup", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "resultTruncated", + "dataType": "Boolean", "required": false, "allowedValues": ["true", "false"]}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CommonDataService", "creationMethods": [{"name": "CommonDataService.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "CreateNavigationProperties", "dataType": "Boolean", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", + "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": ["NotEncrypted", + "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CosmosDB", "creationMethods": [{"name": "CosmosDB.Contents", + "parameters": [{"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "NUMBER_OF_RETRIES", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "ENABLE_AVERAGE_FUNCTION_PASSDOWN", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "ENABLE_SORT_PASSDOWN_FOR_MULTIPLE_COLUMNS", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Key", "OAuth2", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CustomerInsights", "creationMethods": [{"name": "CustomerInsights.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FabricSql", "creationMethods": [{"name": "FabricSql.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Fhir", "creationMethods": [{"name": "Fhir.Contents", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}, + {"name": "searchQuery", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GoogleSheets", "creationMethods": [{"name": "GoogleSheets.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "IntuneV2", "creationMethods": [{"name": "IntuneV2.Contents", + "parameters": [{"name": "dataWarehouseAsuUri", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "maxHistoryDays", "dataType": "Number", + "required": false, "allowedValues": ["1", "2", "3", "4", "5", "6", "7", "14", + "30"]}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Lakehouse", "creationMethods": [{"name": "Lakehouse.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MicrosoftAzureDataManagerForEnergy", "creationMethods": [{"name": + "MicrosoftAzureDataManagerForEnergy.Search", "parameters": [{"name": "serviceName", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "dataPartition", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "kind", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "query", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "limit", + "dataType": "Number", "required": false, "allowedValues": null}, {"name": + "returnedFields", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PowerBIDatamarts", "creationMethods": [{"name": "PowerBI.Datamarts", + "parameters": [{"name": "server", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PowerPlatformDataflows", "creationMethods": [{"name": "PowerPlatform.Dataflows", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ProductInsights", "creationMethods": [{"name": "ProductInsights.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Synapse", "creationMethods": [{"name": "Synapse.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Warehouse", "creationMethods": [{"name": "Fabric.Warehouse", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "VivaInsights", "creationMethods": [{"name": "VivaInsights.Data", + "parameters": [{"name": "scopeId", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "jobName", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "jobId", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "SchemaType", "dataType": "Text", "required": false, "allowedValues": + ["Pivoted", "Unpivoted"]}, {"name": "APIType", "dataType": "Text", "required": + false, "allowedValues": ["Aggregated data", "Row-level data"]}, {"name": "TableName", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AdlsGen2CosmosStructuredStream", "creationMethods": [{"name": "AdlsGen2CosmosStructuredStream.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AmazonRdsForOracle", "creationMethods": [{"name": "AmazonRdsForOracle.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AmazonRdsForSqlServer", "creationMethods": [{"name": "AmazonRdsForSqlServer.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AmazonS3", "creationMethods": [{"name": "AmazonS3.Storage", + "parameters": [{"name": "url", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "roleArn", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SAPDatasphereAmazonS3", "creationMethods": [{"name": "SAPDatasphereAmazonS3.Actions", + "parameters": [{"name": "url", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "roleArn", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AmazonS3Compatible", "creationMethods": [{"name": "AmazonS3Compatible.Storage", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AvevaConnect", "creationMethods": [{"name": "AvevaConnect.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureAISearch", "creationMethods": [{"name": "AzureAISearch.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureArtifactFeed", "creationMethods": [{"name": "AzureArtifactFeed.Contents", + "parameters": [{"name": "feedUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureBatch", "creationMethods": [{"name": "AzureBatch.Contents", + "parameters": [{"name": "accountName", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "batchUrl", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "poolName", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureCosmosDBForMongoDB", "creationMethods": [{"name": "AzureCosmosDBForMongoDB.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "serverVersion", "dataType": "Text", "required": true, "allowedValues": + ["Above 3.2", "3.2"]}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDatabaseForMySQL", "creationMethods": [{"name": "AzureDatabaseForMySQL.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDatabricksWorkspace", "creationMethods": [{"name": "AzureDatabricksWorkspace.Actions", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key", "OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureDataFactory", "creationMethods": [{"name": "AzureDataFactory.Actions", + "parameters": [{"name": "subscriptionId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "resourceGroup", "dataType": "Text", + "required": true, "allowedValues": null}, {"name": "dataFactoryName", "dataType": + "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDataLakeStoreCosmosStructuredStream", "creationMethods": + [{"name": "AzureDataLakeStoreCosmosStructuredStream.Contents", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureFiles", "creationMethods": [{"name": "AzureFiles.Contents", + "parameters": [{"name": "shareUrl", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "snapshot", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureFunction", "creationMethods": [{"name": "AzureFunction.Contents", + "parameters": [{"name": "functionAppUrl", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Key", "Anonymous"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureHDInsightCluster", "creationMethods": [{"name": "AzureHDInsightCluster.Actions", + "parameters": [{"name": "hdiUrl", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "entSecPackageEnabled", "dataType": "Boolean", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureHDInsightOnDemandCluster", "creationMethods": [{"name": + "AzureHDInsightOnDemandCluster.Actions", "parameters": [{"name": "subscriptionId", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "resourceGroupName", + "dataType": "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureKeyVault", "creationMethods": [{"name": "AzureKeyVault.Actions", + "parameters": [{"name": "accountName", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureMachineLearning", "creationMethods": [{"name": "AzureMachineLearning.Contents", + "parameters": [{"name": "subscriptionId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "resourceGroupName", "dataType": "Text", + "required": true, "allowedValues": null}, {"name": "workspaceName", "dataType": + "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzurePostgreSQL", "creationMethods": [{"name": "AzurePostgreSQL.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "CommandTimeout", "dataType": "Duration", "required": false, + "allowedValues": null}]}], "supportedCredentialTypes": ["Basic", "OAuth2"], + "supportedConnectionEncryptionTypes": ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureServiceBus", "creationMethods": [{"name": "AzureServiceBus.Contents", + "parameters": [{"name": "hostName", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureSqlMI", "creationMethods": [{"name": "AzureSqlMI.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Query", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AzureSynapseWorkspace", "creationMethods": [{"name": "AzureSynapseWorkspace.Actions", + "parameters": [{"name": "workspaceName", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", + "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Cassandra", "creationMethods": [{"name": "Cassandra.Contents", + "parameters": [{"name": "Host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Port", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ConfluentCloud", "creationMethods": [{"name": "ConfluentCloud.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ConfluentSchemaRegistry", "creationMethods": [{"name": "ConfluentSchemaRegistry.Contents", + "parameters": [{"name": "schemaRegistryUrl", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CopyJob", "creationMethods": [{"name": "CopyJob.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "CustomStreamSource", "creationMethods": [{"name": "CustomStreamSource.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "DataBuildToolJob", "creationMethods": [{"name": "DataBuildToolJob.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "DataLakeAnalytics", "creationMethods": [{"name": "DataLakeAnalytics.Account", + "parameters": [{"name": "accountName", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "subscriptionId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "resourceGroupName", "dataType": "Text", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Dynamics365", "creationMethods": [{"name": "Dynamics365.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "DynamicsAX", "creationMethods": [{"name": "DynamicsAX.Contents", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "DynamicsCrm", "creationMethods": [{"name": "DynamicsCrm.Contents", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", "WorkspaceIdentity"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "EventHub", "creationMethods": [{"name": "EventHub.Contents", "parameters": + [{"name": "endpoint", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "entityPath", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FabricDataPipelines", "creationMethods": [{"name": "FabricDataPipelines.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", + "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FabricMaterializedLakehouseView", "creationMethods": [{"name": + "FabricMaterializedLakehouseView.Actions", "parameters": []}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FabricSqlEndpointMetadata", "creationMethods": [{"name": + "FabricSqlEndpointMetadata.Actions", "parameters": []}], "supportedCredentialTypes": + ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "FTP", "creationMethods": [{"name": "FTP.Contents", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GoogleCloudStorage", "creationMethods": [{"name": "GoogleCloudStorage.Storage", + "parameters": [{"name": "url", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SAPDatasphereGoogleCloudStorage", "creationMethods": [{"name": + "SAPDatasphereGoogleCloudStorage.Actions", "parameters": [{"name": "url", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "GooglePubSub", "creationMethods": [{"name": "GooglePubSub.Contents", "parameters": + [{"name": "projectId", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GreenplumForPipeline", "creationMethods": [{"name": "GreenplumForPipeline.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "connectionTimeout", "dataType": "Number", "required": false, + "allowedValues": null}, {"name": "commandTimeout", "dataType": "Number", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "HdfsForPipeline", "creationMethods": [{"name": "HdfsForPipeline.Contents", + "parameters": [{"name": "clusterURL", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "HttpServer", "creationMethods": [{"name": "HttpServer.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic", "Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "InformixForPipeline", "creationMethods": [{"name": "InformixForPipeline.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "service", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "protocol", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Anonymous", "Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "IoTHub", "creationMethods": [{"name": "IoTHub.Contents", + "parameters": [{"name": "entityPath", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Kinesis", "creationMethods": [{"name": "Kinesis.Contents", + "parameters": [{"name": "streamName", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MariaDBForPipeline", "creationMethods": [{"name": "MariaDBForPipeline.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "database", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MicrosoftAccess", "creationMethods": [{"name": "MicrosoftAccess.Contents", + "parameters": [{"name": "filePath", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Anonymous", "Basic"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "MicrosoftOutlook", "creationMethods": [{"name": "MicrosoftOutlook.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "MicrosoftTeams", "creationMethods": [{"name": "MicrosoftTeams.Actions", "parameters": + []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MongoDBAtlasForPipeline", "creationMethods": [{"name": "MongoDBAtlasForPipeline.Database", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "cluster", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MongoDBForPipeline", "creationMethods": [{"name": "MongoDBForPipeline.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MQTT", "creationMethods": [{"name": "MQTT.Contents", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Notebook", "creationMethods": [{"name": "Notebook.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "OracleCloudStorage", "creationMethods": [{"name": "OracleCloudStorage.Contents", + "parameters": [{"name": "APIEndpoint", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "PowerBIDatasets", "creationMethods": [{"name": "PowerBIDatasets.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal", + "WorkspaceIdentity"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Presto", "creationMethods": [{"name": "Presto.Contents", + "parameters": [{"name": "Server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Catalog", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Timezone", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "ServerCertificateValidation", "dataType": "Text", "required": + false, "allowedValues": ["Enable", "Disable"]}]}], "supportedCredentialTypes": + ["Anonymous", "Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted", + "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "RestService", "creationMethods": [{"name": "RestService.Contents", + "parameters": [{"name": "baseUrl", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "audience", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic", "Anonymous", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SalesforceServiceCloud", "creationMethods": [{"name": "SalesforceServiceCloud.Contents", + "parameters": [{"name": "environmentURL", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "apiVersion", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SAPAzureDataLakeStorageGen2", "creationMethods": [{"name": + "SAPAzureDataLakeStorageGen2.Actions", "parameters": [{"name": "url", "dataType": + "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "Key", "ServicePrincipal"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SAPBWOpenHubApplicationServer", "creationMethods": [{"name": + "SAPBWOpenHubApplicationServer.Contents", "parameters": [{"name": "appServerName", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "systemNumber", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "clientID", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "languageCode", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SAPBWOpenHubMessageServer", "creationMethods": [{"name": "SAPBWOpenHubMessageServer.Contents", + "parameters": [{"name": "messageServer", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "clientID", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "messageServerService", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "systemID", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "logonGroup", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "languageCode", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SAPTableApplicationServer", "creationMethods": [{"name": "SAPTableApplicationServer.Contents", + "parameters": [{"name": "appServerName", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "systemNumber", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "clientID", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "languageCode", "dataType": "Text", + "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SAPTableMessageServer", "creationMethods": [{"name": "SAPTableMessageServer.Contents", + "parameters": [{"name": "messageServer", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "clientID", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "messageServerService", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "systemID", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "logonGroup", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "languageCode", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "ServiceNow", "creationMethods": [{"name": "ServiceNow.Data", "parameters": + [{"name": "instance", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SFTP", "creationMethods": [{"name": "SFTP.Contents", "parameters": + [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "fingerprint", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Shopify", "creationMethods": [{"name": "Shopify.Database", + "parameters": [{"name": "host", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted", "Encrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ShortcutsExtensibilityTest", "creationMethods": [{"name": + "ShortcutsExtensibilityTest.Contents", "parameters": [{"name": "baseUrl", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "audience", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["Basic", "OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SolacePubsub", "creationMethods": [{"name": "SolacePubsub.Contents", + "parameters": [{"name": "server", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SparkJobDefinition", "creationMethods": [{"name": "SparkJobDefinition.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "SqlAnalyticsEndpoint", "creationMethods": [{"name": "SqlAnalyticsEndpoint.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "UserDataFunctions", "creationMethods": [{"name": "UserDataFunctions.Actions", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "WebForPipeline", "creationMethods": [{"name": "WebForPipeline.Contents", + "parameters": [{"name": "baseUrl", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "audience", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "Basic", "Anonymous", "Key", + "ServicePrincipal"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureDevOpsSourceControl", "creationMethods": [{"name": "AzureDevOpsSourceControl.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GitHubSourceControl", "creationMethods": [{"name": "GitHubSourceControl.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "GoogleAds", "creationMethods": [{"name": "GoogleAds.Contents", + "parameters": [{"name": "googleAdsApiVersion", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "clientCustomerID", "dataType": "Text", + "required": true, "allowedValues": null}, {"name": "loginCustomerID", "dataType": + "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2", "Basic"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], + "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Microsoft365", "creationMethods": [{"name": "Microsoft365.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2", "ServicePrincipal"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "QuickBooksForPipeline", "creationMethods": [{"name": "QuickBooksForPipeline.Contents", + "parameters": [{"name": "endpoint", "dataType": "Text", "required": true, + "allowedValues": ["https://sandbox-quickbooks.api.intuit.com", "https://quickbooks.api.intuit.com"]}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AriaConnector", "creationMethods": [{"name": "AriaDataConnector.GetCubes", + "parameters": [{"name": "Project ID", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "interval", "dataType": "Text", "required": + false, "allowedValues": ["Last hour", "Last 2 hours", "Last 4 hours", "Last + 12 hours", "Last 24 hours", "Last 2 days", "Last 4 days", "Last week", "Last + 2 weeks", "Last 4 weeks", "Last 8 weeks", "Last 12 weeks", "Last 30 days", + "Last 60 days", "Last 90 days", "Last 180 days"]}, {"name": "granularity", + "dataType": "Text", "required": false, "allowedValues": ["Five seconds", "Ten + seconds", "Five minutes", "One hour", "One day", "One week", "One month"]}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AzureEnterprise", "creationMethods": [{"name": "AzureEnterprise.Tables", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CloudScope", "creationMethods": [{"name": "CloudScope.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CloudScopeInstagram", "creationMethods": [{"name": "CloudScopeInstagram.Contents", + "parameters": []}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "comScore", "creationMethods": [{"name": "comScore.NavTable", + "parameters": [{"name": "datacenter", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "client", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "startDate", "dataType": "Date", "required": + false, "allowedValues": null}, {"name": "endDate", "dataType": "Date", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "InfinityConnector", "creationMethods": [{"name": "InfinityConnector.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "JDIConnector", "creationMethods": [{"name": "JDIConnector.Contents", + "parameters": [{"name": "DataUrl", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "KaizalaAttendanceReports", "creationMethods": [{"name": "KaizalaAttendanceReports.Feed", + "parameters": [{"name": "ContentPackName", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "KaizalaReports", "creationMethods": [{"name": "KaizalaReports.Feed", + "parameters": [{"name": "MethodName", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "KaizalaSurveyReports", "creationMethods": [{"name": "KaizalaSurveyReports.Feed", + "parameters": [{"name": "ContentPackName", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AdMaD", "creationMethods": [{"name": "AdMaD.Feed", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": ["https://columnstoremt.azurewebsites.net/", + "https://admadmt.azurewebsites.net/", "https://firebirdapi.azure-api.net/", + "https://firebirdapptest.azurewebsites.net/"]}, {"name": "sourceName", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "request", "dataType": + "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "myob_ar", "creationMethods": [{"name": "myob_ar.GetCompanyFiles", "parameters": + [{"name": "company", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Office365Mon2", "creationMethods": [{"name": "Office365Mon.Outages.Feed", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Plantronics", "creationMethods": [{"name": "Plantronics.Feed", + "parameters": [{"name": "URL", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "Tenant", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "URL1", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "URL2", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "Parameters", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "ElementsPerPage", "dataType": "Number", "required": false, + "allowedValues": null}]}], "supportedCredentialTypes": ["Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ProductioneerMExt", "creationMethods": [{"name": "ProductioneerMExt.Contents", + "parameters": [{"name": "CompanyName", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "endpoint", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "StartDate", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ProjectIntelligence", "creationMethods": [{"name": "ProjectIntelligence.Service", + "parameters": [{"name": "ShareAdvanceWebAddress", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "Dimension", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "DataType", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "QuestionPro", "creationMethods": [{"name": "QuestionPro.Contents", + "parameters": [{"name": "access_id", "dataType": "Text", "required": true, + "allowedValues": null}]}], "supportedCredentialTypes": ["Key"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ScopevisioPowerBICon", "creationMethods": [{"name": "ScopevisioPowerBICon.Contents", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SentryOne", "creationMethods": [{"name": "SentryOne.Tables", + "parameters": []}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "SpotlightCloudReports", "creationMethods": [{"name": "SpotlightCloudReports.Contents", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Timelog", "creationMethods": [{"name": "Timelog.Tables", + "parameters": [{"name": "SiteCode", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "ApiID", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "ApiPassword", "dataType": "Text", + "required": true, "allowedValues": null}, {"name": "URLAccountName", "dataType": + "Text", "required": true, "allowedValues": null}, {"name": "DefaultNumberAccount", + "dataType": "Text", "required": true, "allowedValues": null}, {"name": "CurrentMonthOnly", + "dataType": "Text", "required": true, "allowedValues": null}]}], "supportedCredentialTypes": + ["Anonymous"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "UserVoice", "creationMethods": [{"name": "UserVoice.Tables", "parameters": + [{"name": "url", "dataType": "Text", "required": true, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "WtsParadigm", "creationMethods": [{"name": "WtsParadigm.GetDefaultData", + "parameters": []}], "supportedCredentialTypes": ["Basic"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Xero", "creationMethods": [{"name": "Xero.Contents", "parameters": + [{"name": "urlInput", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "countInput", "dataType": "Number", "required": false, "allowedValues": + null}, {"name": "company", "dataType": "Text", "required": false, "allowedValues": + null}, {"name": "tenantId", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "AdminInsights", "creationMethods": [{"name": "AdminInsights.GetAzureBlobContents", + "parameters": [{"name": "_workload", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "_fileType", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_version", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_rangeStart", "dataType": "Text", + "required": true, "allowedValues": null}, {"name": "_rangeEnd", "dataType": + "Text", "required": true, "allowedValues": null}, {"name": "_desktopHostContainerUrl", + "dataType": "Text", "required": false, "allowedValues": null}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "AutoPremium", "creationMethods": [{"name": "AutoPremium.GetMetricsData", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "isPbiAdmin", "dataType": "Boolean", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "CapacityMetricsCES", "creationMethods": [{"name": "CapacityMetricsCES.GetMetricsData", + "parameters": [{"name": "_queryName", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "_capacityId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_tenantId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_ago", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_cluster", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_database", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_utcOffset", "dataType": "Number", + "required": false, "allowedValues": null}, {"name": "_releaseType", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "_localTimepoint", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_byPassAdminCheckForTenantAdmin", + "dataType": "Boolean", "required": false, "allowedValues": null}, {"name": + "_shouldMaskUser", "dataType": "Boolean", "required": false, "allowedValues": + null}, {"name": "_targetCesRegion", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "_startDate", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "_endDate", "dataType": "Text", "required": + false, "allowedValues": null}, {"name": "_uniqueKey", "dataType": "Text", + "required": false, "allowedValues": null}, {"name": "_artifactId", "dataType": + "Text", "required": false, "allowedValues": null}, {"name": "_workspaceId", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_operationName", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_operationId", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_user", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_status", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_isOverride", + "dataType": "Text", "required": false, "allowedValues": null}, {"name": "_aggCuThreshold", + "dataType": "Number", "required": false, "allowedValues": null}, {"name": + "_experience", "dataType": "Text", "required": false, "allowedValues": null}]}], + "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": true, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Goals", "creationMethods": [{"name": "Goals.GetScorecardData", + "parameters": [{"name": "scorecardId", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "top", "dataType": "Number", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "MetricsCES", "creationMethods": [{"name": "MetricsCES.GetMetricsData", "parameters": + [{"name": "_capacityId", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "_database", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "_ago", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "_hour", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "_kustoUri", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MetricsDataConnector", "creationMethods": [{"name": "MetricsDataConnector.GetMetricsData", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "isPbiAdmin", "dataType": "Boolean", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "MicrosoftCallQuality", "creationMethods": [{"name": "MicrosoftCallQuality.GenerateTable", + "parameters": [{"name": "tenantId", "dataType": "Text", "required": false, + "allowedValues": null}, {"name": "filters", "dataType": "Text", "required": + false, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], + "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}, {"type": + "UsageMetricsDataConnector", "creationMethods": [{"name": "UsageMetricsDataConnector.GetMetricsData", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "UsageMetricsCES", "creationMethods": [{"name": "UsageMetricsCES.Contents", + "parameters": [{"name": "_tenantId", "dataType": "Text", "required": true, + "allowedValues": null}, {"name": "_workspaceId", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_database", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_ago", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_hour", "dataType": "Text", "required": + true, "allowedValues": null}, {"name": "_kustoUri", "dataType": "Text", "required": + true, "allowedValues": null}]}], "supportedCredentialTypes": ["OAuth2"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "ElasticSearch", "creationMethods": [{"name": "ElasticSearch.Database", + "parameters": [{"name": "url", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "keyColumnName", "dataType": "Text", "required": false, "allowedValues": + null}]}], "supportedCredentialTypes": ["Basic", "Anonymous"], "supportedConnectionEncryptionTypes": + ["NotEncrypted"], "supportsSkipTestConnection": false, "supportedCredentialTypesForUsageInUserControlledCode": + null}, {"type": "Looker", "creationMethods": [{"name": "Looker.DataSource", + "parameters": [{"name": "Host", "dataType": "Text", "required": true, "allowedValues": + null}, {"name": "ShowHidden", "dataType": "Boolean", "required": false, "allowedValues": + ["true", "false"]}, {"name": "EnableLogging", "dataType": "Boolean", "required": + false, "allowedValues": ["true", "false"]}]}], "supportedCredentialTypes": + ["OAuth2"], "supportedConnectionEncryptionTypes": ["NotEncrypted"], "supportsSkipTestConnection": + false, "supportedCredentialTypesForUsageInUserControlledCode": null}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '8567' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:43:20 GMT + Pragma: + - no-cache + RequestId: + - a1563ab2-e730-4f27-b211-94fc55ef8b27 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"description": "Created by fab", "displayName": "fabcli000001", "connectivityType": + "ShareableCloud", "privacyLevel": "None", "connectionDetails": "mock_request_connection_details", + "credentialDetails": "mocked_credential_details"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '586' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "28b2782b-2401-4172-9cbd-66b1ceeb46cd", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '304' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:43:21 GMT + Location: + - https://api.fabric.microsoft.com/v1/connections/28b2782b-2401-4172-9cbd-66b1ceeb46cd + Pragma: + - no-cache + RequestId: + - f72f8bc7-e087-44b5-a4d4-ca6e5e3de316 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"value": [{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "28b2782b-2401-4172-9cbd-66b1ceeb46cd", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '906' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:43:22 GMT + Pragma: + - no-cache + RequestId: + - 15dd52ad-7bda-4ec3-bc12-65148da598ac + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections/28b2782b-2401-4172-9cbd-66b1ceeb46cd + response: + body: + string: '{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "28b2782b-2401-4172-9cbd-66b1ceeb46cd", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "None", "credentialDetails": "mocked_credential_details"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '304' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:43:25 GMT + Pragma: + - no-cache + RequestId: + - 445802b6-a245-4edd-8381-6aa22c2995f6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"privacyLevel": "Organizational", "connectivityType": "ShareableCloud"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '72' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/connections/28b2782b-2401-4172-9cbd-66b1ceeb46cd + response: + body: + string: '{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "28b2782b-2401-4172-9cbd-66b1ceeb46cd", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "Organizational", "credentialDetails": "mocked_credential_details"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '313' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:43:26 GMT + Pragma: + - no-cache + RequestId: + - 1e8895a5-5cab-4d77-8dbd-25a228c7873d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"value": [{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "28b2782b-2401-4172-9cbd-66b1ceeb46cd", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "Organizational", "credentialDetails": "mocked_credential_details"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '902' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:43:28 GMT + Pragma: + - no-cache + RequestId: + - 0be9f6f0-11ab-43dd-9440-63a726f858b9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections/28b2782b-2401-4172-9cbd-66b1ceeb46cd + response: + body: + string: '{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "28b2782b-2401-4172-9cbd-66b1ceeb46cd", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "Organizational", "credentialDetails": "mocked_credential_details"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '313' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:43:29 GMT + Pragma: + - no-cache + RequestId: + - de640af2-aaf4-4717-930b-bf0027322553 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/connections + response: + body: + string: '{"value": [{"allowConnectionUsageInGateway": false, "allowUsageInUserControlledCode": + false, "id": "28b2782b-2401-4172-9cbd-66b1ceeb46cd", "displayName": "fabcli000001", + "connectivityType": "ShareableCloud", "connectionDetails": {"path": "mocked_sql_server_server.database.windows.net;mocked_sql_server_database", + "type": "SQL"}, "privacyLevel": "Organizational", "credentialDetails": "mocked_credential_details"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '902' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:43:30 GMT + Pragma: + - no-cache + RequestId: + - de8166dc-38e2-485f-908f-29482763b578 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/connections/28b2782b-2401-4172-9cbd-66b1ceeb46cd + 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: + - Wed, 21 Jan 2026 09:43:31 GMT + Pragma: + - no-cache + RequestId: + - 0955682c-8e3b-4b80-b19e-235a5afdbdf4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-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_set/test_set_gateway_virtualNetwork_capacityId_success.yaml b/tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_capacityId_success.yaml new file mode 100644 index 00000000..6637e09e --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_capacityId_success.yaml @@ -0,0 +1,614 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1259' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:09:34 GMT + Pragma: + - no-cache + RequestId: + - 5cf4e4e0-647c-42fa-8d99-a80f2b9414d4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.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": "F32", "region": "Central US", "state": + "Active"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '425' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:09:40 GMT + Pragma: + - no-cache + RequestId: + - 442dcc33-22ed-450e-87f9-9bf4584b1670 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://management.azure.com/subscriptions?api-version=2022-12-01 + response: + body: + string: '{"value": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000"}], + "count": {"type": "Total", "value": 1}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - '469' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:09:41 GMT + Expires: + - '-1' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + 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.3.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/virtualNetworks?api-version=2024-05-01 + response: + body: + string: '{"value": [{"name": "mocked_fabriccli_vnet_name", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mocked_fabriccli_resource_group/providers/Microsoft.Network/virtualNetworks/mocked_fabriccli_vnet_name", + "properties": {"subnets": [{"name": "mocked_fabriccli_vnet_subnet", "id": + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mocked_fabriccli_resource_group/providers/Microsoft.Network/virtualNetworks/mocked_fabriccli_vnet_name/subnets/mocked_fabriccli_vnet_subnet"}]}}]}' + headers: + Cache-Control: + - no-cache + Content-Length: + - '2758' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:09:43 GMT + Expires: + - '-1' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "inactivityMinutesBeforeSleep": 30, "numberOfMemberGateways": 1, "type": "VirtualNetwork", + "virtualNetworkAzureResource": {"subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "mocked_fabriccli_resource_group", "virtualNetworkName": + "mocked_fabriccli_vnet_name", "subnetName": "mocked_fabriccli_vnet_subnet"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '377' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "f1152eab-8ae0-4150-8d6e-96ce8a9ecd81", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '289' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:09:57 GMT + Location: + - https://api.fabric.microsoft.com/v1/gateways/f1152eab-8ae0-4150-8d6e-96ce8a9ecd81 + Pragma: + - no-cache + RequestId: + - 25522f4b-4add-4cd1-9383-d47458aab95f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "f1152eab-8ae0-4150-8d6e-96ce8a9ecd81", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1300' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:09:59 GMT + Pragma: + - no-cache + RequestId: + - c779bb7e-1e96-4cde-97ac-a1a416704613 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways/f1152eab-8ae0-4150-8d6e-96ce8a9ecd81 + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "f1152eab-8ae0-4150-8d6e-96ce8a9ecd81", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '289' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:10:01 GMT + Pragma: + - no-cache + RequestId: + - a49d67ff-4026-4a1e-b8f4-664ae0438ecd + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"capacityId": "00000000-0000-0000-0000-000000000004", "type": "VirtualNetwork"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '80' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/gateways/f1152eab-8ae0-4150-8d6e-96ce8a9ecd81 + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "f1152eab-8ae0-4150-8d6e-96ce8a9ecd81", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '289' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:10:12 GMT + Pragma: + - no-cache + RequestId: + - 5ffc69b7-ee68-4423-a2a3-0110c90bf8e8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "f1152eab-8ae0-4150-8d6e-96ce8a9ecd81", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1300' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:10:13 GMT + Pragma: + - no-cache + RequestId: + - 07f8047c-3554-4e16-8601-3e6d7e608005 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways/f1152eab-8ae0-4150-8d6e-96ce8a9ecd81 + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "f1152eab-8ae0-4150-8d6e-96ce8a9ecd81", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '289' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:10:15 GMT + Pragma: + - no-cache + RequestId: + - 8461dfb5-afc8-4188-b6bc-fd596f11c544 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "f1152eab-8ae0-4150-8d6e-96ce8a9ecd81", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1300' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:10:16 GMT + Pragma: + - no-cache + RequestId: + - ad4d3459-1c80-4e30-9753-1ec80cf0c716 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/gateways/f1152eab-8ae0-4150-8d6e-96ce8a9ecd81 + 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: + - Tue, 20 Jan 2026 12:10:18 GMT + Pragma: + - no-cache + RequestId: + - ebac870a-2e5e-45cc-b796-ec9dc4ef79ec + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-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_set/test_set_gateway_virtualNetwork_success[displayName-None].yaml b/tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_success[displayName-None].yaml new file mode 100644 index 00000000..664f29ad --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_success[displayName-None].yaml @@ -0,0 +1,828 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1262' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:38:31 GMT + Pragma: + - no-cache + RequestId: + - 542265fa-49e6-47bd-bad8-f423c83727f9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.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": "F32", "region": "Central US", "state": + "Active"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '424' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:38:38 GMT + Pragma: + - no-cache + RequestId: + - 38dc1e10-2a53-4ad7-81d1-fdc823c9e1b3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://management.azure.com/subscriptions?api-version=2022-12-01 + response: + body: + string: '{"value": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000"}], + "count": {"type": "Total", "value": 1}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - '469' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:38:39 GMT + Expires: + - '-1' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + 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.3.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/virtualNetworks?api-version=2024-05-01 + response: + body: + string: '{"value": [{"name": "mocked_fabriccli_vnet_name", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mocked_fabriccli_resource_group/providers/Microsoft.Network/virtualNetworks/mocked_fabriccli_vnet_name", + "properties": {"subnets": [{"name": "mocked_fabriccli_vnet_subnet", "id": + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mocked_fabriccli_resource_group/providers/Microsoft.Network/virtualNetworks/mocked_fabriccli_vnet_name/subnets/mocked_fabriccli_vnet_subnet"}]}}]}' + headers: + Cache-Control: + - no-cache + Content-Length: + - '2758' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:38:40 GMT + Expires: + - '-1' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "inactivityMinutesBeforeSleep": 30, "numberOfMemberGateways": 1, "type": "VirtualNetwork", + "virtualNetworkAzureResource": {"subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "mocked_fabriccli_resource_group", "virtualNetworkName": + "mocked_fabriccli_vnet_name", "subnetName": "mocked_fabriccli_vnet_subnet"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '377' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '290' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:38:57 GMT + Location: + - https://api.fabric.microsoft.com/v1/gateways/b3d6d7e4-3372-47ee-8994-4a56fbb99c3f + Pragma: + - no-cache + RequestId: + - 0b0da843-2521-4714-8401-461ea057d118 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1304' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:38:59 GMT + Pragma: + - no-cache + RequestId: + - b6d7ae17-c01e-40a5-805e-783801165f01 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways/b3d6d7e4-3372-47ee-8994-4a56fbb99c3f + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '290' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:38:59 GMT + Pragma: + - no-cache + RequestId: + - ad661853-2f4c-47b8-af1e-900ba8bcb8f1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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": "VirtualNetwork"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '61' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/gateways/b3d6d7e4-3372-47ee-8994-4a56fbb99c3f + response: + body: + string: '{"displayName": "fabcli000002", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '290' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:39:02 GMT + Pragma: + - no-cache + RequestId: + - c0ee9e8f-9645-4eca-a4c4-9596411db39d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000002", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1303' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:39:05 GMT + Pragma: + - no-cache + RequestId: + - aff57473-f4be-48dd-b1e7-3f769a3a285b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000002", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1303' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:39:06 GMT + Pragma: + - no-cache + RequestId: + - af8900a9-0e17-4527-9e86-e6851d5ed782 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways/b3d6d7e4-3372-47ee-8994-4a56fbb99c3f + response: + body: + string: '{"displayName": "fabcli000002", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '290' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:39:08 GMT + Pragma: + - no-cache + RequestId: + - 2c52380f-d84e-49aa-b8d7-5d1941686264 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000002", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1303' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:39:09 GMT + Pragma: + - no-cache + RequestId: + - 09b537d6-86ce-4c8a-80e6-5934f484b424 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways/b3d6d7e4-3372-47ee-8994-4a56fbb99c3f + response: + body: + string: '{"displayName": "fabcli000002", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '290' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:39:12 GMT + Pragma: + - no-cache + RequestId: + - c4549f6c-4c60-4311-885c-e7e868d9986a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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": "VirtualNetwork"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '61' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/gateways/b3d6d7e4-3372-47ee-8994-4a56fbb99c3f + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '290' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:39:13 GMT + Pragma: + - no-cache + RequestId: + - 9eecda00-ca47-4643-9890-7b6921f85de4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "b3d6d7e4-3372-47ee-8994-4a56fbb99c3f", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1304' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 09:39:14 GMT + Pragma: + - no-cache + RequestId: + - 69a4cd07-5a24-465d-87ad-eab118e99fe2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/gateways/b3d6d7e4-3372-47ee-8994-4a56fbb99c3f + 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: + - Wed, 21 Jan 2026 09:39:16 GMT + Pragma: + - no-cache + RequestId: + - 3438a205-e6b2-4865-953f-61368978c882 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-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_set/test_set_gateway_virtualNetwork_success[inactivityMinutesBeforeSleep-60].yaml b/tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_success[inactivityMinutesBeforeSleep-60].yaml new file mode 100644 index 00000000..11f45ff5 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_success[inactivityMinutesBeforeSleep-60].yaml @@ -0,0 +1,614 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1259' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:21 GMT + Pragma: + - no-cache + RequestId: + - 57da9cfe-f9b3-4550-aba3-ebced0fafad9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.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": "F32", "region": "Central US", "state": + "Active"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '425' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:27 GMT + Pragma: + - no-cache + RequestId: + - 657b7e93-d9e2-407a-82f0-a013de470ec1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://management.azure.com/subscriptions?api-version=2022-12-01 + response: + body: + string: '{"value": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000"}], + "count": {"type": "Total", "value": 1}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - '469' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:29 GMT + Expires: + - '-1' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + 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.3.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/virtualNetworks?api-version=2024-05-01 + response: + body: + string: '{"value": [{"name": "mocked_fabriccli_vnet_name", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mocked_fabriccli_resource_group/providers/Microsoft.Network/virtualNetworks/mocked_fabriccli_vnet_name", + "properties": {"subnets": [{"name": "mocked_fabriccli_vnet_subnet", "id": + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mocked_fabriccli_resource_group/providers/Microsoft.Network/virtualNetworks/mocked_fabriccli_vnet_name/subnets/mocked_fabriccli_vnet_subnet"}]}}]}' + headers: + Cache-Control: + - no-cache + Content-Length: + - '2758' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:29 GMT + Expires: + - '-1' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "inactivityMinutesBeforeSleep": 30, "numberOfMemberGateways": 1, "type": "VirtualNetwork", + "virtualNetworkAzureResource": {"subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "mocked_fabriccli_resource_group", "virtualNetworkName": + "mocked_fabriccli_vnet_name", "subnetName": "mocked_fabriccli_vnet_subnet"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '377' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "d616901d-c1aa-4195-9c36-a09f9b3cc32c", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '291' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:42 GMT + Location: + - https://api.fabric.microsoft.com/v1/gateways/d616901d-c1aa-4195-9c36-a09f9b3cc32c + Pragma: + - no-cache + RequestId: + - 6badb1a6-e042-403c-a6d2-3c8da3a04116 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "d616901d-c1aa-4195-9c36-a09f9b3cc32c", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1302' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:44 GMT + Pragma: + - no-cache + RequestId: + - 2bdfb855-0326-4f4d-ac69-0dff1cb2d1a9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways/d616901d-c1aa-4195-9c36-a09f9b3cc32c + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "d616901d-c1aa-4195-9c36-a09f9b3cc32c", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '291' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:46 GMT + Pragma: + - no-cache + RequestId: + - b755acb2-48ed-4bb5-9aa1-3e1e9a2785a7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"inactivityMinutesBeforeSleep": 60, "type": "VirtualNetwork"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '62' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/gateways/d616901d-c1aa-4195-9c36-a09f9b3cc32c + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 60, "numberOfMemberGateways": 1, "id": "d616901d-c1aa-4195-9c36-a09f9b3cc32c", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '291' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:48 GMT + Pragma: + - no-cache + RequestId: + - 1438d881-e1e4-4d07-9779-d6044cd71480 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 60, "numberOfMemberGateways": 1, "id": "d616901d-c1aa-4195-9c36-a09f9b3cc32c", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1305' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:50 GMT + Pragma: + - no-cache + RequestId: + - 6b4fad32-31cc-4385-a060-62476f21ef13 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways/d616901d-c1aa-4195-9c36-a09f9b3cc32c + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 60, "numberOfMemberGateways": 1, "id": "d616901d-c1aa-4195-9c36-a09f9b3cc32c", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '291' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:52 GMT + Pragma: + - no-cache + RequestId: + - ffb9f2f1-046a-4d0c-9aab-214808211d4c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 60, "numberOfMemberGateways": 1, "id": "d616901d-c1aa-4195-9c36-a09f9b3cc32c", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1305' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:53 GMT + Pragma: + - no-cache + RequestId: + - 68555eeb-f039-48aa-bd4d-661857630ec6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/gateways/d616901d-c1aa-4195-9c36-a09f9b3cc32c + 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: + - Tue, 20 Jan 2026 12:03:56 GMT + Pragma: + - no-cache + RequestId: + - 63c4c6b7-1dfd-4f7e-8a0b-41c14ce5ae60 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-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_set/test_set_gateway_virtualNetwork_success[numberOfMemberGateways-2].yaml b/tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_success[numberOfMemberGateways-2].yaml new file mode 100644 index 00000000..ceb436f4 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_set/test_set_gateway_virtualNetwork_success[numberOfMemberGateways-2].yaml @@ -0,0 +1,614 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": []}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1259' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:02:44 GMT + Pragma: + - no-cache + RequestId: + - deed64c6-baed-43cf-bd6e-85fe76fa468a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.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": "F32", "region": "Central US", "state": + "Active"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '424' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:02:48 GMT + Pragma: + - no-cache + RequestId: + - 9bf38367-49f2-4adc-a8e5-f5731c65b875 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://management.azure.com/subscriptions?api-version=2022-12-01 + response: + body: + string: '{"value": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000"}], + "count": {"type": "Total", "value": 1}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - '469' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:02:50 GMT + Expires: + - '-1' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + 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.3.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/virtualNetworks?api-version=2024-05-01 + response: + body: + string: '{"value": [{"name": "mocked_fabriccli_vnet_name", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mocked_fabriccli_resource_group/providers/Microsoft.Network/virtualNetworks/mocked_fabriccli_vnet_name", + "properties": {"subnets": [{"name": "mocked_fabriccli_vnet_subnet", "id": + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mocked_fabriccli_resource_group/providers/Microsoft.Network/virtualNetworks/mocked_fabriccli_vnet_name/subnets/mocked_fabriccli_vnet_subnet"}]}}]}' + headers: + Cache-Control: + - no-cache + Content-Length: + - '2758' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:02:52 GMT + Expires: + - '-1' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "inactivityMinutesBeforeSleep": 30, "numberOfMemberGateways": 1, "type": "VirtualNetwork", + "virtualNetworkAzureResource": {"subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "mocked_fabriccli_resource_group", "virtualNetworkName": + "mocked_fabriccli_vnet_name", "subnetName": "mocked_fabriccli_vnet_subnet"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '377' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "c08147ae-a498-466d-a53d-4077fb318741", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId,Location + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '289' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:06 GMT + Location: + - https://api.fabric.microsoft.com/v1/gateways/c08147ae-a498-466d-a53d-4077fb318741 + Pragma: + - no-cache + RequestId: + - a6be980d-b2d0-4075-b04d-d4f556c5f3c4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "c08147ae-a498-466d-a53d-4077fb318741", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1301' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:07 GMT + Pragma: + - no-cache + RequestId: + - 685186de-ade0-421f-abda-15045ad2b6c1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways/c08147ae-a498-466d-a53d-4077fb318741 + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 1, "id": "c08147ae-a498-466d-a53d-4077fb318741", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '289' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:09 GMT + Pragma: + - no-cache + RequestId: + - f534924e-230e-4915-80ce-937c3bdee289 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"numberOfMemberGateways": 2, "type": "VirtualNetwork"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '55' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/gateways/c08147ae-a498-466d-a53d-4077fb318741 + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 2, "id": "c08147ae-a498-466d-a53d-4077fb318741", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '289' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:11 GMT + Pragma: + - no-cache + RequestId: + - f28949a1-afca-47b0-aad9-1e4ddfdbebc4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 2, "id": "c08147ae-a498-466d-a53d-4077fb318741", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1304' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:13 GMT + Pragma: + - no-cache + RequestId: + - b168f8af-5f65-4771-bb52-473c893763ea + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways/c08147ae-a498-466d-a53d-4077fb318741 + response: + body: + string: '{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 2, "id": "c08147ae-a498-466d-a53d-4077fb318741", + "type": "VirtualNetwork"}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '289' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:15 GMT + Pragma: + - no-cache + RequestId: + - e74f73bb-53b6-4ebc-a169-15296fd971ca + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/gateways + response: + body: + string: '{"value": [{"displayName": "fabcli000001", "capacityId": "00000000-0000-0000-0000-000000000004", + "virtualNetworkAzureResource": {"virtualNetworkName": "mocked_fabriccli_vnet_name", + "subnetName": "mocked_fabriccli_vnet_subnet", "resourceGroupName": "mocked_fabriccli_resource_group", + "subscriptionId": "00000000-0000-0000-0000-000000000000"}, "inactivityMinutesBeforeSleep": + 30, "numberOfMemberGateways": 2, "id": "c08147ae-a498-466d-a53d-4077fb318741", + "type": "VirtualNetwork"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '1304' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 20 Jan 2026 12:03:17 GMT + Pragma: + - no-cache + RequestId: + - eedd040d-dc85-412b-a341-e5fdc64b0cf1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/gateways/c08147ae-a498-466d-a53d-4077fb318741 + 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: + - Tue, 20 Jan 2026 12:03:19 GMT + Pragma: + - no-cache + RequestId: + - 1076e3ea-98a1-4edc-9543-5f3e02395cda + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-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_set/test_set_sparkpool_success[name-None].yaml b/tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[name-None].yaml new file mode 100644 index 00000000..7ec8b6fa --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[name-None].yaml @@ -0,0 +1,1008 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.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": "f8c02512-00fa-470e-92c8-a4f875d5871b", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created + by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '2300' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:25 GMT + Pragma: + - no-cache + RequestId: + - dcd4a51c-0a63-4f05-9a6e-e3a30a6ae7ab + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '460' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:28 GMT + RequestId: + - 2ad23b4b-4787-445c-90b9-6a8d30949ab5 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '460' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:30 GMT + RequestId: + - 17b3c270-9bcf-4d05-9f2f-ba8959b904d0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false, "minExecutors": 1, "maxExecutors": 1}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '239' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools + response: + body: + string: '{"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", "type": "Workspace", + "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false}}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '322' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:31 GMT + RequestId: + - adb85159-4cb1-40c4-bc81-1045fb9c8911 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-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.3.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": "f8c02512-00fa-470e-92c8-a4f875d5871b", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created + by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '2300' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:33 GMT + Pragma: + - no-cache + RequestId: + - 20083136-4b78-4f66-948f-0d2d201874bb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", + "type": "Workspace", "name": "fabcli000001", "nodeFamily": "MemoryOptimized", + "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": + 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '845' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:33 GMT + RequestId: + - 48838c90-ced1-44d7-a641-09f973cad95c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools/968363b5-9119-4d5a-9283-ae95e78a25fb + response: + body: + string: '{"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", "type": "Workspace", + "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false}}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '322' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:38 GMT + RequestId: + - ba9ee5a4-a731-4ff4-9624-1ba8b1bc7058 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"name": "fabcli000002"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '28' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools/968363b5-9119-4d5a-9283-ae95e78a25fb + response: + body: + string: '{"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", "type": "Workspace", + "name": "fabcli000002", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false}}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '322' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:39 GMT + RequestId: + - d90258ff-24ac-4136-9d60-7c51fead084e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.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": "f8c02512-00fa-470e-92c8-a4f875d5871b", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created + by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '2300' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:41 GMT + Pragma: + - no-cache + RequestId: + - 9250750a-589e-40ce-965c-0ce4e7fc0f53 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", + "type": "Workspace", "name": "fabcli000002", "nodeFamily": "MemoryOptimized", + "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": + 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '845' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:43 GMT + RequestId: + - f3e16d75-eab9-42a3-8dca-3e9917d0e892 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", + "type": "Workspace", "name": "fabcli000002", "nodeFamily": "MemoryOptimized", + "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": + 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '845' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:44 GMT + RequestId: + - 4b228bf4-5ad5-46e5-823b-d7614b178479 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.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": "f8c02512-00fa-470e-92c8-a4f875d5871b", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created + by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '2300' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:45 GMT + Pragma: + - no-cache + RequestId: + - 1005582c-4bba-4fcb-aed0-61ac02794ebe + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", + "type": "Workspace", "name": "fabcli000002", "nodeFamily": "MemoryOptimized", + "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": + 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '845' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:45 GMT + RequestId: + - 1d202ca0-1efa-451e-9827-c623757fe8c1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools/968363b5-9119-4d5a-9283-ae95e78a25fb + response: + body: + string: '{"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", "type": "Workspace", + "name": "fabcli000002", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false}}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '322' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:47 GMT + RequestId: + - dce61418-ebe6-4828-9a5a-33e3f27db0a3 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.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": "f8c02512-00fa-470e-92c8-a4f875d5871b", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created + by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '2300' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:49 GMT + Pragma: + - no-cache + RequestId: + - b658496b-f2de-4239-98b8-54439f984ca6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", + "type": "Workspace", "name": "fabcli000002", "nodeFamily": "MemoryOptimized", + "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": + 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '845' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:50 GMT + RequestId: + - 4bb439cb-bd42-4006-8d5c-9f8301dce798 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools/968363b5-9119-4d5a-9283-ae95e78a25fb + response: + body: + string: '{"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", "type": "Workspace", + "name": "fabcli000002", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false}}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '322' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:51 GMT + RequestId: + - a4af6a84-5425-4f36-8fa9-a69a639537dc + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - 'true' + status: + code: 200 + message: OK +- request: + body: '{"name": "fabcli000001"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '28' + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools/968363b5-9119-4d5a-9283-ae95e78a25fb + response: + body: + string: '{"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", "type": "Workspace", + "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false}}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '322' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:52 GMT + RequestId: + - 0e3c92ba-d3ba-4b6f-8ecf-11ee90b09dd1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.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": "f8c02512-00fa-470e-92c8-a4f875d5871b", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created + by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - '2300' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:54 GMT + Pragma: + - no-cache + RequestId: + - 1a0e892c-6bc1-413b-b561-25818cfa46c5 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools + response: + body: + string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "968363b5-9119-4d5a-9283-ae95e78a25fb", + "type": "Workspace", "name": "fabcli000001", "nodeFamily": "MemoryOptimized", + "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": + 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '845' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 21 Jan 2026 12:55:55 GMT + RequestId: + - 116e472c-df9e-49d5-a1e2-9260e88ecef0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/f8c02512-00fa-470e-92c8-a4f875d5871b/spark/pools/968363b5-9119-4d5a-9283-ae95e78a25fb + response: + body: + string: '' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - '0' + Content-Type: + - application/octet-stream + Date: + - Wed, 21 Jan 2026 12:55:56 GMT + RequestId: + - 6b143a3c-fc99-42f1-a48a-957f369cfdf0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-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 From 5f4e7fe8960613ac22dd3d1be2535f4779dbe882 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Thu, 29 Jan 2026 12:00:09 +0000 Subject: [PATCH 028/143] merge --- ...kpool_success[autoScale.enabled-true].yaml | 670 ------------------ 1 file changed, 670 deletions(-) delete mode 100644 tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[autoScale.enabled-true].yaml diff --git a/tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[autoScale.enabled-true].yaml b/tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[autoScale.enabled-true].yaml deleted file mode 100644 index 33648aca..00000000 --- a/tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[autoScale.enabled-true].yaml +++ /dev/null @@ -1,670 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Type: - - application/json - User-Agent: - - ms-fabric-cli-test/1.3.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": "81065bd8-e334-4715-b170-dedb4cd514e6", - "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created - by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' - headers: - Access-Control-Expose-Headers: - - RequestId - Cache-Control: - - no-store, must-revalidate, no-cache - Content-Encoding: - - gzip - Content-Length: - - '2061' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:11 GMT - Pragma: - - no-cache - RequestId: - - 1443515c-f541-4f17-a2bc-7f9a820366bc - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - 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.3.1 - method: GET - uri: https://api.fabric.microsoft.com/v1/workspaces/81065bd8-e334-4715-b170-dedb4cd514e6/spark/pools - response: - body: - string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", - "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", - "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": - {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}]}' - headers: - Access-Control-Expose-Headers: - - RequestId - Content-Length: - - '460' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:11 GMT - RequestId: - - 3aff1b4e-b021-488b-b8fb-709792f3b34e - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - 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.3.1 - method: GET - uri: https://api.fabric.microsoft.com/v1/workspaces/81065bd8-e334-4715-b170-dedb4cd514e6/spark/pools - response: - body: - string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", - "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", - "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": - {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}]}' - headers: - Access-Control-Expose-Headers: - - RequestId - Content-Length: - - '460' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:12 GMT - RequestId: - - 9b6ff5a9-945c-4f75-877b-7b019031144d - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - deny - home-cluster-uri: - - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ - request-redirected: - - 'true' - status: - code: 200 - message: OK -- request: - body: '{"name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", - "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": - {"enabled": false, "minExecutors": 1, "maxExecutors": 1}}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '239' - Content-Type: - - application/json - User-Agent: - - ms-fabric-cli-test/1.3.1 - method: POST - uri: https://api.fabric.microsoft.com/v1/workspaces/81065bd8-e334-4715-b170-dedb4cd514e6/spark/pools - response: - body: - string: '{"id": "bf02ca4d-9f7d-4dec-a366-e8930cf8aeba", "type": "Workspace", - "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", - "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": - {"enabled": false}}' - headers: - Access-Control-Expose-Headers: - - RequestId - Content-Length: - - '322' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:12 GMT - RequestId: - - 77a91a8a-b19b-4775-88d8-797edb5e797c - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-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.3.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": "81065bd8-e334-4715-b170-dedb4cd514e6", - "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created - by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' - headers: - Access-Control-Expose-Headers: - - RequestId - Cache-Control: - - no-store, must-revalidate, no-cache - Content-Encoding: - - gzip - Content-Length: - - '2061' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:12 GMT - Pragma: - - no-cache - RequestId: - - 67e5b716-d3ba-4f15-a945-108afe9f35b4 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - 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.3.1 - method: GET - uri: https://api.fabric.microsoft.com/v1/workspaces/81065bd8-e334-4715-b170-dedb4cd514e6/spark/pools - response: - body: - string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", - "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", - "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": - {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "bf02ca4d-9f7d-4dec-a366-e8930cf8aeba", - "type": "Workspace", "name": "fabcli000001", "nodeFamily": "MemoryOptimized", - "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": - 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' - headers: - Access-Control-Expose-Headers: - - RequestId - Content-Length: - - '845' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:12 GMT - RequestId: - - b095cdad-182a-4aa4-9764-5737a46819f7 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - 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.3.1 - method: GET - uri: https://api.fabric.microsoft.com/v1/workspaces/81065bd8-e334-4715-b170-dedb4cd514e6/spark/pools/bf02ca4d-9f7d-4dec-a366-e8930cf8aeba - response: - body: - string: '{"id": "bf02ca4d-9f7d-4dec-a366-e8930cf8aeba", "type": "Workspace", - "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", - "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": - {"enabled": false}}' - headers: - Access-Control-Expose-Headers: - - RequestId - Content-Length: - - '322' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:13 GMT - RequestId: - - 4645e20a-54e0-4f6c-ab09-c5a405f6b05f - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - deny - home-cluster-uri: - - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ - request-redirected: - - 'true' - status: - code: 200 - message: OK -- request: - body: '{"autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '106' - Content-Type: - - application/json - User-Agent: - - ms-fabric-cli-test/1.3.1 - method: PATCH - uri: https://api.fabric.microsoft.com/v1/workspaces/81065bd8-e334-4715-b170-dedb4cd514e6/spark/pools/bf02ca4d-9f7d-4dec-a366-e8930cf8aeba - response: - body: - string: '{"id": "bf02ca4d-9f7d-4dec-a366-e8930cf8aeba", "type": "Workspace", - "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", - "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": - {"enabled": false}}' - headers: - Access-Control-Expose-Headers: - - RequestId - Content-Length: - - '322' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:13 GMT - RequestId: - - 32999cde-c3c1-43a2-9f09-106c6c2101e6 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - 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.3.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": "81065bd8-e334-4715-b170-dedb4cd514e6", - "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created - by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' - headers: - Access-Control-Expose-Headers: - - RequestId - Cache-Control: - - no-store, must-revalidate, no-cache - Content-Encoding: - - gzip - Content-Length: - - '2061' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:13 GMT - Pragma: - - no-cache - RequestId: - - e991c685-680f-4b4c-9399-01ed0455746f - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - 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.3.1 - method: GET - uri: https://api.fabric.microsoft.com/v1/workspaces/81065bd8-e334-4715-b170-dedb4cd514e6/spark/pools - response: - body: - string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", - "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", - "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": - {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "bf02ca4d-9f7d-4dec-a366-e8930cf8aeba", - "type": "Workspace", "name": "fabcli000001", "nodeFamily": "MemoryOptimized", - "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": - 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' - headers: - Access-Control-Expose-Headers: - - RequestId - Content-Length: - - '845' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:14 GMT - RequestId: - - fb634716-7fed-49d3-970b-c83431945019 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - 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.3.1 - method: GET - uri: https://api.fabric.microsoft.com/v1/workspaces/81065bd8-e334-4715-b170-dedb4cd514e6/spark/pools/bf02ca4d-9f7d-4dec-a366-e8930cf8aeba - response: - body: - string: '{"id": "bf02ca4d-9f7d-4dec-a366-e8930cf8aeba", "type": "Workspace", - "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", - "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": - {"enabled": false}}' - headers: - Access-Control-Expose-Headers: - - RequestId - Content-Length: - - '322' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:15 GMT - RequestId: - - f5c26e18-4779-4294-9879-52a0ccef75c5 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - 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.3.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": "81065bd8-e334-4715-b170-dedb4cd514e6", - "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created - by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' - headers: - Access-Control-Expose-Headers: - - RequestId - Cache-Control: - - no-store, must-revalidate, no-cache - Content-Encoding: - - gzip - Content-Length: - - '2061' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:14 GMT - Pragma: - - no-cache - RequestId: - - 7868612d-12f5-43cf-a280-a6a7ec6e07f3 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - 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.3.1 - method: GET - uri: https://api.fabric.microsoft.com/v1/workspaces/81065bd8-e334-4715-b170-dedb4cd514e6/spark/pools - response: - body: - string: '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", - "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", - "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": - {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "bf02ca4d-9f7d-4dec-a366-e8930cf8aeba", - "type": "Workspace", "name": "fabcli000001", "nodeFamily": "MemoryOptimized", - "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": - 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' - headers: - Access-Control-Expose-Headers: - - RequestId - Content-Length: - - '845' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 31 Dec 2025 14:32:15 GMT - RequestId: - - 3af72a43-8a80-467f-b367-ef60cf509d8e - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - 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.3.1 - method: DELETE - uri: https://api.fabric.microsoft.com/v1/workspaces/81065bd8-e334-4715-b170-dedb4cd514e6/spark/pools/bf02ca4d-9f7d-4dec-a366-e8930cf8aeba - response: - body: - string: '' - headers: - Access-Control-Expose-Headers: - - RequestId - Content-Length: - - '0' - Content-Type: - - application/octet-stream - Date: - - Wed, 31 Dec 2025 14:32:16 GMT - RequestId: - - fd9ec19a-1f56-4cab-90d8-3b8369dd29c6 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-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 From 73166a5c31d2673b6c8bd3ef97688d205eff5472 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 029/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 269107f68f2bcaf7a1e4ef2d4793a30b346b4794 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 030/143] Introduce release workflow --- .github/workflows/create-release.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 026a334d..f49141dc 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,11 +113,8 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From 43b04df72df589739714857e8b5d5a6e9d0e9d39 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 031/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index f49141dc..696dd6d3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -115,6 +115,8 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From 4eaca2cef8b1f907d32f3f505515042d40a948cb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 032/143] Initial plan From 4ff4f18a60c1b89f21e7d05c7efa15257738cc57 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 033/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 696dd6d3..026a334d 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,6 +113,7 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: From 692e5d68dfd8a8985aedfd617c5817f51f5ead59 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 034/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 63e61f1a72873373d8792eef2de1cb72d9ce0b2c Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 035/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 9dc7758e0314fc96b43b080416c0aa8a3318d73f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 036/143] Initial plan From e2d5a0d4ef23be616d3d4e2f703fe44d6e6e9ed1 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 037/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 0c9cfa240692cfb59a4e082d59aa512c1b96f546 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 038/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From c06933c295536f47cb955c6576988e27ba7fcdc4 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 039/143] Introduce release workflow --- .github/workflows/create-release.yml | 140 +-------------------------- 1 file changed, 4 insertions(+), 136 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 026a334d..7200e840 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,10 +6,6 @@ on: version: description: "The version to release (e.g., v1.2.0)" required: true - commit_sha: - description: "Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)" - required: false - default: "" jobs: create-release: @@ -19,151 +15,23 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - with: - fetch-depth: 0 # Required to access full commit history for validation - - - name: Display workflow information - run: | - if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" - else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" - fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF - - - name: Validate commit SHA (if provided) - if: ${{ github.event.inputs.commit_sha != '' }} - run: | - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF - echo "Error: Invalid commit SHA: $COMMIT_SHA" - exit 1 - fi - echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - - # Use provided commit SHA or default to HEAD - if [ -n "$COMMIT_SHA" ]; then - TARGET_COMMIT="$COMMIT_SHA" - else - TARGET_COMMIT="HEAD" - fi - echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT - echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT - - # Get the actual commit SHA for display - ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") - echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT - - echo "✅ Release variables set:" - echo " - Tag name: $VERSION" - echo " - Target commit: $ACTUAL_SHA" - echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" - if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF - echo "Error: Release notes file not found at $CHANGELOG_FILE" + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF - - # Create the release with the target commit - if gh release create ${{ steps.set_vars.outputs.tag_name }} \ + gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ - --target "${{ steps.set_vars.outputs.target_commit }}"; then - - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF - echo "Error: Failed to create release" - exit 1 - fi + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From 980b4da447c7d1d2a61178df3ab7ef2cce3a9cbf Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 040/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 7200e840..ece87abc 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -31,7 +31,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From a73b480ea9e5409a124c5a9207254b639fa98152 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 041/143] Initial plan From d1d5dc2c8383ea453bbd3ab27499c596e04bae29 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 042/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 124 ++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index ece87abc..497f5567 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,6 +6,10 @@ on: version: description: "The version to release (e.g., v1.2.0)" required: true + commit_sha: + description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + required: false + default: '' jobs: create-release: @@ -15,25 +19,137 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required to access full commit history for validation + + - name: Display workflow information + run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY + if [ -n "${{ github.event.inputs.commit_sha }}" ]; then + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + else + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + + - name: Validate commit SHA (if provided) + if: ${{ github.event.inputs.commit_sha != '' }} + run: | + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Invalid commit SHA: $COMMIT_SHA" + exit 1 + fi + echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + + # Use provided commit SHA or default to HEAD + if [ -n "$COMMIT_SHA" ]; then + TARGET_COMMIT="$COMMIT_SHA" + else + TARGET_COMMIT="HEAD" + fi + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT + + # Get the actual commit SHA for display + ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") + echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT + + echo "✅ Release variables set:" + echo " - Tag name: $VERSION" + echo " - Target commit: $ACTUAL_SHA" + echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From 4005a96362dcaaaf9575ce74dae931ddaf9c192b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 043/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 497f5567..88b689df 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From 31c17c1666cbc564cffb211b4048dc54fd0aae57 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 044/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From aa82800956077a32b7e0e482145a7359fc303b39 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 045/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 8a026ed1a8f732e62ed0994b4f2e7e2c62a6d62d Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 046/143] Introduce release workflow --- .github/workflows/create-release.yml | 142 +-------------------------- 1 file changed, 5 insertions(+), 137 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 88b689df..819cd8cf 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -4,12 +4,8 @@ on: workflow_dispatch: inputs: version: - description: "The version to release (e.g., v1.2.0)" + description: 'The version to release (e.g., v1.2.0)' required: true - commit_sha: - description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' - required: false - default: '' jobs: create-release: @@ -19,151 +15,23 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - with: - fetch-depth: 0 # Required to access full commit history for validation - - - name: Display workflow information - run: | - if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" - else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" - fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF - - - name: Validate commit SHA (if provided) - if: ${{ github.event.inputs.commit_sha != '' }} - run: | - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF - echo "Error: Invalid commit SHA: $COMMIT_SHA" - exit 1 - fi - echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - - # Use provided commit SHA or default to HEAD - if [ -n "$COMMIT_SHA" ]; then - TARGET_COMMIT="$COMMIT_SHA" - else - TARGET_COMMIT="HEAD" - fi - echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT - echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT - - # Get the actual commit SHA for display - ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") - echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT - - echo "✅ Release variables set:" - echo " - Tag name: $VERSION" - echo " - Target commit: $ACTUAL_SHA" - echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" - if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF - echo "Error: Release notes file not found at $CHANGELOG_FILE" + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF - - # Create the release with the target commit - if gh release create ${{ steps.set_vars.outputs.tag_name }} \ + gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ - --target "${{ steps.set_vars.outputs.target_commit }}"; then - - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF - echo "Error: Failed to create release" - exit 1 - fi + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From a4a7de2abdf7bf669d89cf3718e84f4948d07a00 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 047/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 819cd8cf..e8dd7f15 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -31,7 +31,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From 28403cc7195b9e2c392594b7eb12c4320d4dc30d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 048/143] Initial plan From 2a42459ed157eb2facdc4aba7751168c9b61cf1a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 049/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 124 ++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index e8dd7f15..4494fd73 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,6 +6,10 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true + commit_sha: + description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + required: false + default: '' jobs: create-release: @@ -15,25 +19,137 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required to access full commit history for validation + + - name: Display workflow information + run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY + if [ -n "${{ github.event.inputs.commit_sha }}" ]; then + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + else + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + + - name: Validate commit SHA (if provided) + if: ${{ github.event.inputs.commit_sha != '' }} + run: | + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Invalid commit SHA: $COMMIT_SHA" + exit 1 + fi + echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + + # Use provided commit SHA or default to HEAD + if [ -n "$COMMIT_SHA" ]; then + TARGET_COMMIT="$COMMIT_SHA" + else + TARGET_COMMIT="HEAD" + fi + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT + + # Get the actual commit SHA for display + ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") + echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT + + echo "✅ Release variables set:" + echo " - Tag name: $VERSION" + echo " - Target commit: $ACTUAL_SHA" + echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From ed802ecfd7cba14e57cf80c3b6dc6c7b91ac5f49 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 050/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 4494fd73..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From 75b7bf441974ab810f958373e45a92abc6ad4e91 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 051/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From e4db571f4bab71d8824b59d3266fba5b7cf16da2 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 052/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 0d7cff11aa74958e9b681150cdb4995b2b646ec5 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 053/143] Introduce release workflow --- .github/workflows/create-release.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 026a334d..f49141dc 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,11 +113,8 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From ff2aa75978148d4b3c9e4ffa0c2bef79fc6859dd Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 054/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index f49141dc..696dd6d3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -115,6 +115,8 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From 00144333b0d34f91924cd9a6d04d79b0940e4ec8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 055/143] Initial plan From 4abc444090b0836d5b58618522f3efc1a05c8cf6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 056/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 696dd6d3..026a334d 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,6 +113,7 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: From 24babb61c8302aeaaba7c3e2ebe836db4378c18d Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 057/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 642d10a2610ae3444a675d40644481b8e42d9919 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 058/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 1b3ad3f9f9281d91b7fb1349269ced841f18b6ad Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 059/143] Initial plan From e5cf283a6c7581944973a7863279d3ad53f17de6 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 060/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From be6a304a49d64c8c50400b0d6674e2acbc712738 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 061/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From e7578247eacbca521b4d717e534dea528a2b6c4c Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 062/143] Introduce release workflow --- .github/workflows/create-release.yml | 140 +-------------------------- 1 file changed, 4 insertions(+), 136 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 026a334d..7200e840 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,10 +6,6 @@ on: version: description: "The version to release (e.g., v1.2.0)" required: true - commit_sha: - description: "Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)" - required: false - default: "" jobs: create-release: @@ -19,151 +15,23 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - with: - fetch-depth: 0 # Required to access full commit history for validation - - - name: Display workflow information - run: | - if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" - else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" - fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF - - - name: Validate commit SHA (if provided) - if: ${{ github.event.inputs.commit_sha != '' }} - run: | - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF - echo "Error: Invalid commit SHA: $COMMIT_SHA" - exit 1 - fi - echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - - # Use provided commit SHA or default to HEAD - if [ -n "$COMMIT_SHA" ]; then - TARGET_COMMIT="$COMMIT_SHA" - else - TARGET_COMMIT="HEAD" - fi - echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT - echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT - - # Get the actual commit SHA for display - ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") - echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT - - echo "✅ Release variables set:" - echo " - Tag name: $VERSION" - echo " - Target commit: $ACTUAL_SHA" - echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" - if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF - echo "Error: Release notes file not found at $CHANGELOG_FILE" + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF - - # Create the release with the target commit - if gh release create ${{ steps.set_vars.outputs.tag_name }} \ + gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ - --target "${{ steps.set_vars.outputs.target_commit }}"; then - - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF - echo "Error: Failed to create release" - exit 1 - fi + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From 869bb6bd2a97f5d12d00cc6d0743b2cc5fff0f58 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 063/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 7200e840..ece87abc 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -31,7 +31,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From 8f4ba23eeee192703df42da92e403a0e511546de Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 064/143] Initial plan From fa7056864f4c024fa41551d631755869dbe3ccd4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 065/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 124 ++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index ece87abc..497f5567 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,6 +6,10 @@ on: version: description: "The version to release (e.g., v1.2.0)" required: true + commit_sha: + description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + required: false + default: '' jobs: create-release: @@ -15,25 +19,137 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required to access full commit history for validation + + - name: Display workflow information + run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY + if [ -n "${{ github.event.inputs.commit_sha }}" ]; then + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + else + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + + - name: Validate commit SHA (if provided) + if: ${{ github.event.inputs.commit_sha != '' }} + run: | + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Invalid commit SHA: $COMMIT_SHA" + exit 1 + fi + echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + + # Use provided commit SHA or default to HEAD + if [ -n "$COMMIT_SHA" ]; then + TARGET_COMMIT="$COMMIT_SHA" + else + TARGET_COMMIT="HEAD" + fi + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT + + # Get the actual commit SHA for display + ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") + echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT + + echo "✅ Release variables set:" + echo " - Tag name: $VERSION" + echo " - Target commit: $ACTUAL_SHA" + echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From f57416ab582566ecab720423ff86ed499ed82974 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 066/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 497f5567..88b689df 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From c18c8d30b34c653b8b7893efe894ab7e1dd47e40 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 067/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 98fa381e573246ea4df706f5c1a04bf24bdb9fcd Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 068/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 3aa42353c1ab284d72612b47aab52edcf6f4f454 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 069/143] Introduce release workflow --- .github/workflows/create-release.yml | 142 +-------------------------- 1 file changed, 5 insertions(+), 137 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 88b689df..819cd8cf 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -4,12 +4,8 @@ on: workflow_dispatch: inputs: version: - description: "The version to release (e.g., v1.2.0)" + description: 'The version to release (e.g., v1.2.0)' required: true - commit_sha: - description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' - required: false - default: '' jobs: create-release: @@ -19,151 +15,23 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - with: - fetch-depth: 0 # Required to access full commit history for validation - - - name: Display workflow information - run: | - if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" - else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" - fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF - - - name: Validate commit SHA (if provided) - if: ${{ github.event.inputs.commit_sha != '' }} - run: | - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF - echo "Error: Invalid commit SHA: $COMMIT_SHA" - exit 1 - fi - echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - - # Use provided commit SHA or default to HEAD - if [ -n "$COMMIT_SHA" ]; then - TARGET_COMMIT="$COMMIT_SHA" - else - TARGET_COMMIT="HEAD" - fi - echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT - echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT - - # Get the actual commit SHA for display - ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") - echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT - - echo "✅ Release variables set:" - echo " - Tag name: $VERSION" - echo " - Target commit: $ACTUAL_SHA" - echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" - if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF - echo "Error: Release notes file not found at $CHANGELOG_FILE" + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF - - # Create the release with the target commit - if gh release create ${{ steps.set_vars.outputs.tag_name }} \ + gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ - --target "${{ steps.set_vars.outputs.target_commit }}"; then - - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF - echo "Error: Failed to create release" - exit 1 - fi + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From 7e453d64ca2b8dc9bea68eb699d0712eec8eb765 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 070/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 819cd8cf..e8dd7f15 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -31,7 +31,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From 097e44ff3208923e846078cf0cd41c8240a8bd1e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 071/143] Initial plan From aaf4c0a3a1dcfd5151c5db4ec7dcc5202d292947 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 072/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 124 ++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index e8dd7f15..4494fd73 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,6 +6,10 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true + commit_sha: + description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + required: false + default: '' jobs: create-release: @@ -15,25 +19,137 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required to access full commit history for validation + + - name: Display workflow information + run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY + if [ -n "${{ github.event.inputs.commit_sha }}" ]; then + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + else + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + + - name: Validate commit SHA (if provided) + if: ${{ github.event.inputs.commit_sha != '' }} + run: | + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Invalid commit SHA: $COMMIT_SHA" + exit 1 + fi + echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + + # Use provided commit SHA or default to HEAD + if [ -n "$COMMIT_SHA" ]; then + TARGET_COMMIT="$COMMIT_SHA" + else + TARGET_COMMIT="HEAD" + fi + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT + + # Get the actual commit SHA for display + ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") + echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT + + echo "✅ Release variables set:" + echo " - Tag name: $VERSION" + echo " - Target commit: $ACTUAL_SHA" + echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From b5fda2724ea36a42c369181e713b7b2b18af2680 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 073/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 4494fd73..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From c4d262553d4a6ef75d0b5b3f98a01cf027b4e957 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 074/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 22534b7b79736a5d8905969f775eb90e3326411f Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 075/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 8218321d8e09fb006fcf80624104694c5f761e88 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 076/143] Introduce release workflow --- .github/workflows/create-release.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fbaa15b3..2feb06f7 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,11 +113,8 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From 8f48c54f888b9acefbfb418eb0af3cd83c4d4190 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 077/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 2feb06f7..f4a9a119 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -115,6 +115,8 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From 42d8e8866745f1001fa15738bf7a5d36d5dce5e3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 078/143] Initial plan From d874933173938295cdc9ef4c28c6bb93bcb68eda Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 079/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index f4a9a119..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,6 +113,7 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: From 9b087b7b6603bcbf8847fd1c0f0304b37c2c2386 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 080/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From ca2e8af8ade85be238e89b35db62c7e2b43098b5 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 081/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 6d6995e7802631d10456f3c595ee19d8e1473523 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 082/143] Initial plan From 0d2f72ed0401c60be95dff323f166748b6f23548 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 083/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 8c835a3af54e92705fc88691e4ce61f6346f5bc3 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 084/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From c9d43338abd3dc43aeeafc370ac30bf1f230b4c7 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 085/143] Introduce release workflow --- .github/workflows/create-release.yml | 140 +-------------------------- 1 file changed, 4 insertions(+), 136 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fbaa15b3..819cd8cf 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,10 +6,6 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true - commit_sha: - description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' - required: false - default: '' jobs: create-release: @@ -19,151 +15,23 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - with: - fetch-depth: 0 # Required to access full commit history for validation - - - name: Display workflow information - run: | - if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" - else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" - fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF - - - name: Validate commit SHA (if provided) - if: ${{ github.event.inputs.commit_sha != '' }} - run: | - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF - echo "Error: Invalid commit SHA: $COMMIT_SHA" - exit 1 - fi - echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - - # Use provided commit SHA or default to HEAD - if [ -n "$COMMIT_SHA" ]; then - TARGET_COMMIT="$COMMIT_SHA" - else - TARGET_COMMIT="HEAD" - fi - echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT - echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT - - # Get the actual commit SHA for display - ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") - echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT - - echo "✅ Release variables set:" - echo " - Tag name: $VERSION" - echo " - Target commit: $ACTUAL_SHA" - echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" - if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF - echo "Error: Release notes file not found at $CHANGELOG_FILE" + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF - - # Create the release with the target commit - if gh release create ${{ steps.set_vars.outputs.tag_name }} \ + gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ - --target "${{ steps.set_vars.outputs.target_commit }}"; then - - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF - echo "Error: Failed to create release" - exit 1 - fi + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From 683250486c360518401190641d1866dd1fedbf91 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 086/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 819cd8cf..e8dd7f15 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -31,7 +31,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From 5d07d94bebef36e1a4b9e4f90d2765b41c6dd8fe Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 087/143] Initial plan From f33129ecf9239e8bbc69f88059548bc6af8b20fb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 088/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 124 ++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index e8dd7f15..4494fd73 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,6 +6,10 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true + commit_sha: + description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + required: false + default: '' jobs: create-release: @@ -15,25 +19,137 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required to access full commit history for validation + + - name: Display workflow information + run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY + if [ -n "${{ github.event.inputs.commit_sha }}" ]; then + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + else + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + + - name: Validate commit SHA (if provided) + if: ${{ github.event.inputs.commit_sha != '' }} + run: | + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Invalid commit SHA: $COMMIT_SHA" + exit 1 + fi + echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + + # Use provided commit SHA or default to HEAD + if [ -n "$COMMIT_SHA" ]; then + TARGET_COMMIT="$COMMIT_SHA" + else + TARGET_COMMIT="HEAD" + fi + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT + + # Get the actual commit SHA for display + ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") + echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT + + echo "✅ Release variables set:" + echo " - Tag name: $VERSION" + echo " - Target commit: $ACTUAL_SHA" + echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From c1cbad8e0432f6ce898f2c79d44be1201239b3a9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 089/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 4494fd73..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From 8c7fc372a9aacec57a90c2083f59aa7b53baf8a3 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 090/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From a80d9ce2c1a1e1985c557f22c9a98d39394ee35f Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 091/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From e88d7dc4bf04deded888e1469cf20d41798c9220 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 092/143] Initial plan From 7061a0ee41809de5b94ac99619125338f1a84a91 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 093/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 ++++++++++++--------------- 1 file changed, 65 insertions(+), 79 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fbaa15b3..4494fd73 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,37 +24,31 @@ jobs: - name: Display workflow information run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF + echo "" >> $GITHUB_STEP_SUMMARY - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -90,26 +84,24 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -119,15 +111,13 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -135,35 +125,31 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY echo "Error: Failed to create release" exit 1 fi From ba8a91f25644d9bbe23dc72030b1a22436db3f43 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 094/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 4494fd73..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From 29842dac996661b1c6d7014e3699306ac7654ab2 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 095/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From a54718d3f76b6bee35844f163ec32b647130ba48 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 096/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 54f76b01ee6dcb8cad079da38ccbdc5409bd8d61 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 097/143] Introduce release workflow --- .github/workflows/create-release.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fbaa15b3..2feb06f7 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,11 +113,8 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From 5450d36b3d69010da9f3eddaec8e1f79ca1a52c4 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 098/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 2feb06f7..f4a9a119 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -115,6 +115,8 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From de233305883605e42ec3e1fb43c9925d1d926533 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 099/143] Initial plan From 2db59e01002330de96dcdcd104e3e913699b8acf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 100/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index f4a9a119..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,6 +113,7 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: From c543b3d4e37dd78261413d54c26700c5c0e2b419 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 101/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 6cf16f14325b44092b5ff521f998f4e7aa601d1b Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 102/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From fc662ec6e4ab91fddaae87219a0001b77a4f0944 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 103/143] Initial plan From de4d51ce8fb08419d3d5cef1dd5162860a8cadb6 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 104/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 9cc9098260c020165698af00b58c63c718c535aa Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 105/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 8c3acaf671ed646f1a4405b2b17a726977e8a51a Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 106/143] Introduce release workflow --- .github/workflows/create-release.yml | 77 ++-------------------------- 1 file changed, 4 insertions(+), 73 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fbaa15b3..c0810d67 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -88,82 +88,13 @@ jobs: - name: Validate release notes file run: | - CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" - if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF - echo "Error: Release notes file not found at $CHANGELOG_FILE" + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF - - # Create the release with the target commit - if gh release create ${{ steps.set_vars.outputs.tag_name }} \ + gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ - --target "${{ steps.set_vars.outputs.target_commit }}"; then - - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF - echo "Error: Failed to create release" - exit 1 - fi + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From 8f348332cf98aa9b50e84aa3caccacfc19338041 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 107/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index c0810d67..09cd2ddc 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -94,7 +94,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From 0aaa4e97ae9392b088e51f58dfc3b9b5386e2f05 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 108/143] Initial plan From 26f7921f75409ba792c462bd251fc5be1af47c6a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 109/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 109 ++++++++++++++++++++------- 1 file changed, 83 insertions(+), 26 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 09cd2ddc..c5bd8988 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -10,6 +10,10 @@ on: description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' required: false default: '' + commit_sha: + description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + required: false + default: '' jobs: create-release: @@ -24,37 +28,31 @@ jobs: - name: Display workflow information run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF + echo "" >> $GITHUB_STEP_SUMMARY - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -88,15 +86,74 @@ jobs: - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From b64c0324909c595ed99ea99247c30e67bed9b4e4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 110/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index c5bd8988..6f0b3c4f 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -28,31 +28,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -88,24 +94,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -115,13 +123,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -129,31 +139,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From d70089f8a5425c46de5ba895e8b6edc1effe5c03 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 111/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 7b134921bbdb80aa68b210800f4035c764b92dd5 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 112/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 2deaefd1db7a99f08d11d016ead6934c399f39a4 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 113/143] Introduce release workflow --- .github/workflows/create-release.yml | 140 +-------------------------- 1 file changed, 4 insertions(+), 136 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 6f0b3c4f..0e98a3e9 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -10,10 +10,6 @@ on: description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' required: false default: '' - commit_sha: - description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' - required: false - default: '' jobs: create-release: @@ -23,151 +19,23 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - with: - fetch-depth: 0 # Required to access full commit history for validation - - - name: Display workflow information - run: | - if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" - else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" - fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF - - - name: Validate commit SHA (if provided) - if: ${{ github.event.inputs.commit_sha != '' }} - run: | - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF - echo "Error: Invalid commit SHA: $COMMIT_SHA" - exit 1 - fi - echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - - # Use provided commit SHA or default to HEAD - if [ -n "$COMMIT_SHA" ]; then - TARGET_COMMIT="$COMMIT_SHA" - else - TARGET_COMMIT="HEAD" - fi - echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT - echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT - - # Get the actual commit SHA for display - ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") - echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT - - echo "✅ Release variables set:" - echo " - Tag name: $VERSION" - echo " - Target commit: $ACTUAL_SHA" - echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" - if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF - echo "Error: Release notes file not found at $CHANGELOG_FILE" + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF - - # Create the release with the target commit - if gh release create ${{ steps.set_vars.outputs.tag_name }} \ + gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ - --target "${{ steps.set_vars.outputs.target_commit }}"; then - - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF - echo "Error: Failed to create release" - exit 1 - fi + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From 58f421ead3a0a7fd218fadd9f906c0750c7d902d Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 114/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 0e98a3e9..11585f2f 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -35,7 +35,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From e9bd691b8745867e546bc78992549c582c9e0cbc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 115/143] Initial plan From 632dac0ae1e1e21949cb469c2462efa1bf7760a0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 116/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 120 ++++++++++++++++++++++++++- 1 file changed, 116 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 11585f2f..4494fd73 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -19,25 +19,137 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required to access full commit history for validation + + - name: Display workflow information + run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY + if [ -n "${{ github.event.inputs.commit_sha }}" ]; then + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + else + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + + - name: Validate commit SHA (if provided) + if: ${{ github.event.inputs.commit_sha != '' }} + run: | + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Invalid commit SHA: $COMMIT_SHA" + exit 1 + fi + echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + + # Use provided commit SHA or default to HEAD + if [ -n "$COMMIT_SHA" ]; then + TARGET_COMMIT="$COMMIT_SHA" + else + TARGET_COMMIT="HEAD" + fi + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT + + # Get the actual commit SHA for display + ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") + echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT + + echo "✅ Release variables set:" + echo " - Tag name: $VERSION" + echo " - Target commit: $ACTUAL_SHA" + echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From 3bf5ac9c57509e73fac8b3c608094560283b00c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 117/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 4494fd73..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From 556b7d81e749474e549706949227721139f9e4dc Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 118/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From ebc4bfdd33fbabb87b3cb6638b7dd00b1881db15 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 119/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 1b781290d64c4c442c7fe61b59d65d1c7a3e0111 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 120/143] Introduce release workflow --- .github/workflows/create-release.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fbaa15b3..2feb06f7 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,11 +113,8 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From 6048a29ba94cc58f3c9eaeb7471333efef74cd00 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 121/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 2feb06f7..f4a9a119 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -115,6 +115,8 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release From c245e6047c28df4da4ecb00284bd800015b08577 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 122/143] Initial plan From fadeb9364f368ee559ce62bb1c9c851f9433f38e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 123/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index f4a9a119..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -113,6 +113,7 @@ jobs: echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: From d19fb66be290295be291be6a4eeb43930855defa Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 124/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 155acba2674fdfebd0488674986ba5ea7160d995 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 125/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 155991bfeb8f9eef5ac55a40ba7dfaf17429beff Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 126/143] Initial plan From 94fe86292d02d965ac2db1ae80e0156d42f062e1 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 127/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From f8307a21a2d1d0f8e8ad1471d7ff1d454b9ff0d5 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 128/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 5852e12b40a983954257112ae02a6f9de0a50faa Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 129/143] Introduce release workflow --- .github/workflows/create-release.yml | 140 +-------------------------- 1 file changed, 4 insertions(+), 136 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fbaa15b3..819cd8cf 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,10 +6,6 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true - commit_sha: - description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' - required: false - default: '' jobs: create-release: @@ -19,151 +15,23 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - with: - fetch-depth: 0 # Required to access full commit history for validation - - - name: Display workflow information - run: | - if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" - else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" - fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF - - - name: Validate commit SHA (if provided) - if: ${{ github.event.inputs.commit_sha != '' }} - run: | - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF - echo "Error: Invalid commit SHA: $COMMIT_SHA" - exit 1 - fi - echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - - # Use provided commit SHA or default to HEAD - if [ -n "$COMMIT_SHA" ]; then - TARGET_COMMIT="$COMMIT_SHA" - else - TARGET_COMMIT="HEAD" - fi - echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT - echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT - - # Get the actual commit SHA for display - ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") - echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT - - echo "✅ Release variables set:" - echo " - Tag name: $VERSION" - echo " - Target commit: $ACTUAL_SHA" - echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" - if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF - echo "Error: Release notes file not found at $CHANGELOG_FILE" + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF - - # Create the release with the target commit - if gh release create ${{ steps.set_vars.outputs.tag_name }} \ + gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ - --target "${{ steps.set_vars.outputs.target_commit }}"; then - - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF - echo "Error: Failed to create release" - exit 1 - fi + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From e8400a324460fabd99c2347d9e615d24fc12c914 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 130/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 819cd8cf..e8dd7f15 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -31,7 +31,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From 8419b52a59bcfd6cb51366eee149f9770d2791fa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 131/143] Initial plan From 3d871ec3040295524ef5e9bdf0d86b0563efa155 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 132/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 124 ++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index e8dd7f15..4494fd73 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,6 +6,10 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true + commit_sha: + description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + required: false + default: '' jobs: create-release: @@ -15,25 +19,137 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required to access full commit history for validation + + - name: Display workflow information + run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY + if [ -n "${{ github.event.inputs.commit_sha }}" ]; then + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + else + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + + - name: Validate commit SHA (if provided) + if: ${{ github.event.inputs.commit_sha != '' }} + run: | + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Invalid commit SHA: $COMMIT_SHA" + exit 1 + fi + echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + + # Use provided commit SHA or default to HEAD + if [ -n "$COMMIT_SHA" ]; then + TARGET_COMMIT="$COMMIT_SHA" + else + TARGET_COMMIT="HEAD" + fi + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT + + # Get the actual commit SHA for display + ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") + echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT + + echo "✅ Release variables set:" + echo " - Tag name: $VERSION" + echo " - Target commit: $ACTUAL_SHA" + echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From 36ac241347a6e553928347d1462a1306b3e6b9e1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 133/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 4494fd73..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From 4678bbd3d729429a72582ed00d69f639c267790c Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 134/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 2ff6ce89f398b65becdd555e5999a4eb0bd7c745 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 14 Dec 2025 14:12:48 +0000 Subject: [PATCH 135/143] Fix new functionality section in release notes --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index dc41a2b2..056089bc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of mv, cp, export and import for SQLDatabase item type +* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 4e23ee17e43287155fd0c953858f64f6b149ddfe Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Wed, 17 Dec 2025 13:43:53 +0000 Subject: [PATCH 136/143] Introduce release workflow --- .github/workflows/create-release.yml | 140 +-------------------------- 1 file changed, 4 insertions(+), 136 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fbaa15b3..819cd8cf 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,10 +6,6 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true - commit_sha: - description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' - required: false - default: '' jobs: create-release: @@ -19,151 +15,23 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - with: - fetch-depth: 0 # Required to access full commit history for validation - - - name: Display workflow information - run: | - if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" - else - TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" - fi - - cat >> $GITHUB_STEP_SUMMARY << EOF - # 🚀 Create Release Workflow - - ## â„šī¸ Workflow Information - - **Version:** ${{ github.event.inputs.version }} - $TARGET_INFO - - EOF - - - name: Validate commit SHA (if provided) - if: ${{ github.event.inputs.commit_sha != '' }} - run: | - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Invalid Commit SHA - - The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - - ### 📝 Troubleshooting - - Verify the commit SHA exists in the repository - - Ensure you are using the full commit SHA (or at least 7 characters) - - Check that the commit is in the current branch history - - EOF - echo "Error: Invalid commit SHA: $COMMIT_SHA" - exit 1 - fi - echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" - COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - - # Use provided commit SHA or default to HEAD - if [ -n "$COMMIT_SHA" ]; then - TARGET_COMMIT="$COMMIT_SHA" - else - TARGET_COMMIT="HEAD" - fi - echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT - echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT - - # Get the actual commit SHA for display - ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") - echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT - - echo "✅ Release variables set:" - echo " - Tag name: $VERSION" - echo " - Target commit: $ACTUAL_SHA" - echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" - if [ ! -f "$CHANGELOG_FILE" ]; then - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Release Notes File Not Found - - The release notes file was not found at the expected location: - - \`\`\` - $CHANGELOG_FILE - \`\`\` - - ### 📝 What to do: - 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` - 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` - 3. You can use \`changie batch \` to generate the changelog file - - ### 📂 Available changelog files: - \`\`\` - $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") - \`\`\` - - EOF - echo "Error: Release notes file not found at $CHANGELOG_FILE" + if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then + echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" exit 1 fi - echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI - env: - GH_TOKEN: ${{ github.token }} run: | - cat >> $GITHUB_STEP_SUMMARY << EOF - ## đŸ—ī¸ Creating Release - - Creating release with the following details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - - EOF - - # Create the release with the target commit - if gh release create ${{ steps.set_vars.outputs.tag_name }} \ + gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ - --target "${{ steps.set_vars.outputs.target_commit }}"; then - - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ✅ Release Created Successfully! - - 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - - ### 📋 Release Details: - - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ## ❌ Error: Failed to Create Release - - The GitHub CLI failed to create the release. This could be due to: - - ### 🔍 Common Issues: - - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - - Insufficient permissions to create releases - - Network connectivity issues - - Invalid release notes format - - ### 📝 Next Steps: - 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` - 2. Verify you have the necessary permissions to create releases - 3. Review the workflow run logs for detailed error messages - - EOF - echo "Error: Failed to create release" - exit 1 - fi + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file From 4ef6c5310e5104bbaa83aaaae7be1a90d4cb9da3 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Wed, 17 Dec 2025 16:21:05 +0200 Subject: [PATCH 137/143] Add GH_TOKEN to create release step --- .github/workflows/create-release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 819cd8cf..e8dd7f15 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -31,7 +31,9 @@ jobs: fi - name: Create Release with GitHub CLI + env: + GH_TOKEN: ${{ github.token }} run: | gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ No newline at end of file + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" From dd8ccac1f8f4fe60b71397082701ff1fd2df5d7a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:29:08 +0000 Subject: [PATCH 138/143] Initial plan From f3108ec49c5db09c10b07de26523b0ee8067ede2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:33:51 +0000 Subject: [PATCH 139/143] Enhance create-release workflow with GITHUB_STEP_SUMMARY and optional commit SHA Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 124 ++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index e8dd7f15..4494fd73 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -6,6 +6,10 @@ on: version: description: 'The version to release (e.g., v1.2.0)' required: true + commit_sha: + description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + required: false + default: '' jobs: create-release: @@ -15,25 +19,137 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required to access full commit history for validation + + - name: Display workflow information + run: | + echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY + if [ -n "${{ github.event.inputs.commit_sha }}" ]; then + echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + else + echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + fi + echo "" >> $GITHUB_STEP_SUMMARY + + - name: Validate commit SHA (if provided) + if: ${{ github.event.inputs.commit_sha != '' }} + run: | + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then + echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY + echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY + echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY + echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Invalid commit SHA: $COMMIT_SHA" + exit 1 + fi + echo "✅ Commit SHA validated successfully: $COMMIT_SHA" - name: Set up release variables id: set_vars run: | VERSION="${{ github.event.inputs.version }}" + COMMIT_SHA="${{ github.event.inputs.commit_sha }}" + + # Use provided commit SHA or default to HEAD + if [ -n "$COMMIT_SHA" ]; then + TARGET_COMMIT="$COMMIT_SHA" + else + TARGET_COMMIT="HEAD" + fi + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT + echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT + + # Get the actual commit SHA for display + ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") + echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT + + echo "✅ Release variables set:" + echo " - Tag name: $VERSION" + echo " - Target commit: $ACTUAL_SHA" + echo " - Changelog file: .changes/${VERSION}.md" - name: Validate release notes file run: | - if [ ! -f "${{ steps.set_vars.outputs.changelog_file_path }}" ]; then - echo "Error: Release notes file not found at ${{ steps.set_vars.outputs.changelog_file_path }}" + CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" + if [ ! -f "$CHANGELOG_FILE" ]; then + echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY + echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY + echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi + echo "✅ Release notes file found at: $CHANGELOG_FILE" - name: Create Release with GitHub CLI env: GH_TOKEN: ${{ github.token }} run: | - gh release create ${{ steps.set_vars.outputs.tag_name }} \ + echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + # Create the release with the target commit + if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ - --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" + --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ + --target "${{ steps.set_vars.outputs.target_commit }}"; then + + echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + else + echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY + echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY + echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY + echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY + echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY + echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY + echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "Error: Failed to create release" + exit 1 + fi From 06d3d82a93ee97cb2e1742062a3802453874010b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:31:07 +0000 Subject: [PATCH 140/143] Refactor GITHUB_STEP_SUMMARY messages to use heredoc syntax Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com> --- .github/workflows/create-release.yml | 144 +++++++++++++++------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 4494fd73..fbaa15b3 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -24,31 +24,37 @@ jobs: - name: Display workflow information run: | - echo "# 🚀 Create Release Workflow" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "## â„šī¸ Workflow Information" >> $GITHUB_STEP_SUMMARY - echo "- **Version:** ${{ github.event.inputs.version }}" >> $GITHUB_STEP_SUMMARY if [ -n "${{ github.event.inputs.commit_sha }}" ]; then - echo "- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** \`${{ github.event.inputs.commit_sha }}\`" else - echo "- **Target Commit:** Latest commit on current branch (HEAD)" >> $GITHUB_STEP_SUMMARY + TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - echo "" >> $GITHUB_STEP_SUMMARY + + cat >> $GITHUB_STEP_SUMMARY << EOF + # 🚀 Create Release Workflow + + ## â„šī¸ Workflow Information + - **Version:** ${{ github.event.inputs.version }} + $TARGET_INFO + + EOF - name: Validate commit SHA (if provided) if: ${{ github.event.inputs.commit_sha != '' }} run: | COMMIT_SHA="${{ github.event.inputs.commit_sha }}" if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then - echo "## ❌ Error: Invalid Commit SHA" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository." >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Troubleshooting" >> $GITHUB_STEP_SUMMARY - echo "- Verify the commit SHA exists in the repository" >> $GITHUB_STEP_SUMMARY - echo "- Ensure you are using the full commit SHA (or at least 7 characters)" >> $GITHUB_STEP_SUMMARY - echo "- Check that the commit is in the current branch history" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Invalid Commit SHA + + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. + + ### 📝 Troubleshooting + - Verify the commit SHA exists in the repository + - Ensure you are using the full commit SHA (or at least 7 characters) + - Check that the commit is in the current branch history + + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 fi @@ -84,24 +90,26 @@ jobs: run: | CHANGELOG_FILE="${{ steps.set_vars.outputs.changelog_file_path }}" if [ ! -f "$CHANGELOG_FILE" ]; then - echo "## ❌ Error: Release Notes File Not Found" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The release notes file was not found at the expected location:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$CHANGELOG_FILE" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 What to do:" >> $GITHUB_STEP_SUMMARY - echo "1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\`" >> $GITHUB_STEP_SUMMARY - echo "3. You can use \`changie batch \` to generate the changelog file" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📂 Available changelog files:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Release Notes File Not Found + + The release notes file was not found at the expected location: + + \`\`\` + $CHANGELOG_FILE + \`\`\` + + ### 📝 What to do: + 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` + 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` + 3. You can use \`changie batch \` to generate the changelog file + + ### 📂 Available changelog files: + \`\`\` + $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") + \`\`\` + + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 fi @@ -111,13 +119,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | - echo "## đŸ—ī¸ Creating Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Creating release with the following details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## đŸ—ī¸ Creating Release + + Creating release with the following details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` + + EOF # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ @@ -125,31 +135,35 @@ jobs: --notes-file "${{ steps.set_vars.outputs.changelog_file_path }}" \ --target "${{ steps.set_vars.outputs.target_commit }}"; then - echo "## ✅ Release Created Successfully!" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!**" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📋 Release Details:" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ✅ Release Created Successfully! + + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** + + ### 📋 Release Details: + - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` + - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` + - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) + + EOF else - echo "## ❌ Error: Failed to Create Release" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "The GitHub CLI failed to create the release. This could be due to:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 🔍 Common Issues:" >> $GITHUB_STEP_SUMMARY - echo "- A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists" >> $GITHUB_STEP_SUMMARY - echo "- Insufficient permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "- Network connectivity issues" >> $GITHUB_STEP_SUMMARY - echo "- Invalid release notes format" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### 📝 Next Steps:" >> $GITHUB_STEP_SUMMARY - echo "1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\`" >> $GITHUB_STEP_SUMMARY - echo "2. Verify you have the necessary permissions to create releases" >> $GITHUB_STEP_SUMMARY - echo "3. Review the workflow run logs for detailed error messages" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY + cat >> $GITHUB_STEP_SUMMARY << EOF + ## ❌ Error: Failed to Create Release + + The GitHub CLI failed to create the release. This could be due to: + + ### 🔍 Common Issues: + - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists + - Insufficient permissions to create releases + - Network connectivity issues + - Invalid release notes format + + ### 📝 Next Steps: + 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` + 2. Verify you have the necessary permissions to create releases + 3. Review the workflow run logs for detailed error messages + + EOF echo "Error: Failed to create release" exit 1 fi From 56be8f369a2027fe3e208cca8dd2864b54135b00 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:48:32 +0200 Subject: [PATCH 141/143] Update release notes for v1.3.1 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 056089bc..dc41a2b2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,7 +10,7 @@ hide: ### ✨ New Functionality -* Add support of `mv`, `cp` and `import` commands for SQLDatabase item type +* Add support of mv, cp, export and import for SQLDatabase item type * Add new 'job run-rm' command for remove a scheduled job * Enhance `set` command for items to support any settable property path within the item's definition and metadata structure * Add support in `ls` commmand using `-q` flag for filtering based on JMESPath expressions From 6d28ef72f1da75f536f65eca414f11c3fe3d9958 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 8 Feb 2026 15:23:03 +0000 Subject: [PATCH 142/143] Fix open dtb uri --- src/fabric_cli/core/fab_types.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fabric_cli/core/fab_types.py b/src/fabric_cli/core/fab_types.py index 2888f625..9b4f991d 100644 --- a/src/fabric_cli/core/fab_types.py +++ b/src/fabric_cli/core/fab_types.py @@ -538,7 +538,7 @@ class MirroredDatabaseFolders(Enum): ItemType.DASHBOARD: "dashboards", ItemType.DATAMART: "datamarts", ItemType.DATA_PIPELINE: "pipelines", - ItemType.DIGITAL_TWIN_BUILDER: "digitaltwinbuilders", + ItemType.DIGITAL_TWIN_BUILDER: "digital-twin-builder", ItemType.ENVIRONMENT: "sparkenvironments", ItemType.EVENTHOUSE: "eventhouses", ItemType.EVENTSTREAM: "eventstreams", From 06a6a5a3f05ee193da01b0b1599f1cae75a60970 Mon Sep 17 00:00:00 2001 From: Alon Yeshurun Date: Sun, 8 Feb 2026 15:26:46 +0000 Subject: [PATCH 143/143] Revert --- .github/workflows/create-release.yml | 58 +- ...kpool_success[autoScale.enabled-True].yaml | 684 ++++++++++++++++++ 2 files changed, 713 insertions(+), 29 deletions(-) create mode 100644 tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[autoScale.enabled-True].yaml diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index fbaa15b3..61dc03f4 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -4,12 +4,12 @@ on: workflow_dispatch: inputs: version: - description: 'The version to release (e.g., v1.2.0)' + description: "The version to release (e.g., v1.2.0)" required: true commit_sha: - description: 'Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)' + description: "Optional: Commit SHA to create the tag on. If not provided, the tag will be created on the latest commit of the current branch (HEAD)" required: false - default: '' + default: "" jobs: create-release: @@ -20,7 +20,7 @@ jobs: - name: Checkout code uses: actions/checkout@v4 with: - fetch-depth: 0 # Required to access full commit history for validation + fetch-depth: 0 # Required to access full commit history for validation - name: Display workflow information run: | @@ -29,14 +29,14 @@ jobs: else TARGET_INFO="- **Target Commit:** Latest commit on current branch (HEAD)" fi - + cat >> $GITHUB_STEP_SUMMARY << EOF # 🚀 Create Release Workflow - + ## â„šī¸ Workflow Information - **Version:** ${{ github.event.inputs.version }} $TARGET_INFO - + EOF - name: Validate commit SHA (if provided) @@ -46,14 +46,14 @@ jobs: if ! git rev-parse --verify "$COMMIT_SHA^{commit}" >/dev/null 2>&1; then cat >> $GITHUB_STEP_SUMMARY << EOF ## ❌ Error: Invalid Commit SHA - + The provided commit SHA \`$COMMIT_SHA\` is not valid or does not exist in this repository. - + ### 📝 Troubleshooting - Verify the commit SHA exists in the repository - Ensure you are using the full commit SHA (or at least 7 characters) - Check that the commit is in the current branch history - + EOF echo "Error: Invalid commit SHA: $COMMIT_SHA" exit 1 @@ -65,22 +65,22 @@ jobs: run: | VERSION="${{ github.event.inputs.version }}" COMMIT_SHA="${{ github.event.inputs.commit_sha }}" - + # Use provided commit SHA or default to HEAD if [ -n "$COMMIT_SHA" ]; then TARGET_COMMIT="$COMMIT_SHA" else TARGET_COMMIT="HEAD" fi - + echo "tag_name=$VERSION" >> $GITHUB_OUTPUT echo "changelog_file_path=.changes/${VERSION}.md" >> $GITHUB_OUTPUT echo "target_commit=$TARGET_COMMIT" >> $GITHUB_OUTPUT - + # Get the actual commit SHA for display ACTUAL_SHA=$(git rev-parse "$TARGET_COMMIT") echo "actual_sha=$ACTUAL_SHA" >> $GITHUB_OUTPUT - + echo "✅ Release variables set:" echo " - Tag name: $VERSION" echo " - Target commit: $ACTUAL_SHA" @@ -92,23 +92,23 @@ jobs: if [ ! -f "$CHANGELOG_FILE" ]; then cat >> $GITHUB_STEP_SUMMARY << EOF ## ❌ Error: Release Notes File Not Found - + The release notes file was not found at the expected location: - + \`\`\` $CHANGELOG_FILE \`\`\` - + ### 📝 What to do: 1. Ensure you have created the changelog file for version \`${{ steps.set_vars.outputs.tag_name }}\` 2. The file should be located at: \`.changes/${{ steps.set_vars.outputs.tag_name }}.md\` 3. You can use \`changie batch \` to generate the changelog file - + ### 📂 Available changelog files: \`\`\` $(ls -1 .changes/*.md 2>/dev/null || echo "No changelog files found") \`\`\` - + EOF echo "Error: Release notes file not found at $CHANGELOG_FILE" exit 1 @@ -121,14 +121,14 @@ jobs: run: | cat >> $GITHUB_STEP_SUMMARY << EOF ## đŸ—ī¸ Creating Release - + Creating release with the following details: - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - **Target Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - **Notes File:** \`${{ steps.set_vars.outputs.changelog_file_path }}\` - + EOF - + # Create the release with the target commit if gh release create ${{ steps.set_vars.outputs.tag_name }} \ --title "${{ steps.set_vars.outputs.tag_name }}" \ @@ -137,32 +137,32 @@ jobs: cat >> $GITHUB_STEP_SUMMARY << EOF ## ✅ Release Created Successfully! - + 🎉 **Release \`${{ steps.set_vars.outputs.tag_name }}\` has been created!** - + ### 📋 Release Details: - **Tag:** \`${{ steps.set_vars.outputs.tag_name }}\` - **Commit:** \`${{ steps.set_vars.outputs.actual_sha }}\` - **Release URL:** [View Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.set_vars.outputs.tag_name }}) - + EOF else cat >> $GITHUB_STEP_SUMMARY << EOF ## ❌ Error: Failed to Create Release - + The GitHub CLI failed to create the release. This could be due to: - + ### 🔍 Common Issues: - A release with tag \`${{ steps.set_vars.outputs.tag_name }}\` already exists - Insufficient permissions to create releases - Network connectivity issues - Invalid release notes format - + ### 📝 Next Steps: 1. Check if the tag already exists: \`git tag -l '${{ steps.set_vars.outputs.tag_name }}'\` 2. Verify you have the necessary permissions to create releases 3. Review the workflow run logs for detailed error messages - + EOF echo "Error: Failed to create release" exit 1 diff --git a/tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[autoScale.enabled-True].yaml b/tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[autoScale.enabled-True].yaml new file mode 100644 index 00000000..081b08c9 --- /dev/null +++ b/tests/test_commands/recordings/test_commands/test_set/test_set_sparkpool_success[autoScale.enabled-True].yaml @@ -0,0 +1,684 @@ +interactions: + - request: + body: null + headers: + Accept: + - "*/*" + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.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": "619e9877-6a58-4dc2-9589-bd4d8ee36bd2", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created + by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - "2301" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:39 GMT + Pragma: + - no-cache + RequestId: + - cc316c46-f24f-4610-8517-11f8afd012ae + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/619e9877-6a58-4dc2-9589-bd4d8ee36bd2/spark/pools + response: + body: + string: + '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - "460" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:40 GMT + RequestId: + - ddb19f16-dbb0-4c53-b284-e62b7d8bda4c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/619e9877-6a58-4dc2-9589-bd4d8ee36bd2/spark/pools + response: + body: + string: + '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - "460" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:41 GMT + RequestId: + - bc252167-4fea-406d-9fdd-07ff17314965 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - "true" + status: + code: 200 + message: OK + - request: + body: + '{"name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false, "minExecutors": 1, "maxExecutors": 1}}' + headers: + Accept: + - "*/*" + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - "239" + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: POST + uri: https://api.fabric.microsoft.com/v1/workspaces/619e9877-6a58-4dc2-9589-bd4d8ee36bd2/spark/pools + response: + body: + string: + '{"id": "cfb27133-1062-435e-a41d-b1c55786490b", "type": "Workspace", + "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false}}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - "322" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:42 GMT + RequestId: + - 7d679caa-2f2e-4a81-ab33-9f84f5e8a033 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-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.3.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": "619e9877-6a58-4dc2-9589-bd4d8ee36bd2", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created + by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - "2301" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:43 GMT + Pragma: + - no-cache + RequestId: + - 3ccadaf1-a797-4d1b-bacf-70f9292da326 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/619e9877-6a58-4dc2-9589-bd4d8ee36bd2/spark/pools + response: + body: + string: + '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "cfb27133-1062-435e-a41d-b1c55786490b", + "type": "Workspace", "name": "fabcli000001", "nodeFamily": "MemoryOptimized", + "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": + 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - "845" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:43 GMT + RequestId: + - 13ac80a3-1bb1-4ef2-845d-9c9a9be1061c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/619e9877-6a58-4dc2-9589-bd4d8ee36bd2/spark/pools/cfb27133-1062-435e-a41d-b1c55786490b + response: + body: + string: + '{"id": "cfb27133-1062-435e-a41d-b1c55786490b", "type": "Workspace", + "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false}}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - "322" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:44 GMT + RequestId: + - 9bc3ba0e-798a-43cf-b16d-97d2c97fffe9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + home-cluster-uri: + - https://wabi-us-central-b-primary-redirect.analysis.windows.net/ + request-redirected: + - "true" + status: + code: 200 + message: OK + - request: + body: '{"autoScale": {"enabled": "True", "minNodeCount": 1, "maxNodeCount": 3}}' + headers: + Accept: + - "*/*" + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - "72" + Content-Type: + - application/json + User-Agent: + - ms-fabric-cli-test/1.3.1 + method: PATCH + uri: https://api.fabric.microsoft.com/v1/workspaces/619e9877-6a58-4dc2-9589-bd4d8ee36bd2/spark/pools/cfb27133-1062-435e-a41d-b1c55786490b + response: + body: + string: + '{"id": "cfb27133-1062-435e-a41d-b1c55786490b", "type": "Workspace", + "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false}}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - "322" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:46 GMT + RequestId: + - 952c362c-bcae-431e-bf94-7295afb639eb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.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": "619e9877-6a58-4dc2-9589-bd4d8ee36bd2", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created + by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - "2301" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:45 GMT + Pragma: + - no-cache + RequestId: + - 5acc3a3f-0f4c-42e2-9bdf-168108712000 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/619e9877-6a58-4dc2-9589-bd4d8ee36bd2/spark/pools + response: + body: + string: + '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "cfb27133-1062-435e-a41d-b1c55786490b", + "type": "Workspace", "name": "fabcli000001", "nodeFamily": "MemoryOptimized", + "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": + 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - "845" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:47 GMT + RequestId: + - ba76493d-d3e6-4c87-bd95-0c801bd5bd63 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/619e9877-6a58-4dc2-9589-bd4d8ee36bd2/spark/pools/cfb27133-1062-435e-a41d-b1c55786490b + response: + body: + string: + '{"id": "cfb27133-1062-435e-a41d-b1c55786490b", "type": "Workspace", + "name": "fabcli000001", "nodeFamily": "MemoryOptimized", "nodeSize": "Small", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 3}, "dynamicExecutorAllocation": + {"enabled": false}}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - "322" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:47 GMT + RequestId: + - 22b447a0-e6a4-4b52-aa44-b25ea720d792 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.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": "619e9877-6a58-4dc2-9589-bd4d8ee36bd2", + "displayName": "fabriccli_WorkspacePerTestclass_000001", "description": "Created + by fab", "type": "Workspace", "capacityId": "00000000-0000-0000-0000-000000000004"}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Cache-Control: + - no-store, must-revalidate, no-cache + Content-Encoding: + - gzip + Content-Length: + - "2301" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:48 GMT + Pragma: + - no-cache + RequestId: + - 6fab1f36-2b80-4139-814e-5bbc07264250 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: GET + uri: https://api.fabric.microsoft.com/v1/workspaces/619e9877-6a58-4dc2-9589-bd4d8ee36bd2/spark/pools + response: + body: + string: + '{"value": [{"id": "00000000-0000-0000-0000-000000000000", "type": "Workspace", + "name": "Starter Pool", "nodeFamily": "MemoryOptimized", "nodeSize": "Medium", + "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": 10}, "dynamicExecutorAllocation": + {"enabled": true, "minExecutors": 1, "maxExecutors": 9}}, {"id": "cfb27133-1062-435e-a41d-b1c55786490b", + "type": "Workspace", "name": "fabcli000001", "nodeFamily": "MemoryOptimized", + "nodeSize": "Small", "autoScale": {"enabled": true, "minNodeCount": 1, "maxNodeCount": + 3}, "dynamicExecutorAllocation": {"enabled": false}}]}' + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - "845" + Content-Type: + - application/json; charset=utf-8 + Date: + - Thu, 22 Jan 2026 11:31:49 GMT + RequestId: + - 6677f225-2b43-477c-9294-c129e9ccf080 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - 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.3.1 + method: DELETE + uri: https://api.fabric.microsoft.com/v1/workspaces/619e9877-6a58-4dc2-9589-bd4d8ee36bd2/spark/pools/cfb27133-1062-435e-a41d-b1c55786490b + response: + body: + string: "" + headers: + Access-Control-Expose-Headers: + - RequestId + Content-Length: + - "0" + Content-Type: + - application/octet-stream + Date: + - Thu, 22 Jan 2026 11:31:50 GMT + RequestId: + - 4eee107c-7a1d-4ec9-9861-2d2b281fbd14 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-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