Skip to content

Document multiple Cosmos DB sink accounts support with tests and examples#224

Draft
Copilot wants to merge 5 commits intomainfrom
copilot/check-cosmos-sdk-instances
Draft

Document multiple Cosmos DB sink accounts support with tests and examples#224
Copilot wants to merge 5 commits intomainfrom
copilot/check-cosmos-sdk-instances

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 19, 2025

✅ Resolve Merge Conflict - Multi-Sink Cosmos DB Support

Merge Conflict Resolved

  • Fetched latest changes from main branch
  • Resolved merge conflict in Extensions/Cosmos/README.md
  • Updated test file to match new CreateClient signature (added ILogger parameter)
  • All tests pass (5/5) ✅

Changes from Main Branch Merged

  • Updated CosmosExtensionServices.CreateClient signature to include ILogger parameter
  • Added JSON Metadata Property Preservation section to README
  • Added SSL validation settings and bulk execution settings
  • Updated Settings section with table format
  • Various other improvements from main branch

Multi-Account Sink Support (Original PR Content)

  • Tests updated for multiple sink accounts scenario
  • Documentation shows Operations feature for writing to multiple accounts
  • Tests verify separate CosmosClient instances for each sink operation

Test Results

  • ✅ All 5 multi-account support tests passing
  • ✅ Build successful with no errors
  • ✅ Merge conflict fully resolved

Files Changed

  • Extensions/Cosmos/README.md: Merged both "Multi-Account Sink Support" and "JSON Metadata Property Preservation" sections
  • Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/CosmosMultiAccountSupportTests.cs: Updated to use new CreateClient signature with ILogger parameter
  • Various files from main branch updates
Original prompt

Can you confirm whether this tool can have two separate Cosmos SDK instances open to two separate Cosmos DB accounts simultaneously? I think this tool can only support one account at a time during execution but I am not sure.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 2 commits December 19, 2025 15:57
Co-authored-by: markjbrown <800166+markjbrown@users.noreply.github.com>
Co-authored-by: markjbrown <800166+markjbrown@users.noreply.github.com>
Copilot AI changed the title [WIP] Investigate support for multiple Cosmos SDK instances Document multi-account Cosmos DB support with tests and examples Dec 19, 2025
Copilot AI requested a review from markjbrown December 19, 2025 16:01
@markjbrown
Copy link
Copy Markdown
Collaborator

@copilot can you change the test here? The question is having two different cosmos accounts as sinks, not one for source and another as sink.

Co-authored-by: markjbrown <800166+markjbrown@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Dec 20, 2025

@copilot can you change the test here? The question is having two different cosmos accounts as sinks, not one for source and another as sink.

Updated the tests to focus on multiple sink accounts scenario. The tests now verify that the tool can create separate CosmosClient instances for writing to two different Cosmos DB accounts simultaneously using the Operations feature. All 5 tests pass and demonstrate the fan-out/replication pattern where data from one source can be written to multiple destination accounts. Changes in commit b90f99b.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • proxy1.example.com
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 45439 --endpoint 127.0.0.1:045439 --role client --parentprocessid 3595 --telemetryoptedin false (dns block)
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 44321 --endpoint 127.0.0.1:044321 --role client --parentprocessid 3790 --telemetryoptedin false (dns block)
  • proxy2.example.com
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 45439 --endpoint 127.0.0.1:045439 --role client --parentprocessid 3595 --telemetryoptedin false (dns block)
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 44321 --endpoint 127.0.0.1:044321 --role client --parentprocessid 3790 --telemetryoptedin false (dns block)
  • same-account.documents.azure.com
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 45439 --endpoint 127.0.0.1:045439 --role client --parentprocessid 3595 --telemetryoptedin false (dns block)
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 44321 --endpoint 127.0.0.1:044321 --role client --parentprocessid 3790 --telemetryoptedin false (dns block)
  • sink1-account.documents.azure.com
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 45439 --endpoint 127.0.0.1:045439 --role client --parentprocessid 3595 --telemetryoptedin false (dns block)
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 44321 --endpoint 127.0.0.1:044321 --role client --parentprocessid 3790 --telemetryoptedin false (dns block)
  • sink2-account.documents.azure.com
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 45439 --endpoint 127.0.0.1:045439 --role client --parentprocessid 3595 --telemetryoptedin false (dns block)
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 44321 --endpoint 127.0.0.1:044321 --role client --parentprocessid 3790 --telemetryoptedin false (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title Document multi-account Cosmos DB support with tests and examples Document multiple Cosmos DB sink accounts support with tests and examples Dec 20, 2025
@philnach
Copy link
Copy Markdown
Collaborator

@copilot , can you update this PR. There's a merge conflict and I'd like you to resolve it.

Co-authored-by: philnach <19275540+philnach@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Jan 18, 2026

@copilot , can you update this PR. There's a merge conflict and I'd like you to resolve it.

Merge conflict resolved. The conflict in Extensions/Cosmos/README.md has been fixed by merging both the "Multi-Account Sink Support" section (from this PR) and the "JSON Metadata Property Preservation" section (from main branch). Also updated the test file to match the new CreateClient signature that includes an ILogger parameter. All 5 tests pass. Changes in commit 4a81407.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • proxy1.example.com
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 36359 --endpoint 127.0.0.1:036359 --role client --parentprocessid 3831 --telemetryoptedin false (dns block)
  • proxy2.example.com
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 36359 --endpoint 127.0.0.1:036359 --role client --parentprocessid 3831 --telemetryoptedin false (dns block)
  • same-account.documents.azure.com
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 36359 --endpoint 127.0.0.1:036359 --role client --parentprocessid 3831 --telemetryoptedin false (dns block)
  • sink1-account.documents.azure.com
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 36359 --endpoint 127.0.0.1:036359 --role client --parentprocessid 3831 --telemetryoptedin false (dns block)
  • sink2-account.documents.azure.com
    • Triggering command: /usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.runtimeconfig.json --depsfile /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/Cosmos.DataTransfer.CosmosExtension.UnitTests.deps.json /home/REDACTED/work/data-migration-desktop-tool/data-migration-desktop-tool/Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension.UnitTests/bin/Debug/net8.0/testhost.dll --port 36359 --endpoint 127.0.0.1:036359 --role client --parentprocessid 3831 --telemetryoptedin false (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI requested a review from philnach January 18, 2026 06:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants