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. 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 →
  3. 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 →
  4. 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 →
  5. Support the Oracle OrmLite provider

    Currently Oracle is not a supported OrmLite provider that's listed on:
    http://servicestack.net/download

    Vote for this feature request if you would like to see the OrmLite Oracle provider officially supported.

    36 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 →
  6. 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 →
  7. 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 →
  8. 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 →
  9. Add support for expand object graph on request by default out of the box

    It would be great to have the option to expand by request descendant objects indicating route or getting href attribute with route by default.

    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 →
  10. 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 →
  11. ServiceStack to support localization

    support localization in messages for validations or any other messages sent to the client

    79 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. 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 →
  13. Response field filtering

    As per this example: http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#limiting-fields

    It would be useful to be able to restrict the returned fields provided by the response.

    Using a dot notation we could filter any nested properties as well. e.g.

    GET /customers/fields=id,name,address,address.postcode,address.line1

    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 →
  14. 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 →
  15. 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 →
  16. 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…

    157 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 →
  17. 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 →
  18. 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 →
  19. 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 →
  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

Categories

Feedback and Knowledge Base