Azure Cosmos DB

Have feedback for Azure Cosmos DB product? Submit your idea here or upvote other ideas. All feedback is monitored and reviewed by the Azure Cosmos DB team. 

This site is for feature suggestions only. For technical questions or issues, please submit them to StackOverflow,where we and the community can better help you.

Please use the following categories when submitting your idea.

SQL API: Query language features, syntax using SQL API, indexing, any other core features in Azure Cosmos DB.

Gremlin API: Graph features and capabilities using Gremlin API.

Cassandra API: Features and capabilities using Cassandra API.

MongoDB API: Features and capabilities using MongoDB API.

Table API: Features and capabilities using Table API.

Etcd API: Features related to using etcd as a configuration store for Kubernetes.

Built-in Apache Spark: Features related to built-in Apache Spark in Azure Cosmos DB.

Built-in Notebooks: Features related to built-in Notebooks in Azure Cosmos DB.

SDK: Features related to Azure Cosmos DB SDKs for SQL API.

Change Feed: Features related to Change Feed.

Management: All management features, backup/restore,monitoring, ARM, PowerShell and CLI.

Portal: All features for Azure Portal and Cosmos DB Explorer.

Emulator: Features related to the Azure Cosmos Emulator.

Other: Features not related to any other category.

Security:
Authentication, authorization,permissions and encryption features.

Monitoring:
Metrics, monitoring, alerts,and diagnostics features.

Server-side: Stored procedures, Triggers,and User-Defined Functions.
  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. PowerShell module for the management plane

    Hi

    It would be great if there was a supported PowerShell module for the CosmosDB management plane, in the same vein as the other Az modules. The Az PowerShell team have already done the vast majority of the work with their Autorest project so you'd just need to provide them with a Swagger/OpenAPI definition file and they can help you generate the majority of the code for it.

    24 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Management  ·  Flag idea as inappropriate…  ·  Admin →
  2. Support left join

    We have a need for the current JOIN mechanism to allow for LEFT JOIN's.

    So code like this:
    SELECT
    c.myId,
    (IS_DEFINED(dm.code) ? tm.code : dm.code) as code
    FROM c
    JOIN dm in c.modelData
    JOIN tm in c.modelData
    WHERE c.partitionKey="8"
    AND dm.dataScope = "default"
    and tm.dataScope = "other"

    on data like this:
    [
    {
    "myId": "1",
    "partitionKey": "8",
    "values": [
    {
    "dataScope": "default",
    "code": "1"
    },
    {
    "dataScope": "other",
    "code": "1a"
    }
    ],
    "id": "ba884879-9b9b-3ff2-dc08-ca6168892ca5"
    },
    {
    "myId": "2",
    "partitionKey": "8",
    "values": [
    {
    "dataScope": "default",
    "code": "1a"
    },
    {
    "dataScope": "other",
    "code": "2"
    }
    ],
    "id": "864625c2-50de-5d56-9626-26b04d8ff1f2"
    },
    {
    "myId":…

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  3. delete All data in a container

    To be able to delete, all the data in a container through azure UI.
    -> Keep all the settings, just drop all the data.
    this is useful during development when we have to delete and recreate a container and then recreate all SP, UDF, etc manually, and recreate all the indexes. It saves a lot of development time and reduces errors as cosmos is a case sensitive database.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →

    Thank you for your suggestion. At this time this is not on our road map.

    Currently customers tend to include the definition of their databases, containers, stored procedures and UDF’s either within their main applications themselves (CreateIfNotExists) or as standalone applications. Then include in their deployment pipelines using custom tasks so they can accurately recreate their environments, rather than creating resources by hand in the portal or elsewhere. This also allows them to be managed as artifacts in their source code repositories so they can be accurately recreated.

    We are currently investigating building support for deploying stored procedures and UDF’s via ARM templates which may work for you to quickly and easily re-provision your environments. But we have not concluded our initial look on this at this so do not have an ETA for that at this time.

    Thank you.

  4. table api sort - Javascript Storage Library

    Table API Sorting: Return query results using Table API in lexicographical order for RowKey as per current functionality in Azure Table Storage using specifically the azure-storage NodeJS/Javascript library (not .NET)

    6 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Table API  ·  Flag idea as inappropriate…  ·  Admin →
  5. 2 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Management  ·  Flag idea as inappropriate…  ·  Admin →
  6. date difference function in cosmos db

    Right now there was no date diff function supported in cosmos
    It will be great if date related functions are available in cosmos

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  7. Support an authenticated proxy for SDK

    Please support an authenticated proxy.
    I tied to use ConnectionPolicy.java to set our proxy server which is an authenticated proxy server. It seems to look the ConnectionPolicy.java isn't supported for an authenticated proxy.
    Not only SQL API and Java SDK but also other APIs SDKs would be great if an authenticated proxy would be supported. That would expand user's experiences.

    Reference:
    https://github.com/Azure/azure-cosmosdb-java/blob/master/commons/src/main/java/com/microsoft/azure/cosmosdb/ConnectionPolicy.java

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SDK  ·  Flag idea as inappropriate…  ·  Admin →
  8. Be able to use the OFFSET LIMIT clause with cross-partition queries

    In order to scale our collections, we need to define a partition key, and with scaling comes pagination, so the new OFFSET LIMIT clause becomes appealing, but right now the SDK doesn't support cross-partition queries with this new clause.

    In my case, I cannot use the Continuation Token because I need to be able to come back to previous pages, and the CT is forward-only.

    10 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  9. Add feature to only support TLS 1.2 for PCI

    When a PCI scan was run on our public cosmos end point it raised an exception since TLS 1.0 has not been decommissioned.

    Can there be a button on the portal to only support TLS 1.2?

    thanks

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Management  ·  Flag idea as inappropriate…  ·  Admin →

    Hi Nate. Thanks for your suggestion. We are currently evaluating TLS 1.2 enforcement.

    In the interim if you are running a service within the Microsoft cloud all outbound connections are TLS 1.2. If you are running outside the Microsoft cloud the recommendation is to use .Net 4.6 which is TLS 1.2 by default. If you are running a VM the recommendation is to disable all transport protocols except TLS 1.2.

    Registry Example:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\tls 1.0\client]
    “disabledbydefault”=dword:00000001
    “enabled”=dword:00000000

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\tls 1.0\server]
    “disabledbydefault”=dword:00000001
    “enabled”=dword:00000000

    As mentioned this is currently being reviewed for planning. We will update this item as this progresses.

    Thanks again.

  10. Increase storage limit per logical partition in unlimited containers

    I believe each logical partition is capped at 10GB regardless of whether it's contained in an unlimited container or not. Please give us the ability to scale up when needed so that we don't have to come up with yet another partitioning scheme. A logical partition should be able to hold much more than 10 gigs, in my opinion.

    12 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  11. 1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →
  12. Allow in a pre trigger to insert a document on a different partition key

    In creating a "delete" audit scenario where i need to capture a new document being deleted in a pre delete trigger, why as long as i am in the same collection are we being limited to the same PartitionKey? This now requires a secondary filter to be applied to all queries to filter out the "Delete" audit records. Where adding a custom "delete" partitionKey would solve all issues.

    error received:

    {
    "errorCode": 500,
    "errorMessage": "Message: {\"Errors\":[\"Encountered exception while executing function. Exception = Error: Error: {\\\"Errors\\\":[\\\"Requests originating from scripts cannot reference partition keys other than the one for which client request…

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  13. 1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  SQL API  ·  Flag idea as inappropriate…  ·  Admin →
  14. Allow shortestPath and sum steps

    I want to make traversals finding the shortest path between one or more vertices. I need to be able to use shortestPath step or at least have sum step to sum up the edge weights to accomplish this.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  15. Support multi-properties in GraphBulkExecutor.

    Gremlin API, supports:
    Multiple properties (multi-properties): a vertex(edge) property key can have multiple values. For example, a vertex can have multiple "name" properties.

    Properties on properties (meta-properties): a vertex(edge) property can have properties (i.e. a vertex property can have key/value data associated with it).

    So, now it's impossible to upload data with such properties with GraphBulkExecutor.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Gremlin API  ·  Flag idea as inappropriate…  ·  Admin →
  16. Fix sort results when documents are missing sort field

    When documents are missing the sort field, they should still be included in the query results. Cosmos DB with MongoDB API omits these documents, but MongoDB includes them.

    For example, the following query will return people sorted by age, but documents missing the age field do not appear in the results:

    peopleCollection.find().sort({ age: 1 })

    This is probably related to the following Cosmos DB with SQL API issue: https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/16842499-order-by-null-handling. Will resolving that issue fix MongoDB sorting as well?

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  MongoDB API  ·  Flag idea as inappropriate…  ·  Admin →
  17. 1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Table API  ·  Flag idea as inappropriate…  ·  Admin →

    Hello Robin. Table support for Change Feed is not on our current roadmap but we do anticipate providing this capability in the future.

    When this moves into our current development cycle I will update this here so you are notified.

    Thank you for your suggestion.

  18. implement Table API for premium tier Azure Blob Storage

    The Table API for Azure Blob Storage works well in scenarios which contain a large number of small databases.

    The premium pricing tier for Azure Blob block storage offers an upgrade in speed for those who want better performance than standard tier and are willing to pay. The price for premium blob storage is about twice that of standard, but still very inexpensive for small data sets.

    I'm aware of Cosmos DB and that Cosmos DB is currently the upgrade path for those who want better performance than Table API with blob storage. I'm also aware of the $20/month pricing…

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Table API  ·  Flag idea as inappropriate…  ·  Admin →
  19. Data masking feature in Azure Cosmosdb

    Request you to please add data masking feature to Azure CosmodDB to protect sensitive data like always encryption feature in SQL Server which allows clients to encrypt sensitive data inside client applications and never reveal the encryption keys to the Database Engine ( SQL Database or SQL Server). As a result, Always Encrypted provides a separation between those who own the data (and can view it) and those who manage the data (but should have no access)

    Ref : https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-database-engine?view=sql-server-2017

    13 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Other  ·  Flag idea as inappropriate…  ·  Admin →

    Hi Siva, thank you for your suggestion.

    There are a couple of aspects to your ask which I will address separately.

    We are planning on providing some additional capabilities to RBAC support in Cosmos DB that will separate Database Operators who can provision resources and rotate keys, versus an application which can access data but cannot provision resources or rotate keys. This is partially what you are asking for so want to bring this up.

    With regards to data masking and encryption…

    Today we support encryption of all data both in transit and at rest. This encryption is Microsoft-managed . At some point we will enable user managed keys but this is currently not on our roadmap.

    However users are fully able to implement client-side encryption and encrypt the data before it is sent by the client. This is fully possible today.

    The ability to offer this as a feature…

  20. Select network interface for Cosmos DB emulator to allow network access

    When the client SDK connects to the emulator it connects to the URL https://<myemulator DNS>:8081/.

    The emulator returns back the writeableLocations and the readableLocations in the JSON response and these URIs are used for subsequent access. It appears that the IP address returned are the first in the list of LAN network interfaces (e.g. in IPCONFIG). If you have multiple IP addresses (for example you have a DockerNAT virtual switch installed) then it might not be the best IP Address returned to allow network access.

    Why am I connecting to my emulator across the network you might ask? I'm…

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Emulator  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feedback and Knowledge Base