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. Set Account Level throughput on Cosmos DB Table API with ARM template

    Make it possible to set "Account level throughput" on a Table API account through ARM template or Powershell.

    According to the official Twitter handle of Azure Cosmos DB, it is only possible to set the "Account level throughput" on a Table API database account through the Azure Portal. You cannot do this with an ARM template.
    https://twitter.com/AzureCosmosDB/status/1175071433229312001

    45 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. Give developers the ability to access the meta data (etag, timestamp, id) when doing queries in the new sdk

    In the v2 sdk I could derive my data from Resource and was all set, with Etag, timestamp, partitionkey and so on visible.

    I could to a normal linq query, like .Where(i=>i._ts ...), create a documentquery from it and get a result with all those properties in.

    Please enable something comparable in the v3 sdk.

    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 →
  3. Allow multiple PartitionKey objects in QueryRequestOptions or fix LinqQueryable PartitionKey

    QueryRequestOptions for SDK v3 does not seem to allow multiple PartitionKeys. This would be fine, except when using GetItemLinqQueryable and adding the PartitionKey to the Where clause, it does not actual use partitioning lookup. We know this because the exact same query in storage explorer is quick (couple seconds). When used with linq and no PartitionKey in QueryRequestOptions, it takes minutes to come back. If I add a PartitionKey to QueryRequestOptions, it is quick.

    3 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 →

    Hi John. Thanks for your suggestion. At this time we do not support putting multiple partition key values into the Query Request Options however you should be able to run this cross partition query by not setting that value and setting the Cross Partition option with just the partition key values in your where clause. You may also want to look at setting the degree of parallelism to tell the SDK to query each of the partitions simultaneously. Generally this should not take minutes to query.

    If you have additional questions or would like more help with this please feel free to contact us at askcosmosdb@microsoft.com and we can better assist you.

    Thanks.

  4. Add Change Feed support to Table API

    It looks like change feed cannot be queried when using the Table API. That would be very useful to enable new data-export scenarios without having to update legacy apps that rely on writing to Storage Table.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. DATA QUALITY: Please support graph transactions.

    Today, if a traversal fails at step n of m, figuring out what state the graph is in is quite a chore. As a result, all data modification traversals have to be written to support retries. Unfortunately, if the retrying component fails, the network fails, or something else fails, which prevents retry, the graph is left in an unknown state.

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

    Hello and thank you for your suggestion.

    While Cosmos DB provides support for transactions within a partition, we do not have support multi-step, cross-partition or distributed transactions.

    We recommend to customers requiring transactions across multi-step operations to coordinate these using the consistency model and optimistic concurrency control.

    Thank you for your suggestion.

  6. DATA QUALITY: Please allow for properties to be set using a subquery

    The use case here is incrementing the reply count property on a post vertex. To increment, we have to fetch the post vertex, increment the reply count property within our API, then update the graph with the new property value. Unfortunately, if multiple users reply simultaneously using different instances of our API, the reply count value is set incorrectly. Sending a query to the database and letting the server make the updates by calculating the value would address the issue.

    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 →
  7. Take collection / container offline

    It would be useful to be able to take a collection / container 'offline'. For example, if we wish to delete a large collection, our policy is to make it inaccessible for 6 months prior to deletion.

    Whilst we can do this at the client level, it would bring greater assurance a given collection is unused at the point of deletion if it had been offline for a few months beforehand.

    3 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 →

    Hello Kris and thank you for your suggestion. This is not on our road map at this time.

    There are some alternatives you could explore.

    You could file a support ticket and ask the container be restored from the latest backup. This is done into a new Cosmos account which would have it’s own keys, essentially making this unavailable to users.

    You could also use the Cosmos Data Migration Tool to export the container into json files in blob storage.

    Both of these would fit your retention needs as well as make the data essentially offline for access. If this is a rather large set of data and there is a very low or zero chance of it being brought online again, blob storage may make more sense to use as the storage costs are lower.

    Will mark this as unplanned as we may offer this ability in the future…

  8. C++ SDK

    Please provide an opensource C++ SDK for our CPP friends

    6 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 →
  9. Support LINQ Intersect

    I need the ability to see if a document property (which is a list) contains any list element in the query. Without this functionality, I find CosmosDB to be very limited.

    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 →
  10. To be upto date version of TinkerPop in Azure Cosmos Graph DB

    Apache TinkerPop Graph released v3.4.2 on 28th May 2019, but it seems that Azure Cosmos DB graph is still supporting the v3.2 which was released a year back from today. Azure Cosmos Graph DB should be upto date to support the latest version of Apache TinkerPop Graph.

    TinkerPop v3.4 supports various features like having support of min and max operations on comparable like string.

    21 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 →

    Hello and thanks for your request. We support 3.4 from a driver and connectivity perspective but there are a number of features we haven’t implemented such as min and max on non-decimal values.

    These are currently on our backlog to implement so will mark this as unplanned for now which will keep this request open. When this moves off of our backlog we will mark this as planned and update you here.

    Thank you.

  11. 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.

  12. 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)

    9 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 →
  13. 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.

    18 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 →
  14. 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 →
  15. 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.

    9 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. 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.

    6 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 →
  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

    18 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. Add direct mode support to NodeJS SDK

    The NODE JS SDK is horribly slow. Add direct mode support to reduce latency.

    9 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 →
← Previous 1 3 4 5
  • Don't see your idea?

Feedback and Knowledge Base