Feature Requests

Feature, docs and use-case samples requests for ServiceStack. If you can, focus on the end-user benefit / use-case, rather than the technical details so we can focus on the end-goal and free us to work on how best to achieve it. Features can also include supporting content, e.g. a starter project on how to use ServiceStack with another product (e.g. SS + SharePoint).

  1. Async CredentialsAuthProvider

    An AsyncCredentialsAuthProvider would allow us to authenticate users asynchronously (query a database, calculate hashes, etc). Right now when extending the CredentialsAuthProvider, we are limited to do everything synchronously in the TryAuthenticate method which can lead to thread starvation.

    13 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. Allow customization of ModelDefinition in ORM Lite

    I need to be able to customize the ModelDefinition after it is generated by ORM Lite. I propose adding a method to IOrmLiteDialectProvider named CustomizeModelDefinition(ModelDefinition modelDef). In the base dialect providers, there are multiple methods used to create ModelDefinitions. I propose that all of those calls be routed through one method in OrmLiteConfig.GetModelMetadata(this Type modelType). In that method, after the model is created, it would invoke DialectProvider.CustomizeModelDefinition(modelDef). I downloaded and implemented this and tested it. It didn't take long and worked well. I would be happy to share the code.

    12 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Flag idea as inappropriate…  ·  Admin →
  3. okta

    Add OKTA as a built-in authentication provider.

    12 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. Add a MQ Server support for Azure Storage Queues

    Storage Queues are cheaper and more performant than azure service bus if guaranteed first-in-first-out, etc is not required.

    They do offer 'At-Least-Once' guaranteed delivery, where Redis is 'fire and forget'.

    Combining this with full featured CosmoDb caching instead of Redis would make a compelling low-cost option.

    11 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  5. Abstraction for Cassandra and other common NoSQL option

    NoSQL is an important piece of technology nowadays. I would like to see if I could have an abstraction layer for each NoSQL support so that I can switch easily,.

    10 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. Support for ServiceStack Client in NativeScript applications

    I think that ServiceStack TypeScript client does not work in NativeScript + Angular2 applications, as I am getting a bunch of weird errors when trying that (in Fetch module).

    I installed the module as this:
    npm install --save @servicestack/client

    Is there support for the TypeScript client in NativeScript applications? If not, Id like there to be =)

    10 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  7. Add support for expand object graph on request by default out of the box

    It would be great to have the option to expand by request descendant objects indicating route or getting href attribute with route by default.

    10 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  8. Support PostgreSQL array parameters

    Currently to send in an integer array as a parameter, I have to use format.

    var ids = "ARRAY[1,2,3]";
    var sql = "SELECT 1 = ANY[{0}]".Fmt(ids);
    Db.Query<Model>(sql);

    I would rather use syntax like this:
    var ids = new int[] {1, 2, 3};
    var sql = "SELECT 1 = ANY(@ids)";
    Db.Query<Model>(sql, new { ids });

    9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. 9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. 9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  11. Add the ability to select the serialization mode(Array,Map) in plugin "MsgPack Format".

    To MsgPack was really comfortable as JSON, you must add the possibility of setting "Map" mode. This will give more compatibility when migrating from one version to another, when service is updated, but clients have not yet had time.

    9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. Encrypted messaging javascript client

    We have message-level encryption and the corresponding .Net client library to use it. But I'd love to be able to call encrypted services from JavaScript. Ideally add to ss-utils.js, or because the encryption can get bulky, into a new ss-encrypt-utils.js.

    9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. AppHostMqListenerBase: AppHost with automatically registered MQ message handlers

    Create [self-hosted] apphost where all request messages are automatically registered to the MQ message service,
    so that all services can be accessed via MQ without the need to register every request type manually with something like "mqServer.RegisterHandler<Hello>(...)" .

    It would be nice if the order of operations of the mq message handling could be further aligned to the http variant.

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. Option to maintain references when serializing/deserializing.

    My use-case is serializing compound DTO objects before sending them over the wire. There is no escaping the possibility that multiple references may exist. I can try to hack a solution that maintains references before/after serialization, but I really think this should be included in the serialization process as an option if at all possible.

    There is already an older post on Stack Overflow about this, and I think (hope? ;) others would want the functionality as well.

    http://stackoverflow.com/questions/11644905/serialize-deserialize-complex-type-to-json-with-object-references-and-dictionari)

    I didn't want to bump that, so I'll add my comments here:

    Currently, PCLs are significantly growing in popularity, as…

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. add Trace method to ILog/Log

    Add a Trace method to Log/ILog in do verbose logging

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. Backend Hosting Environment

    When starting a new project one always has to build a backend environment. This includes managing users, user groups, user password changes, etc. etc. This requires a backend database and an admin front-end.

    Currently, we use the ASPNETZERO framework for this purpose. https://aspnetzero.com/ But the support, documentation, and performance leave a lot of room for improvement.

    We're looking to move away from ASPNETZERO as soon as we can find a replacement. Currently, their pricing starts at $1500 a year for updates and support. Something that I would gladly pay, except the documentation and support they provide is horrible.

    It would…

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    7 comments  ·  Flag idea as inappropriate…  ·  Admin →
  17. A registry of 3rd party plugins, features, etc.

    Host or maintain a list of 3rd party ServiceStack extensions, similar to ngmodules.org for AngularJS, the listing capability of npmjs.org, or http://plugins.telerik.com/ for Telerik AppBuilder.

    The list needs not be actively curated, but a single source where packages are listed and links to download / source code.

    As the user base of ServiceStack grows, people are building more extensions that don't necessarily belong in the core modules, and this type of list would provide a great way of bringing attention to them, outside of hard-to-find NuGet packages.

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  18. Improve QueryStringSerializer.SerializeToString to use lowercase bools

    Right now, bools are serialized uppercase since that's the default ToString behavior of .NET.

    Consider changing this behavior by checking for bool when serializing and using .ToString().ToLower(), or introduce a setting to control this. It's web standard to use lowercase bools in query strings.

    More info/discussion:
    https://github.com/ServiceStack/Issues/issues/586

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  19. Ormlite Extend Transactions with ReadLock abilities

    Current transaction isolation levels do not prevent others from reading and modifying the same data.
    They all wait nice in line to be able to update the same rows, but there is no way of preventing them from overwriting the previous data, and no error message that the data you selected has become stale in between.

    An easy way to solve it to allow a way to lock the selected rows to assure that the current transaction is finished before the next one can read the value and do its own changes.

    This is easely done by just adding a…

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. Add SAML 2.0 auth provider

    Add SAML 2.0 as built in auth provider. Really useful for Azure AD SSO.

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feature Requests

Categories

Feedback and Knowledge Base