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. Support Kestrel as a hosting provider

    The KestrelHTTPServer is built on the cross-platform libuv library.

    While some of the elements in Kestrel may conflict with ServiceStack's implementations (different DI, request / response filters), the overall goals are in alignment, and would bring a powerful new hosting option for ServiceStack.

    https://github.com/aspnet/KestrelHttpServer

    17 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. Alternative to WCF Duplex Communications

    I'd like to see an alternative to WCF Duplex Communications.

    This is somewhat related to http://servicestack.uservoice.com/forums/176786-feature-requests/suggestions/4458942-add-fast-tcp-endpoint (Add fast TCP endpoint), as the duplex comms should use the same connection.

    We use this for "playing nice" with firewalls (make connection out, poll in on same connection).

    16 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  3. Update fluent validation library

    There are bug-fixes and improvements made to the original fluent validation source at:

    https://github.com/JeremySkinner/FluentValidation/

    15 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. OrmLite Join Aliases

    Joining on the same table multiple times results in incorrect SQL being generated by OrmLite.

    Table aliases need to be added automatically by OrmLite so the correct SQL is generated when joining on the same table multiple times.

    14 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. Extend the api to allow Reverse Routing

    An option would be to open the access to Routes.
    This would allow to separate the concerns of application workflow in services (describing next operations if required) from route resolution (which could be done in a filter or in the appconfig).

    13 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. Endpoint Configuration Discovery

    In WCF, I can create a udp endpoint discovery to allow client finding the service without knowing the endpoint addresses.

    Is there a similar approach using restful servicestack so that the client could discover the end point addresses using some kind of discovery detection ?

    13 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  7. Enum Serialization and Typescript String Enums

    I understand if this is changed it may break projects based on Typescript < 2.4. I propose a new flag or option to serialize enum strings as enum strings instead of string literals. This would minimally allow us to get access to the list of strings available for an enum which is not readily available with a string Literal.

    Instead of this:

    export type MessagePriority = "Normal" | "Low" | "High";

    It would be:

    export enum MessagePriority{
    Normal = "Normal",
    Low = "Low",
    High = "High"
    }

    13 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  8. 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

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. Add optional Strong-named NuGet packages

    Add optional Strong-named Server and Client NuGet packages so they can be added in the GAC and used inside Enterprise products requiring signed dlls.

    12 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    completed  ·  4 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. An example of a servicestack service supporting oAuth 2.0 authorization

    Although oAuth 2.0 is supported by ServiceStack with its AuthN providers, the assumption the current model makes is that clients wishing to access the service will first authenticate through the SS service (by calling the Auth endpoint). This AuthN then caches the users identity in the session of the SS service, and uses it to verify AuthN for subsequent calls. AuthZ is then provided with the users identity fetched from session cache.

    However, in more distributed models AuthN may be handled outside of the SS service, by other services, perhaps from the client directly and users identity stored elsewhere. But…

    12 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  11. Change ServiceStackVS templates to Gulp

    Gulp has got much better friction in the community than Grunt and many people already moved to Gulp completely. ServiceStack SPA templates use Grunt and leverage Gulp packages via grunt-gulp, which seems to be articifial. Wouldn't it be easier just to remove Grunt at all and make everything with Gulp instead?

    12 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. Self Host Response Compression

    Add built-in response compression for Self Hosted applications.

    As per https://forums.servicestack.net/t/http-response-compression-with-self-hosted/2098/4, there is only one way to enable compression on a Self Hosted SS application, add a http proxy like nginx (beta on Windows) in-front of SS.

    This is not ideal as it increases the complexity of deployments and maintenance.

    11 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. Add support for non-ambient TypeScript module generation in ssutil

    While having typing information in an ambient module (d.ts) is great for most use cases it doesn't cover the following two problems:

    • Using enums declared in an ambient module: The enums are not compiled to JavaScript objects and can therefore not be used
    • Creating instances of DTOs: You cannot create an instance of a DTO if it is an interface.

    My suggestion is to have the possibility to create a normal TypeScript module with classes instead of interfaces and exported enums which can be compiled to JavaScript.

    Currently the following ambient module is created

    declare module api
    {
    interface MyDTO…

    11 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  14. Allow LoadSelect to selectively load references

    Akin to the EF "Include" method, enhance OrmLite's LoadSelect method to take an optional string array of references to load. For performance reasons, I don't always want to load all references to an object, particularly if its a central object like Account or User. As a coding efficiency measure, it'd be great to pass in a list of only the reference objects or properties that are relevant to the code snippet.

    10 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  15. Allow debuggable Razor views

    Microsoft's ASP.Net MVC allows users to set breakpoints in Razor views and debug them in Visual Studio. It would be splendid if ServiceStack could do the same

    10 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  16. Android Java Server Events Client

    With Service Stack you can create very good backend, it would be nice to use all functions that it provides of Android, without Xamarin because Android is the most popular platform for mobile devices.

    For a complete happiness is not enough to us now server events so we do request every 5 seconds to check for data.

    Please make the ability to use server events on Android.

    Thanks!

    9 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  17. visual studio 2015 extension

    Service Stack extension for visual studio does not work in visual studio 2015. please add this extension

    9 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  18. 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

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. Customize Auth DTO Response

    Currently if we want to customize the Auth DTO Response in Credential Auth Provider, we must to rewrite the Auth Feature,the Authentication Service and the Credential Provider.
    It would be useful to be able to set a custom auth DTO Response.

    At this time there isn't a simple solution.
    I found this post on stackoverflow that explains the problem in details:

    http://stackoverflow.com/questions/16280319/return-a-custom-auth-response-object-from-servicestack-authentication

    9 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

    You can use the Meta string Dictionary to extend the AuthenticateResponse with additional custom info, but we’re not planning on trying to support for switching the AuthenticateResponse DTO entirely and breaking the Service Contract.

  20. OrmLiteWriteConnectionExtensions.Save should populate GUIDs

    The Save method will populate the inserted PK value if the PK is an integer with [AutoIncrement].

    It would be useful to also have this method use the database's internal GUID generator (which creates sequential GUIDs) and thus populate back into the object a GUID generated in the db.

    By default, database's will create a clustered index on the PK field, if the GUIDs are not sequential and the column has a clustered index on it, then performance will suffer.

    9 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    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