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. 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
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. Add persistence support for Couchbase

    This shouldn't be too hard considering you seem to already support memcached..?

    20 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 →
  3. Built-in Active Directory Authentication suport.

    I would really like to see out of the box support for IWA - Integrated Windows Authentication with Active Directory. Many in-house .Net developers for both large and small organizations write web applications that are Intranet facing, and require the use of Integrated Windows Authentication with IIS. In these environments, corporate security policy often dictates that Active Directory group membership should drive what resources a user can and cannot access.
    So, Kerberos authentication often plays a big part in shipping the logged in user’s credentials via tickets from the application server to back end databases. Built-in support for a ServiceStack…

    155 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    8 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. 1. HATEOAS (RDF/Semantic web support for entities), 2. ASP-Net Indentity Authentication Integration (http://www.asp.net/identity/)

    I've read somewhere where you don't see the need for hateoas support Demis, but I'd encourage you to revisit the subject... RDF semantic web is growing (ie RDFa), so at least support for applying sematic attributes to each object could be helpful (ie FOAF, Dublin Core, etc.)

    7 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 →
  5. Add async API's for caching

    Provide async overloads for caching API so async operations can construct the cache.

    More info:
    http://stackoverflow.com/questions/20505186/servicestack-v4-server-side-async

    38 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. 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
    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. Enhanced Form Post Model Binding in Service Stack (like ASP.NET MVC)

    For example, in ASP.NET MVC if you have a list of Customer.Orders that you decide to render out on the page using a loop in a Razor View, you can use a naming convention for your html input "name" attribute so that when that form is posted to the server the form data will be properly deserialized/bound to your server Customer.Orders list.

    The convention:
    input name="Customer.Orders[0].Name"
    input name="Customer.Orders[1].Name"
    input name="Customer.Orders[2].Name"

    So, when this is posted to the server, ASP.NET MVC will create a Default Customer object and then create each Order and bind the Name value from the input and…

    1 vote
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    7 comments  ·  Flag idea as inappropriate…  ·  Admin →
  8. WADL Implementation

    Many serious architecture work on Restful+JSON and consumers are more and more asking for some WADL to industrialize their exchanges.
    This may be a main criteria to select a ServiceStack.
    So i suggest the WADL implementation directly on ServiceStack.

    35 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. Configurable Webservices Host container

    Have a user configurable host container (maybe developed as an example) that would permit to upload "Servicestack components" and let the admin configure custom routes at runtime, giving a single place where to combine different webservices projects, configure authentication, caching and see performance graphs.

    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 →
  10. Better request and exception logging

    As it exists now, request logging only logs valid requests.
    Request Logging:

    It does not log the request if the request is denied for Endpoint Restriction.
    It does not log the request if the request is denied because a route could not be matched (say a parameter was missing, etc).
    It does not log valid requests that are 'in process' - ones that request has been received, but response not sent yet.

    Essentially I would like to see every request sent to the service to be logged in some fashion.

    As far as exceptions go, you have some pretty nice…

    31 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. Allow Serialization/Deserialization of DTO objects through a Stream for returning unbounded results sets

    following the discussion on the related post (https://plus.google.com/102769881855401822960/posts/FjydVsKJWTT) it would be great to be able to return a result set of DTO objects in a stream (which could be deserialized as they arrived on the client to reduce latency). a custom IEnumerator/IEnumerable result type could be used to hide the specifics of deserializing the objects from the stream.

    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 →
  12. Add ServiceStack + SharePoint example

    Create a starter template showing how to use ServiceStack + SharePoint together.

    31 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 →
  13. Include XML documentation files in the NuGet releases

    It seems no XML documentation is shipped with NuGet packages. This makes discovery hard, for example with Intellisense in Visual Studio, and is a shame given that the documentation is already written.

    http://stackoverflow.com/questions/19719607/how-can-i-get-servicestacks-xml-documentation-to-show-in-visual-studio

    13 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 →
  14. Enhance ServiceStack Razor page lookup options

    I have a custom basic CMS I put together (work in progress) for some of my clients that allows developers to build CMS plugins that auto-install on application startup. The plugins can deploy both content pages and view pages (and use ServiceStack plugins and CMS plugin interfaces to configure, and add capabilities to the CMS at startup), similar to how NopCommerce and Orchard work.

    Currently, I have to rely on view pages to be unique, but I would like to be able to modify the lookup algorithm to take advantage of paths to the razor/markdown pages in the Views folder,…

    15 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 →
  15. Support webapi replacement and asp.net integration out of the box

    I know you have a better story for authentication, fresh, clean, no dependency, etc.
    I know you have a better story for authorization, fresh, clean, no dependency, etc.
    I know you have a better story for cache/session - fresh, clean, no dependency, not single threaded, etc.

    However, it can be difficult to replace all that to start with, so servicestack should ship with adapters to use asp.net authentication, authorization, cache/session out of the box

    See prior post.

    https://groups.google.com/forum/#!searchin/servicestack/asp.net/servicestack/w_t9l98v7Cw/kDUr54U5VnwJ

    5 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 Distirbuted Configuration Management

    with distributed services, the configuration is stored on application configuration files, these are hard to maintain in sync and requires application restart to apply changes.

    the distributed configuration manager can take this issue down, and allow configuration changes at runtime on a single place.

    much like the Netflix Archaius library
    https://github.com/Netflix/archaius/wiki/Features

    3 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 →
  17. Service "Interceptor" would be a nice touch.

    In a similar but now discontinued Agatha RRSL service (source available on git), there's a "interceptor". It has constructor that allows IoC, BeforeHandling, AfterHandling, plus RequestContext that has access to both Request and Response object. You can register multiple interceptors at start up and they will wrap around each other, and around the default handler. Would be nice feature that allows true aspect programming in ServiceStack.

    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 →
  18. High Availability Pattern

    I'm dubious about whether to suggest this, but something that enabled easier high availability for a SS Service would be great. This would maybe be more like a recipe than a feature, but possibly with features to help support it.

    E.g.
    We run a ServiceStack API Service which depends on redis and postgres, each with replication to secondary nodes which are readonly until we manually execute a failover command. Running multiple ServiceStacks on VPSs (or whatever) is easy, but having them co-ordinate is slightly trickier. So the type of thing I'm suggesting would include

    - Digital Ocean recipe for running…

    4 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. Support for response warnings on read-only properties

    Imagine you have large DTOs that are ushared for GET, POST and PUT.

    Some properties might only be used for display purposes, and cannot be updated (i.e. denormalized fields).

    You might also allow the setting of a property on POST, but not on PUT. For example, you might not allow the Id of an object to be set on POST (because it will be the primary key identity insert), but if you want to update it, you can pass it in a PUT:

    We currently are doing this using a custom attribute and interface on the models and model properties.

    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 →
  20. Support Private Constructors in ServiceStack.Text

    When creating immutable objects, it's common to not have a default constructor. ServiceStack.Text supports this presently with the use of FormatterServices.GetUnitializedObject. However, GetUnitializedObject does not do any field initialization. The DataContractSerializer works around this with support of the OnDeserialized attribute; but why would we want to write the initialization code twice? Instead, We should change ServiceStack.Text to fall back to private constructors. Here is some proposed code.

    public static ConstructorInfo GetEmptyConstructor(this Type type)
    {
    #if NETFX_CORE
    return type.GetTypeInfo().DeclaredConstructors.FirstOrDefault(c => c.GetParameters().Count() == 0);
    #else
    var ret = type.GetConstructor(Type.EmptyTypes);
    if (ret != null) return ret;

    // attempt to use constructors with all…

    4 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 →
  • Don't see your idea?

Feature Requests

Feedback and Knowledge Base