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. 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
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    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);

  2. Support SSL connection to Redis instances hosted as PaaS in public clouds such as Azure.

    At this time, StackExchange.Redis is the only .Net library I can find that supports SSL connections to Azure Redis. I imagine others will follow suit. It would be useful to have SSL connection available in ServiceStack as well. Thanks.

    34 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. Redis implementation of MemoryServerEvents

    Just it! I would like to use the SSE feature with load balancing.

    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 →
  4. Create PCL/Silverlight version of MsgPackServiceClient

    The MessagePack format seems pretty ideal for communication between a ServiceStack service and a Silverlight client. Unfortunately there is no PCL package for ServiceStack.MsgPack.

    On top of that it would be useful to split the client and server parts into separate packages.

    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 →
  5. Add MQ Server support for Azure Service Bus

    Add a MQ Server for Azure Service Bus that implements ServiceStack's Messaging API: https://github.com/ServiceStack/ServiceStack/wiki/Messaging

    166 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. GZip/Deflate on PCL clients

    Support http compression on clients (Xamarin/sl5) with Microsoft Compression BCL library

    20 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. 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
    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 message-level encryption

    Add the ability to specify message-level encryption on all client/server requests. Allow custom selection of encryption techniques (RSA, AES, etc.) for each direction, and the initialization vectors. Server-side I can see doing this via plug-ins and / or attributes.

    Create a subset of client libraries that handle encryption, perhaps using function pointers to encrypt / decrypt.

    Its been suggested previously by Demois on different forums.

    http://stackoverflow.com/questions/16098839/encrypting-messages-over-servicestack

    http://www.linkedin.com/groups/Service-Stack-versus-ASP-NET-1779887.S.107976247

    22 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 →
  9. 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
    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. Add MQ Server Support for Amazon SQS

    Add a MQ Server for Amazon SQS that implements ServiceStack's Messaging API: https://github.com/ServiceStack/ServiceStack/wiki/Messaging

    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 →
  11. 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
    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. 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
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    completed  ·  5 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. 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
    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. Allow OrmLite to store complex blobs as JSON

    Change how OrmLite stores complex type properties so they can be stored in formats other than JSV like JSON.

    56 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 →
  15. Portable Class Library for Xamarin Clients - Xamarin Component Store

    Xamarin support IOS/Android/Windows Store/Windows Phone. A universal Service Stack client written using PCL would simplify code reuse. The code could be packaged up into a Xamarin Component Store download if necessary. Or be used in conjunction with MvvmCross for use in MVVM style coding and/or unit testing.

    35 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 →
  16. Add ETag / If-None-Match support to enable client-side caching

    This would be very nice to have, in both the ServiceStack client AND server. The server part would be preferred, obviously :)

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

    ServiceStack’s HTTP Caching story has been greatly improved in v4.0.56 which transparently improves the behavior of existing ToOptimized Cached Responses, provides a typed API to to opt-in to HTTP Client features, introduces a simpler declarative API for enabling both Server and Client Caching of Services and also includes Cache-aware clients that are able to improve the performance and robustness of all existing .NET Service Clients – functionality that’s especially valuable to bandwidth-constrained Xamarin.iOS / Xamarin.Android clients offering improved performance and greater resilience.

    For more details please refer to the v4.0.56 Release Notes: https://github.com/ServiceStack/ServiceStack/blob/master/docs/2016/v4.0.56.md#http-caching

  17. Enhance OrmLite with common data usage patterns

    Add better support for Joins and fetching related records.

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

    Support for AutoQuery has been added in v4.0.23 which enables instant querying support on RDBMS tables behind clean self-describing APIs, full docs for AutoQuery is available at:
    https://github.com/ServiceStack/ServiceStack/wiki/Auto-Query

    Support for joins have been added to typed SqlExpressions in v4.0.22:
    https://github.com/ServiceStack/ServiceStack/blob/master/release-notes.md#typed-sql-expressions-now-support-joins


    Going to mark off this broad feature as completed as we’ve just completed what we set out to do for this. Please open up new feature requests for more specific features.

    Thanks!

  18. Add more MQ options

    Add more MQ Adapters, e.g: Rabbit MQ, Amazon SQS, Azure Service Bus, ZeroMQ/nanomsg.

    70 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    11 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. 26 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. Research optimal deployment strategies for hosting on Mono/Linux

    Research optimal deployment strategies for hosting ServiceStack on Linux (e.g. nginx FastCGI/ nginx + reverse proxy / self-hosting inside linux daemon) with the best performance, that best supports CI deployment with no downtime, auto restart/recovery when Mono process dies.

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

    We’ve published our recommended Setup for hosting ASP .NET sites on Linux and Mono is to use nginx/HyperFastCgi. We’ve published a step-by-step guide going through creating an Ubuntu VM from scratch complete with deploy / install / conf / init scripts at [mono-server-config]1.

    As well as a guide for hosting ServiceStack with Mono on Docker at: https://github.com/ServiceStackApps/mono-docker-config

    Although hosting on Mono is only a Stop Gap as the future and supported option for running .NET on Linux is CoreCLR which will be a priority for us to look at supporting as soon as it’s released. You can vote for the feature request to keep updated on progress: https://servicestack.uservoice.com/forums/176786-feature-requests/suggestions/10286952-support-dnx

  • Don't see your idea?

Feature Requests

Categories

Feedback and Knowledge Base