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
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. new feature in c# add service stack reference

    I'd like the possibility to specify if types (all or specific ones) should be generated as internal and not as public

    such as
    InternalTypes: ... list of types

    often I get collision among types that are in a shared library , but that do "leak" through a service request / response DTO .

    1 vote
    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 →
  3. support swagger 2.0

    in order to tie into the ecosystem of self-describing APIs supporting Swagger 2.0 definitions, I would like to suggest support for this version of swagger. This is particularly necessary for supporting Azure Web Api Apps....the only way to create an Azure API app currently appears to be to use the Swashbuckle Generator (which means using WebApi instead of ServiceStack) or hand-crafting the definition file.

    212 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    9 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. 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
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. Extend CacheResponse feature with a VaryByRoles option

    A number of our services have responses that vary by the set of roles a user is associated with. It would be more memory efficient if we could cache by roles rather than by user for these services.

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

    I’ve added support for VaryByRoles in this commit: https://github.com/ServiceStack/ServiceStack/commit/bbd3eda601b4a373d81bbed593bc2b743dbcf6f6

    You need to be explicit in which roles the cache should be varied by, e.g:

    [CacheResponse(Duration = 60, VaryByRoles = new[] { “RoleA”, “RoleB” })]

    Where there will be separate caches created for Users in “RoleA” vs “RoleB” vs No Role/UnAuthenticated Users.

    This is available from v4.0.55 that’s now on MyGet

  6. ServiceStack.Razor Reference is System.Web.Razor, Version=2.0.0.0, It is older version

    ServiceStack.Razor

    <Reference Include="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
    
    <SpecificVersion>False</SpecificVersion>
    <HintPath>..\..\lib\System.Web.Razor.dll</HintPath>
    </Reference>

    replace to(use newest lib):

    <Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
    
    <HintPath>..\..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
    <Private>True</Private>
    </Reference>

    1 vote
    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 →
  7. PocoDynamo - Support Generic Types

    We're interested in purchasing licenses for ServiceStack. Particularly, we're interested in using the ServiceStack.Aws component. However, while evaluating it, we noticed that the PocoDynamo implementation fails to support generic types.

    Currently, if a table is registered using a generic type (i.e. db.RegisterTable<GenericPoco<Poco>()) , it fails because the name used for the table does not abide by DynamoDB's rules for Table Name.

    I have local modifications of the ServiceStack.Aws source that allows for generic types definitions to be registered, including tests showing it working. I can submit this code to somebody on your team if you like.

    1 vote
    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 →
  8. Why 'Fmt'?

    Why don't you use plain 'Format' instead?

    1 vote
    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 →

    ‘fmt’ is a widely used abbreviation to mean format, as this is something that can used a lot we prefer its most abbreviated form to reduce the noise. If you prefer a longer name you can use the equivalent `.FormatWith()` extension method however both these APIs are effectively deprecated with C# 6’s new string interpolation.

    Please ask questions in Customer Forums or StackOverflow: https://forums.servicestack.net

  9. 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
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. 6 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 →
  11. ORMLite - Add attribute to ignore property on updates

    It'd be nice to have an attribute to apply to data DTOs that would cause them to be excluded if an update statement is executed.

    Use case: Auditing
    I have an IAudit interface that looks like (basically copied from Demis' answer here http://stackoverflow.com/questions/21803999/are-interceptors-possible-in-servicestack-ormlite)

    public IAudited{
    string CreatedBy {get; set;}
    DateTime CreatedDate {get;set;}
    string ModifiedBy {get;set;}
    string ModifiedDate {get;set;}
    }

    Using OrmLite's insert filter makes it easy to generate values for the interface members when setting, as I can get the current user and Date and use them for both the Created and Modified fields. On an update though, I…

    19 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 →
  12. Java Client: Add all fields on @ApiMember annotation to prevent compilation errors

    For example if the API definitions has ExcludeInSchema set, the autogenerated DTOs do not compile due to unrecognized field on the annotation.

    3 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. 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
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  14. Add basic/digest authentication to AndroidServiceClient

    Add built-in basic/digest authentication to the android JsonServiceClient/AndroidServiceClient

    3 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. WebServiceException ToString Overrride

    Hi, currently WebServiceException does not override to string , so that the base ToString() implementation which returns quite "unusefull" info

    I suggest to override the ToString method of WebServiceException
    to add info such as errorCode, errorMessage, StatusCode, .Responsestatus.Errors .. etc ..

    That would turn usefull, expecially when logging, since most logging mechanism dump the ex.ToString() ..

    1 vote
    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. enum information in the metadata page

    according to this http://stackoverflow.com/questions/22072109/is-there-a-way-to-have-a-servicestack-metadata-page-show-all-the-options-for-an

    it's not possible to have enum information show up in the metadata page, but only in swagger .. it would be nice to have such allowed enum values in metadata page as well.

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    completed  ·  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  17. Deprecate or update docs.servicstack.net

    Can you either shelve or update docs.servicestack.net? They appear to be very out-of-date, but keep showing up in search results. While most of the information is relevant, its incomplete and occasionally misleading.

    19 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. 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
    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. Make virtual some methods in OrmLiteAuthRepository

    It's possibile to make inheritable some methods in OrmLiteAuthRepository class, to allow custom logics?

    For example CreateUserAuth, UpdateUserAuth, CreateOrMergeAuthSession, GetPermissions/Role, Has Permission/Roles, etc

    3 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 →
  20. 4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feature Requests

Categories

Feedback and Knowledge Base