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. Add persistence support for Couchbase

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

    20 votes
    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 →
  2. 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

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

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    7 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. 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

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

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

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

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

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

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

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

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

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

    163 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    8 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. 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…

    28 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Flag idea as inappropriate…  ·  Admin →
  14. 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

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

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

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

    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 →
  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 up…
    4 votes
    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 →
  19. Management Overview Dashboard

    While being able to offload to statsd/graphite/raygun/... is great, a "state of the nation" dashboard would be really handy.

    This could show requests/sec, wait times, "slow" requests, auth failures, live access map, recent exceptions, known issues (e.g. can't connect to redisX/mssqlY)

    231 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. API Explorer/Meta data enhancements

    Building upon swagger feature, (but possibly re-engineering)

    Support to include:
    - complex (nested) DTO's and array
    - markdown documentation (for detailed description)
    - role/access based display (so only authorised endpoints are displayed)
    - rebranding support
    - ability to install nuget package without /docs folder (so as to get annotations, but not html in a model lib)

    84 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feature Requests

Categories

Feedback and Knowledge Base