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. Refactor to use HttpRequestBase and HttpResponseBase

    Much of the existing code implements IHttpRequest and IHttpResponse interfaces and writes complete code for implementing these. That was necessary before the redesign in 4.5 implemented mockable versions of the non-inheritable old HttpResponse classes.

    I think it can reduce the amount of code in SS and enable use to not need to use global items like HttpContext.Current.Request which results in - non-testable controllers.

    The change to help the above situation I implemented grew out of scope, but thought it worthwhile to explore for a later version.

    https://groups.google.com/forum/#!searchin/servicestack/httpcontextbase/servicestack/fpr-QlOH-dY/PFtbLXaW-IQJ

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. Add an overload of PostFileWithRequest which accepts progress callback

    PostFileWithRequest works great, but user experience isn't great when this method is used to post large files (20+MB or even smaller files over a slow connection) to the server because there's no callback for progress notification.

    Additionally, this method isn't async in SL5 builds, but we can work around this. We can't work around missing progress callback though.

    Looking at the implementation of this method, this should be fairly easy to do. I will most likely submit a pull request with the implementation over the weekend.

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    completed  ·  5 comments  ·  Flag idea as inappropriate…  ·  Admin →
  3. Would love a SQL Server Cache Client

    We're an all MSFT shop, not much opportunity to use Memcache or Redis. A SQL Server Cache Client would be very useful.

    1 vote
    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 →
  4. AsyncRequestFilters

    We are creating a api that uses authorization attribute request filter in all paths(except login, of course). The attribute request for authorization to another system. Because request filters are sync the request is blocked and waiting for response at this point. A solution can be that request filters can returns a Task. Something like this:

    public override Task ProcessRequestAsync(IRequest httpReq, IResponse httpRes, string operationName){

                .....
    
    
                return Task.Factory.ContinueWhenAll(appHost.ApplyAsyncRequestFilters(httpReq, httpRes, request),
                    tasks => httpRes.IsClosed ? null : GetResponse(httpReq, request))
                    .ContinueWith(tResponse => HandleResponse(tResponse.Result, response =>
                    {
                        if (appHost.ApplyResponseFilters(httpReq, httpRes, response))
                            return null;
    
                        if (responseContentType.Contains("jsv") && !string.IsNullOrEmpty(httpReq.QueryString["debug"]))
                            return WriteDebugResponse(httpRes, response);
    
                        if (doJsonp && !(response
    1 vote
    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 →
  5. AuthFeature().ServiceRoutes - Option to hide route /Auth

    Add a property to Remove the /Auth route, in favor of only /Authenticate instead.

    Currently, I've added the following to hide /Auth routes.

                    // This is a way to remove the /Auth route and leave /Authorize instead. We don't need 2
                    ServiceRoutes = new Dictionary<Type, string[]> {{ typeof(AuthenticateService), new[] { "/" + localize(LocalizedStrings.Authenticate), "/" + localize(LocalizedStrings.Authenticate) + "/{provider}" }}},
    

    Maybe there is a better way? Or is this bad?

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

    Like most plugins you can configure them when registering them, you can change it to only host Authenticate Services on `/authenticate` route with:

    var authFeature = new AuthFeature(…);
    authFeature.ServiceRoutes[typeof (AuthenticateService)] = new[] {
    “/authenticate”,
    “/authenticate/{provider}”,
    };

    Plugins.Add(authFeature);

  6. Service Stack OrmLite 4.0.34 does not return result set for async version

    4.0.34 version of ormlite gives null for an async call
    for example

    // user1 is not null in this case
    var user1 = db.Single(db.From<Users>().Where(x => x.UserPartyId == userPartyId).Select());

    // user2 is null in this case
    var user2 = await db.SingleAsync(db.From<Users>().Where(x => x.UserPartyId == userPartyId).Select());

    1 vote
    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 →
  7. Ability to override OrmLiteCacheClient to change CacheEntry table name

    However it would be best to accomplish, it would be rad to be able to have our own Alias for the CacheEntry object inside OrmLiteCacheClient. We are sharing a database between multiple web apps, but don't want to share the same CacheEntry table.

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

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    completed  ·  1 comment  ·  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

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

    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 →
  11. Why 'Fmt'?

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

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

    ‘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

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

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

    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 →
  14. Add TypeScript reference for WebStorm

    ServiceStack already has a plugin for IntelliJ Idea to generate typed requests, and for Visual Studio to generate TypeScript models. It would be nice to combine both of them in a WebStorm support for TypeScript models generation from a ServiceStack service.

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    completed  ·  1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  15. 1 vote
    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. Session data Persistance on login

    I am building a webshop/ecommerce platform with:
    * an extension on CredentialsAuthProvider.
    * And an extension on the AuthUserSession with

    on login want to persist the CartId. but i found the source code does reset the session on login. But this part is not overrideable.

    i made a pull request. please check it, adjust it to the way you work.
    https://github.com/ServiceStack/ServiceStack/pull/1067

    1 vote
    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 →
  17. Bug: gateway also changes razor view that will be selected

    I have the following code

    public class EditAccountAddressPageService : ServiceBase
        {
            public object Get(EditAccountAddressPage request)
            {
                return Gateway.Send(new GetAddress() { AddressId = request.Id });
            }
        }
    

    The problem is the razor view taken now is GetAddress.cshtml

    1 vote
    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. Exclude or Include by route prefix/subfix when add servicestack reference

    when add a service stack reference we can use include types and exclude types.

    could you add include / exclude by route.

    so, we can configure reference like this way.

    //include route "/mobile%"
    or
    //include route "%mobile%"

    1 vote
    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. Provide option to set Referer header on service client.

    Due to it being a restricted header, the referer cannot be set using the standard header methods. In order to set the referer on a standard http web request, you must use the referer property. I would like to suggest that this header be accessible from the client.

    1 vote
    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 →
  20. Create MongoDB AuthRepository for .net core

    The mongo driver is available on .net core but needs a nuget spec for it.

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