Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 1 addition & 29 deletions sdk/cosmos/azure-cosmos/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,16 @@
## Release History

### 4.15.1 (Unreleased)
### 4.15.0b3 (Unreleased)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong merge to this file?


#### Features Added

#### Breaking Changes

#### Bugs Fixed

#### Other Changes

### 4.15.0 (2026-02-19)

#### Features Added
* GA support of Per Partition Automatic Failover and AvailabilityStrategy features.

#### Bugs Fixed
* Fixed bug where sdk was encountering a timeout issue caused by infinite recursion during the 410 (Gone) error. See [PR 44770](https://github.com/Azure/azure-sdk-for-python/pull/44770)
* Fixed crash in sync and async clients when `force_refresh_on_startup` was set to `None`, which could surface as `AttributeError: 'NoneType' object has no attribute '_WritableLocations'` during region discovery when `database_account` was `None`. See [PR 44987](https://github.com/Azure/azure-sdk-for-python/pull/44987)
* Fixed bug where unavailable regional endpoints were dropped from the routing list instead of being kept as fallback options. See [PR 45200](https://github.com/Azure/azure-sdk-for-python/pull/45200)

#### Other Changes
* Added tests for multi-language support for full text search. See [PR 44254](https://github.com/Azure/azure-sdk-for-python/pull/44254)
* Renamed `availability_strategy_config` introduced in 4.15.0b1 to `availability_strategy` for both sync and async clients. See [PR 45086](https://github.com/Azure/azure-sdk-for-python/pull/45086).
* Request-level `availability_strategy` needs to be set to `False` in order to disable availability strategy for that request, as opposed to setting it to `None`. See [PR 45141](https://github.com/Azure/azure-sdk-for-python/pull/45141).

### 4.14.6 (2026-02-02)

#### Bugs Fixed
* Fixed async client crash (`AttributeError: 'NoneType' object has no attribute '_WritableLocations'`) during region discovery when `database_account` was `None`. See [PR 44939](https://github.com/Azure/azure-sdk-for-python/pull/44939)

### 4.14.5 (2026-01-15)

#### Bugs Fixed
* Fixed bug where sdk was encountering a timeout issue caused by infinite recursion during the 410 (Gone) error.See [PR 44659](https://github.com/Azure/azure-sdk-for-python/pull/44649)

### 4.14.4 (2026-01-12)

#### Bugs Fixed
* Fixed bug where sdk was not properly retrying requests in some edge cases after partition splits.See [PR 44425](https://github.com/Azure/azure-sdk-for-python/pull/44425)

### 4.15.0b2 (2025-12-16)

Expand Down
52 changes: 52 additions & 0 deletions sdk/cosmos/azure-cosmos/azure/cosmos/_constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,58 @@ class Kwargs:
AVAILABILITY_STRATEGY: Literal["availabilityStrategy"] = "availabilityStrategy"
"""Availability strategy config. Used either at client level or request level"""

class OpenTelemetryAttributes:
"""OpenTelemetry Semantic Convention attributes for Cosmos DB.
Based on OpenTelemetry semantic conventions.
Reference: https://github.com/devopsleague/opentelemetry-semantic-conventions/blob/main/docs/database/cosmosdb.md
"""

# Core database attributes (required)
DB_SYSTEM: Literal["db.system"] = "db.system"
DB_NAMESPACE: Literal["db.namespace"] = "db.namespace" # Database name
DB_OPERATION_NAME: Literal["db.operation.name"] = "db.operation.name" # Operation name
DB_COLLECTION_NAME: Literal["db.collection.name"] = "db.collection.name" # Container name

# Query attributes
DB_QUERY_TEXT: Literal["db.query.text"] = "db.query.text"

# Cosmos DB specific attributes
DB_COSMOSDB_CLIENT_ID: Literal["db.cosmosdb.client_id"] = "db.cosmosdb.client_id"
DB_COSMOSDB_CONNECTION_MODE: Literal["db.cosmosdb.connection_mode"] = "db.cosmosdb.connection_mode"
DB_COSMOSDB_OPERATION_TYPE: Literal["db.cosmosdb.operation_type"] = "db.cosmosdb.operation_type"
DB_COSMOSDB_REQUEST_CHARGE: Literal["db.cosmosdb.request_charge"] = "db.cosmosdb.request_charge"
DB_COSMOSDB_REQUEST_CONTENT_LENGTH: Literal["db.cosmosdb.request_content_length"] = "db.cosmosdb.request_content_length"
DB_COSMOSDB_RESPONSE_CONTENT_LENGTH: Literal["db.cosmosdb.response_content_length"] = "db.cosmosdb.response_content_length"
DB_COSMOSDB_STATUS_CODE: Literal["db.cosmosdb.status_code"] = "db.cosmosdb.status_code"
DB_COSMOSDB_SUB_STATUS_CODE: Literal["db.cosmosdb.sub_status_code"] = "db.cosmosdb.sub_status_code"
DB_COSMOSDB_REQUEST_DIAGNOSTICS_ID: Literal["db.cosmosdb.request_diagnostics_id"] = "db.cosmosdb.request_diagnostics_id"
DB_COSMOSDB_ITEM_COUNT: Literal["db.cosmosdb.item_count"] = "db.cosmosdb.item_count"
DB_COSMOSDB_REGIONS_CONTACTED: Literal["db.cosmosdb.regions_contacted"] = "db.cosmosdb.regions_contacted"

class OpenTelemetryOperationTypes:
"""db.cosmosdb.operation_type values per OpenTelemetry semantic conventions.

These values are used in the db.cosmosdb.operation_type attribute to indicate
the type of operation being performed on Cosmos DB.

Reference: https://github.com/devopsleague/opentelemetry-semantic-conventions/blob/main/docs/database/cosmosdb.md
"""
BATCH: Literal["batch"] = "batch"
CREATE: Literal["create"] = "create"
DELETE: Literal["delete"] = "delete"
EXECUTE: Literal["execute"] = "execute"
EXECUTE_JAVASCRIPT: Literal["execute_javascript"] = "execute_javascript"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't referenced?

HEAD: Literal["head"] = "head"
HEAD_FEED: Literal["head_feed"] = "head_feed"
INVALID: Literal["invalid"] = "invalid"
PATCH: Literal["patch"] = "patch"
QUERY: Literal["query"] = "query"
QUERY_PLAN: Literal["query_plan"] = "query_plan"
READ: Literal["read"] = "read"
READ_FEED: Literal["read_feed"] = "read_feed"
REPLACE: Literal["replace"] = "replace"
UPSERT: Literal["upsert"] = "upsert"

class UserAgentFeatureFlags(IntEnum):
"""
User agent feature flags.
Expand Down
Loading
Loading