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

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  1. 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
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      1 comment  ·  Flag idea as inappropriate…  ·  Admin →
    • 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
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        0 comments  ·  Flag idea as inappropriate…  ·  Admin →
      • 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
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          7 comments  ·  Flag idea as inappropriate…  ·  Admin →
        • 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)

          219 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            6 comments  ·  Flag idea as inappropriate…  ·  Admin →
          • ServiceStack to support localization

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

            62 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              0 comments  ·  Flag idea as inappropriate…  ·  Admin →
            • 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
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                0 comments  ·  Flag idea as inappropriate…  ·  Admin →
              • 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
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                • 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)

                  81 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    5 comments  ·  Flag idea as inappropriate…  ·  Admin →
                  • Add fast TCP endpoint

                    Add the most efficient remote endpoint for consuming ServiceStack services.

                    Ideas: use https://github.com/nanomsg/nanomsg (by author and successor to ZeroMQ in C).

                    Advantages: Abstracts IPC/TPC/InMemory for picking the most efficient transport. Can easily interoperate with other NanoMsg clients on other platforms. C is nice to embed than C++.
                    Disadvantages: Still in Alpha, unclear when it will be stable/safe to use. Still native, requires effort to use 32/64 bit architectures and cross-platform on Mono.

                    Alternative: Build endpoint on raw TCP sockets in C# using something like Redis wire protocol for efficient transfer of message payloads. Could imitate operation on redis-server for interoperability…

                    99 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      2 comments  ·  Flag idea as inappropriate…  ·  Admin →
                    • 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
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                      • 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
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          3 comments  ·  Flag idea as inappropriate…  ·  Admin →
                        • 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

                          13 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                          • 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
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                            • Add ServiceStack + SharePoint example

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

                              31 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                3 comments  ·  Flag idea as inappropriate…  ·  Admin →
                              • 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
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                • 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
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                  • 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
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      2 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                    • 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
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                                      • 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
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                        • 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
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          Feature Requests

                                          Feedback and Knowledge Base