Azure / Azure/azure-rest-api-specs

CosmosDB.Account GET API doesn't return createMode when capabilities is set and API version is 2021-10-15

Open
#24,378 2 comments 0 reactions 0 assignees View on GitHub
Cosmos Service Attention
Dominant language
TypeSpec
Stars
3.1k
Forks
5.9k
Avg merge
2d 22h
Merged PRs (30d)
444

Description

Recently we found CosmosDB.Account GET API doesn't return createMode anymore when capabilities is set and API version is 2021-10-15. But the API behavior is different than before since previously CosmosDB.Account GET API can return createMode when capabilities is set and API version is 2021-10-15. Seems it's a regression issue. So could you take a look and fix it asap? Thanks.

Request payload:
```
PUT https://management.azure.com/subscriptions/xx-xx-xx-xx-xx/resourceGroups/acctestRG-cosmos-230609103916437492/providers/Microsoft.DocumentDB/databaseAccounts/acctest-ca-230609103916437492

{
"identity": {
"type": "SystemAssigned"
},
"kind": "GlobalDocumentDB",
"location": "eastus",
"properties": {
"consistencyPolicy": {
"defaultConsistencyLevel": "Eventual",
"maxStalenessPrefix": 100,
"maxIntervalInSeconds": 5
},
"locations": [
{
"failoverPriority": 0,
"isZoneRedundant": false,
"locationName": "eastus"
}
],
"databaseAccountOfferType": "Standard",
"ipRules": [],
"isVirtualNetworkFilterEnabled": false,
"enableAutomaticFailover": false,
"capabilities": [
{
"name": "EnableTable"
}
],
"virtualNetworkRules": [],
"enableMultipleWriteLocations": false,
"disableKeyBasedMetadataWriteAccess": false,
"defaultIdentity": "FirstPartyIdentity",
"publicNetworkAccess": "Disabled",
"enableFreeTier": false,
"enableAnalyticalStorage": false,
"createMode": "Default",
"backupPolicy": {
"type": "Continuous"
},
"networkAclBypass": "None",
"networkAclBypassResourceIds": [],
"disableLocalAuth": false
},
"tags": {
"ENV": "Test"
}
}
```

Response payload:
```
{
"id": "/subscriptions/xx-xx-xx-xx-xx/resourceGroups/acctestRG-cosmos-2222222/providers/Microsoft.DocumentDB/databaseAccounts/acctest-ca-2222222",
"name": "acctest-ca-2222222",
"location": "East US",
"type": "Microsoft.DocumentDB/databaseAccounts",
"kind": "GlobalDocumentDB",
"tags": {
"ENV": "Test"
},
"systemData": {
"createdAt": "2023-06-09T02:44:00.7512747Z"
},
"properties": {
"provisioningState": "Succeeded",
"documentEndpoint": "https://acctest-ca-2222222.documents.azure.com:443/",
"tableEndpoint": "https://acctest-ca-2222222.table.cosmos.azure.com:443/",
"sqlEndpoint": "https://acctest-ca-2222222.documents.azure.com:443/",
"publicNetworkAccess": "Disabled",
"enableAutomaticFailover": false,
"enableMultipleWriteLocations": false,
"enablePartitionKeyMonitor": false,
"isVirtualNetworkFilterEnabled": false,
"virtualNetworkRules": [],
"EnabledApiTypes": "Table, Sql",
"disableKeyBasedMetadataWriteAccess": false,
"enableFreeTier": false,
"enableAnalyticalStorage": false,
"analyticalStorageConfiguration": {
"schemaType": "WellDefined"
},
"instanceId": "xx-xx-xx-xx-xx",
"databaseAccountOfferType": "Standard",
"defaultIdentity": "FirstPartyIdentity",
"networkAclBypass": "None",
"disableLocalAuth": false,
"consistencyPolicy": {
"defaultConsistencyLevel": "Eventual",
"maxIntervalInSeconds": 5,
"maxStalenessPrefix": 100
},
"configurationOverrides": {},
"writeLocations": [
{
"id": "acctest-ca-2222222-eastus",
"locationName": "East US",
"documentEndpoint": "https://acctest-ca-2222222-eastus.documents.azure.com:443/",
"provisioningState": "Succeeded",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"readLocations": [
{
"id": "acctest-ca-2222222-eastus",
"locationName": "East US",
"documentEndpoint": "https://acctest-ca-2222222-eastus.documents.azure.com:443/",
"provisioningState": "Succeeded",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"locations": [
{
"id": "acctest-ca-2222222-eastus",
"locationName": "East US",
"documentEndpoint": "https://acctest-ca-2222222-eastus.documents.azure.com:443/",
"provisioningState": "Succeeded",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"failoverPolicies": [
{
"id": "acctest-ca-2222222-eastus",
"locationName": "East US",
"failoverPriority": 0
}
],
"cors": [],
"capabilities": [
{
"name": "EnableTable"
}
],
"ipRules": [],
"backupPolicy": {
"type": "Continuous"
},
"networkAclBypassResourceIds": []
},
"identity": {
"type": "SystemAssigned",
"principalId": "xx-xx-xx-xx-xx",
"tenantId": "xx-xx-xx-xx-xx"
}
}
```

Contributor guide

Open the contributing guide

Research direction

Use the CosmosDB.Account resource and API version 2021-10-15 from the reported PUT request as the entry point, then inspect how the corresponding GET response is specified when the capabilities array contains EnableTable. Compare the request and response payloads, especially createMode. Done means a GET response preserves createMode under this condition and a regression check covers it.

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
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.