Azure / Azure/azure-rest-api-specs
The defaultConsistencyLevel property should be set to the value defined in request payload while creating the restored CosmosDB Account
- Dominant language
- TypeSpec
- Stars
- 3.1k
- Forks
- 5.9k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 444
Description
Recently, we found that the defaultConsistencyLevel property isn't set to the value defined in request payload while creating the restored CosmosDB Account. This issue happens around 2023-05-19. Previously it works fine with same repro steps,which means the defaultConsistencyLevel property is able to be set to the value defined in request payload while creating the restored CosmosDB Account. So I assume it's a regression issue. Could you take a look/fix this issue asap? Thanks in advance.
Repro steps:
1. Create the source CosmosDB Account with below "Request Payload 1".
2. Create the restored CosmosDB Account based on above source CosmosDB Account with below "Request Payload 2".
3. Invoke CosmosDB.Account.GET API to get the resource. You will find the defaultConsistencyLevel property isn't set to the value defined in below "Request Payload 2".
Request Payload 1 - Create source CosmosDB Account:
```
PUT https://management.azure.com/subscriptions/xx-xx-xx-xx/resourceGroups/acctestRG-cosmos-230627141318137548/providers/Microsoft.DocumentDB/databaseAccounts/acctest-ca-230627141318137548
{
"identity": {
"type": "None"
},
"kind": "MongoDB",
"location": "westeurope",
"properties": {
"consistencyPolicy": {
"defaultConsistencyLevel": "Eventual",
"maxStalenessPrefix": 100,
"maxIntervalInSeconds": 5
},
"locations": [
{
"failoverPriority": 0,
"isZoneRedundant": false,
"locationName": "westeurope"
}
],
"databaseAccountOfferType": "Standard",
"ipRules": [],
"isVirtualNetworkFilterEnabled": false,
"enableAutomaticFailover": false,
"capabilities": [
{
"name": "EnableMongo"
}
],
"virtualNetworkRules": [],
"enableMultipleWriteLocations": false,
"disableKeyBasedMetadataWriteAccess": false,
"defaultIdentity": "FirstPartyIdentity",
"publicNetworkAccess": "Enabled",
"enableFreeTier": false,
"enableAnalyticalStorage": false,
"backupPolicy": {
"type": "Continuous"
},
"networkAclBypass": "None",
"networkAclBypassResourceIds": [],
"disableLocalAuth": false
},
"tags": {}
}
```
Request Payload 2 - Create the restored CosmosDB Account based on above source CosmosDB Account:
```
PUT https://management.azure.com/subscriptions/xx-xx-xx-xx/resourceGroups/acctestRG-cosmos-230627141318137548/providers/Microsoft.DocumentDB/databaseAccounts/acctest-ca2-230627141318137548
{
"identity": {
"type": "None"
},
"kind": "MongoDB",
"location": "westeurope",
"properties": {
"consistencyPolicy": {
"defaultConsistencyLevel": "Session",
"maxStalenessPrefix": 100,
"maxIntervalInSeconds": 5
},
"locations": [
{
"failoverPriority": 0,
"isZoneRedundant": false,
"locationName": "westeurope"
}
],
"databaseAccountOfferType": "Standard",
"ipRules": [],
"isVirtualNetworkFilterEnabled": false,
"enableAutomaticFailover": false,
"capabilities": [
{
"name": "EnableMongo"
}
],
"virtualNetworkRules": [],
"enableMultipleWriteLocations": false,
"disableKeyBasedMetadataWriteAccess": false,
"defaultIdentity": "FirstPartyIdentity",
"publicNetworkAccess": "Enabled",
"enableFreeTier": false,
"enableAnalyticalStorage": false,
"createMode": "Restore",
"backupPolicy": {
"type": "Continuous"
},
"networkAclBypass": "None",
"networkAclBypassResourceIds": [],
"disableLocalAuth": false,
"restoreParameters": {
"restoreMode": "PointInTime",
"restoreSource": "/subscriptions/xx-xx-xx-xx/providers/Microsoft.DocumentDB/locations/westeurope/restorableDatabaseAccounts/xx-xx-xx-xx",
"restoreTimestampInUtc": "2023-06-27T06:38:13Z",
"databasesToRestore": [
{
"databaseName": "acctest-mongodb-230627141318137548",
"collectionNames": [
"acctest-mongodb-coll-230627141318137548"
]
}
]
}
},
"tags": {}
}
```
API Response for the restored CosmosDB Account:
```
GET https://management.azure.com/subscriptions/xx-xx-xx-xx/resourceGroups/acctestRG-cosmos-230627141318137548/providers/Microsoft.DocumentDB/databaseAccounts/acctest-ca2-230627141318137548?api-version=2023-04-15
{
"id": "/subscriptions/xx-xx-xx-xx/resourceGroups/acctestRG-cosmos-230627141318137548/providers/Microsoft.DocumentDB/databaseAccounts/acctest-ca2-230627141318137548",
"name": "acctest-ca2-230627141318137548",
"location": "West Europe",
"type": "Microsoft.DocumentDB/databaseAccounts",
"kind": "MongoDB",
"tags": {},
"systemData": {
"createdAt": "2023-06-27T06:53:04.4144866Z"
},
"properties": {
"provisioningState": "Succeeded",
"documentEndpoint": "https://acctest-ca2-230627141318137548.documents.azure.com:443/",
"sqlEndpoint": "https://acctest-ca2-230627141318137548.documents.azure.com:443/",
"mongoEndpoint": "https://acctest-ca2-230627141318137548.mongo.cosmos.azure.com:443/",
"publicNetworkAccess": "Enabled",
"enableAutomaticFailover": false,
"enableMultipleWriteLocations": false,
"enablePartitionKeyMonitor": false,
"isVirtualNetworkFilterEnabled": false,
"virtualNetworkRules": [],
"EnabledApiTypes": "MongoDB",
"disableKeyBasedMetadataWriteAccess": false,
"enableFreeTier": false,
"enableAnalyticalStorage": false,
"analyticalStorageConfiguration": {},
"instanceId": "xx-xx-xx-xx",
"createMode": "Restore",
"databaseAccountOfferType": "Standard",
"defaultIdentity": "FirstPartyIdentity",
"networkAclBypass": "None",
"disableLocalAuth": false,
"enablePartitionMerge": false,
"minimalTlsVersion": "Tls",
"consistencyPolicy": {
"defaultConsistencyLevel": "Eventual",
"maxIntervalInSeconds": 5,
"maxStalenessPrefix": 100
},
"apiProperties": {
"serverVersion": "3.6"
},
"configurationOverrides": {
"EnableBsonSchema": "True"
},
"writeLocations": [
{
"id": "acctest-ca2-230627141318137548-westeurope",
"locationName": "West Europe",
"documentEndpoint": "https://acctest-ca2-230627141318137548-westeurope.documents.azure.com:443/",
"provisioningState": "Succeeded",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"readLocations": [
{
"id": "acctest-ca2-230627141318137548-westeurope",
"locationName": "West Europe",
"documentEndpoint": "https://acctest-ca2-230627141318137548-westeurope.documents.azure.com:443/",
"provisioningState": "Succeeded",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"locations": [
{
"id": "acctest-ca2-230627141318137548-westeurope",
"locationName": "West Europe",
"documentEndpoint": "https://acctest-ca2-230627141318137548-westeurope.documents.azure.com:443/",
"provisioningState": "Succeeded",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"failoverPolicies": [
{
"id": "acctest-ca2-230627141318137548-westeurope",
"locationName": "West Europe",
"failoverPriority": 0
}
],
"cors": [],
"capabilities": [
{
"name": "EnableMongo"
}
],
"ipRules": [],
"backupPolicy": {
"type": "Continuous",
"continuousModeProperties": {
"tier": "Continuous30Days"
}
},
"restoreParameters": {
"restoreMode": "PointInTime",
"restoreSource": "/subscriptions/xx-xx-xx-xx/providers/Microsoft.DocumentDB/locations/westeurope/restorableDatabaseAccounts/xx-xx-xx-xx",
"restoreTimestampInUtc": "2023-06-27T06:38:13Z",
"sourceBackupLocation": "West Europe",
"databasesToRestore": [
{
"databaseName": "acctest-mongodb-230627141318137548",
"collectionNames": [
"acctest-mongodb-coll-230627141318137548"
]
}
]
},
"networkAclBypassResourceIds": [],
"capacity": {
"totalThroughputLimit": -1
},
"keysMetadata": {
"primaryMasterKey": {
"generationTime": "xxxx"
},
"secondaryMasterKey": {
"generationTime": "xxxx"
},
"primaryReadonlyMasterKey": {
"generationTime": "xxxx"
},
"secondaryReadonlyMasterKey": {
"generationTime": "xxxx"
}
}
},
"identity": {
"type": "None"
}
}
```
Contributor guide
Research direction
Start with the CosmosDB Account PUT restore request and the corresponding GET response shown in the issue, focusing on consistencyPolicy.defaultConsistencyLevel and the restore createMode. Reproduce the source account with Eventual and restored account with Session, then verify that the restored account GET response preserves Session instead of returning Eventual.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure
- Domain
- api, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 40/100