Skip to content

RDBC-1099 Sync 7.2.3 -> 7.2.6 - #309

Merged
poissoncorp merged 14 commits into
ravendb:v7.2from
poissoncorp:RDBC-1099-sync-7.2.5
Sep 16, 2026
Merged

poissoncorp merged 14 commits into
ravendb:v7.2from
poissoncorp:RDBC-1099-sync-7.2.5

Conversation

@poissoncorp

@poissoncorp poissoncorp commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

RDBC-1112 Sync Python SDK 7.2.5 -> 7.2.6
RDBC-1099 Sync Python SDK 7.2.3 -> 7.2.5

New features

  • Queue Sink - QueueSinkConfiguration, QueueSinkScript, AddQueueSinkOperation, UpdateQueueSinkOperation, OngoingTaskQueueSink, QueueSinkProcessState, AzureServiceBusSinkSource, DatabaseRecord.queue_sinks
  • Database smuggler - store.smuggler: export, import_data, import_incremental, export_to_database, for_database, typed SmugglerResult
  • CDC Sink - config tree, AddCdcSinkOperation, UpdateCdcSinkOperation, OngoingTaskCdcSink, GetCdcSinkSchemaOperation, TestCdcSinkMappingOperation, DatabaseRecord.cdc_sinks
  • Server-wide connection strings - Get/Put/RemoveServerWideConnectionStringOperation, ServerWideConnectionString
  • AI: read a conversation - GetConversationMessagesOperation, AiOperations.get_conversation_messages
  • Session JsonPatch (7.2.6) - session.advanced.patch / patch_array / patch_object build RFC 6902 operations instead of a patch script wherever the path and the value allow it, and fall back to the script otherwise; standalone JsonPatchOperation, JsonPatchDocument, JsonPatchResult, JsonPatchCommandData
  • AI: per-turn output schema (7.2.6) - AiOutputOptions, run_with_schema, stream_with_schema
  • Azure Service Bus as a Queue ETL broker - AzureServiceBusConnectionSettings + EntraId / Passwordless, QueueBrokerType.AZURE_SERVICE_BUS

API changes

Type Change
ConnectionString used_by, plus ConnectionStringUsage / ConnectionStringUsageKind
CertificateMetadata usage, sso_identifiers, sso_server_public_key_pinning_hashes, allow_any_sso_server; new SsoProvider, SsoIdentifier, CertificateUsage
EditClientCertificateOperation.Parameters 3 opt-in SSO fields; posts an explicit body instead of a whole CertificateDefinition
OngoingTaskPullReplicationAsSink hub_cursor, sink_cursor
OngoingTaskType CDC_SINK
S3Settings disable_checksum_validation, storage_class, to_remote_attachments_s3_settings()
RemoteAttachmentsS3Settings disable_checksum_validation, to_s3_settings()
AzureSettings / RemoteAttachmentsAzureSettings conversions both ways
DocumentConventions session_patch_behavior, plus SessionPatchBehavior (JSON_PATCH default, JAVA_SCRIPT to opt out)
CommandType JSON_PATCH
package root 269 types that existed but were only reachable by module path are now importable from ravendb: subscriptions, time series, counters, the changes API, index and spatial enums, the exception hierarchy, ETL connection strings for every queue broker, and the server-wide operations
EmbeddingsGenerationConfiguration store_chunk_text
AiConversation cancel_pending_action_tools
DatabaseItemType TIME_SERIES_DELETED_RANGES; new DatabaseRecordItemType (39 members)
exceptions LimitType (59), LicenseLimitException, QueryToolFailedException, all in the dispatcher

Breaking changes

Found by AST-comparing every changed signature against v7.2. All resolved, none ship.

  • 4 constructors had taken a new parameter mid-list, breaking positional callers. Moved to the end: output_options (RunConversationOperation + its command), store_chunk_text (EmbeddingsGenerationConfiguration), disable_checksum_validation (RemoteAttachmentsS3Settings).
  • Operation.wait_for_completion() had started returning the server's result instead of None. Reverted; the smuggler reads it through a private _wait_for_completion_result().

Deliberate, kept:

  • The session patch methods now send a JsonPatch command by default. Measured against the script on a live server: identical for setting an existing member, creating a new one, overwriting an array element, and writing through a missing intermediate (both error). The one difference is writing past the end of an array, which the script appends and JsonPatch rejects. conventions.session_patch_behavior = SessionPatchBehavior.JAVA_SCRIPT restores the old path wholesale.
  • Query aliases now actually apply (different, correct RQL).
  • Several from_json accept payloads that previously raised.

Minors

  • CLIENT_VERSION 7.2.3 -> 7.2.6, and setup.py with it (it still said 7.2.3.post2, a version PyPI already holds)
  • __init__.py's commented backlog went from 295 names to 50. Gone: 45 C# interfaces, the C#-language index tasks, Newtonsoft plumbing, namespace placeholders, and names this client already has under another spelling. What is left is real: starting and restoring a backup, deploying an ETL task, database-level analyzers, a few database and server-wide task operations
  • test_imports.py now asserts every name the package root binds, so dropping an export fails the suite
  • 6 pre-existing bugs fixed: add_from_alias_to_where_tokens discarded add_alias's result so aliases never applied; VectorSearchToken lost its settings on aliasing; DatabaseRecord.from_json required AutoIndexes + LockMode; DatabaseRecord.to_json iterated auto-indexes without .items(); AutoIndexDefinition.from_json same strictness; backup settings called .to_json() on a null script
  • Constants: X-Forwarded-For, 3 new SupportedFeatures
  • 311 new tests. Full suite 1,619 vs 1,308 on v7.2, same failure set in both directions.

@poissoncorp poissoncorp changed the title Rdbc 1099 sync 7.2.5 RDBC-1099 Sync 7.2.3 -> 7.2.6 Sep 10, 2026
@poissoncorp
poissoncorp force-pushed the RDBC-1099-sync-7.2.5 branch 2 times, most recently from e4b85e1 to 73e01a5 Compare September 16, 2026 13:11
Everything the C# 7.2.5 patch brought: the CDC Sink client surface, server-wide
connection strings and what uses them, SSO on client certificates, reading an agent
conversation back and cancelling the tool calls it awaits, the Azure Service Bus
queue ETL broker, S3 checksum validation, and the new server constants.
…ensed tests

- Export the queue sink and smuggler types from the package root
- Gate the licensed queue sink tests behind RAVENDB_LICENSE
Ports RemoteAttachmentExtensions. Backup S3Settings gains the StorageClass it was
missing, and the S3 and Azure from_json / to_json paths stop requiring keys that
C# treats as optional, since a converted instance carries no backup script.
- Exercise server-wide connection strings against a licensed server
- Export the follow-up types from the package root
…rts nothing

This test pinned wait_for_completion returning None, which is the behaviour the
previous commit deliberately changed. It now checks the result the server sent.
Everything the C# 7.2.6 patch brought: session JsonPatch behind the new
SessionPatchBehavior convention with the RFC 6902 operation and batch command under
it, a per-turn output schema for an agent conversation, chunk text on embeddings
generation, QueryToolFailedException, the vector-search alias fix, and the client
version itself.
…tion alone

Four constructors took a new parameter in the middle of their existing signature,
which breaks anyone passing positionally: output_options on RunConversationOperation
and its command, store_chunk_text on EmbeddingsGenerationConfiguration, and
disable_checksum_validation on RemoteAttachmentsS3Settings. All four move to the end.

Operation.wait_for_completion also started returning the server's result instead of
None, which is a change every caller can see. It returns None again; the result now
comes from _wait_for_completion_result, and the smuggler is its only caller.

Also covers the six symbols the coverage audit found untested: import_incremental,
export_to_database, get_conversation_messages, CdcSinkTableLoadState,
ConnectionStringUsage.list_from_json and UpdateQueueSinkOperationResult.
- Export the two new types callers reach for by hand
- Export the types this branch's own API hands back
- Reach the rest of the public surface from the package root
- Leave only real gaps in the commented backlog
- Guard every export with the import test
CLIENT_VERSION moved to 7.2.6 with the rest of the sync, but setup.py still said
7.2.3.post2, so a release cut straight off this branch would have announced 7.2.6 on the
wire while publishing a version PyPI already holds. The two always move together.
@poissoncorp
poissoncorp merged commit 90f7b56 into ravendb:v7.2 Sep 16, 2026
5 checks passed
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.

1 participant