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

  2. Add Servicestack + Aurelia template

    Add a starter template for servicestack and aurelia. After what I've read, Aurelia and ServiceStack seems to have a lot in common. Like conventions over configuration. It's easy to test, customize and extend.

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

  4. 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 →
  5. 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 →
  6. 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 →
  7. 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 →
  8. 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 →
  9. 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 →
  10. 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 →
  11. support dnx.

    I want to program ported to Linux. but current version servicestack not support dnx ( core clr )

    464 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    17 comments  ·  Flag idea as inappropriate…  ·  Admin →

    We’re super excited to announce ServiceStack is now running on .NET Core!

    Nearly all of ServiceStack’s features are now available across 21 of our most popular NuGet packages, inc. OrmLite support for SQL Server, PostgreSQL and Sqlite. We’ve been able to achieve excellent integration and code-reuse where your ServiceStack AppHost can be registered as a .NET Core module and most of your Service Implementation using ServiceStack libraries remains unchanged.

    We’ve ported a number of existing Live Demos to .NET Core providing example projects so you can easily compare .NET 4.5 ServiceStack code-bases with what it looks like in .NET Core at:
    https://github.com/NetCoreApps/LiveDemos

    All .NET Core Live Demos are running on Linux / Docker using AWS ECS Container Service.

    We’re maintaining .NET Core packages isolated from the Main NuGet packages separated with a `.Core` suffix until we’re satisfied .NET Core has been battle-tested…

  12. 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 →
  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. 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 →
  15. 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 →
  16. 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 →
  17. Allow us to use Geography data type in Sql Server

    It would be nice to be able to take advantage of the Geography type in Sql Server... even better, I wonder if there would be a way to allow "us" to define custom classes for these more advanced data types that are built into a database.

    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 →
  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. Allow sub-select SqlExpression in Sql.In clauses

    The Load* methods already do this internally (sort-of), but allow explicitly creating Where expressions that use a sub-select to get the IDs, instead of the Sql.In() utility. Or possibly reworking Sql.In to support a Select with a single column.

    Something like this:
    var customers = Db.From<Customers>().Where( ... my complex expression ... ).Select("Id");

    var orders = Db.Select<Orders>(q => Sql.In(q.CustomerId, customers);

    3 votes
    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 →
  20. 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 →
  • Don't see your idea?

Feature Requests

Categories

Feedback and Knowledge Base