Skip to content

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

33 results found

  1. 3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  2. OrmLite: Add Fluent API as alternative to decorating classes with attributes

    My suggestion is to add a Fluent API as alternative to decorating classes with attributes.

    This decouples the classes from bloated attribute declarations and makes them more modular and decoupled.

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  3. app.UseAuthorization() on .NET Core WebApi 2.1 built on .NET Framework.

    I was referencing your topic: https://docs.servicestack.net/templates-corefx and I am trying to get the [Authroize] tag working on .NET Core 2.1 Web API project built on .NET Framework. There is no IAppBuilder.UseAuthorization(). I wrote my own JWT custom auth handler and tried the following in the Startup:

    services.AddAuthentication("Basic")
    .AddScheme<BasicAuthenticationOptions, EdcAuthenticationHandler>("Basic", null);

            services.AddAuthorization();
    

    I also have
    app.UseAuthentication();

    but, again, there is no app.UseAuthorization()

    I want to be able to add [Authorize] attributes (with roles as well) and be able to access the User object inside my controller methods.

    Any insight would be appreciated.

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    It sounds like you want to use create a Web API project using ASP.NET Core Identity Auth.

    ServiceStack is its own entirely different software stack that has its own Auth Provider implementation & [Authenticate] attribute:

    https://docs.servicestack.net/authentication-and-authorization

    and its own JWT Provider:

    https://docs.servicestack.net/jwt-authprovider

    We don’t support integration with ASP.NET Identity Auth in .NET Framework projects only in .NET Core projects:
    https://docs.servicestack.net/authentication-identity-aspnet

  4. ormlite - pre/post full events (pre: insert/update, post:insert/update)

    Even though this is a lite/micro orm, these events are fundamentals and making the database fully auditable (by infrastructure).

    I have never used an ORM without using all of these events.
    Today only the pre-events are available.
    There is a possibility to run code after and before you execute .save(), still.

    this is very pitfully...

    Also, the events are static. it is a nightmare to get external context to inside the event. such as current logedin user...

    6 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  5. YAML

    Please add support to YAML format.

    Tags: ServiceStack.Text YAML serialization format

    9 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  6. Select and copy key values

    When displaying a hash, it's impossible to select field or value to copy them

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  7. 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…

    105 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    gRPC offers a number of efficient communication channels over a persistent multi-plexed HTTP/2 connection using compact/efficient protocol buffers which would superseed most of the value a custom TCP channel would offer now that ServiceStack gRPC has been released:
    https://docs.servicestack.net/grpc

    C# / F# / VB.NET Apps can also take advantage of our smart generic service clients to offer the simplest and richest development UX:
    https://docs.servicestack.net/grpc-generic

  8. AutoQuery additions/flexibility

    It would be useful to have AutoQueries that could do
    1. custom joins (currently, you have to write a service 'override')
    2. generic, dynamic, or object as a return type!

    Potentially makes writing dozens of reports easy to maintain (for our department) because they are maintained from their source objects instead of having a DTO for each one, considering that regular joins already work that way where they do not require a custom return type to return!

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    Custom joins can’t be declared in a class definition, you would need to use a Custom AutoQuery implementation.

    AutoQuery Services require populating a Typed Response DTO which is what’s needed to indicate which columns to return. Unknown return types can’t be documented in metadata services and can’t be consumed in any supported language which requires deserializing into a known type.

  9. Release separate nuget packages for netcore.

    Hello. I cannot to use ServiceStack.Api.Swagger in VS2017 because it automagically selects net461 version of the library. This can be a quite generic problem for packages containing dll for several platforms. VS2017 project format disallows me to use hint path (it uses target framework attribute) to explicitly select library. Thus, if your net461 exe app refers to netstandard project that uses Servicestack.Core you cannot refer any "mixed" nuget from exe. Please fix it for swagger. Thank you for consideration.

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    All the available .NET Core only NuGet packages are listed on: http://docs.servicestack.net/templates-corefx#reference-core-packages

    Swagger is not included because it implements the older and deprecated Swagger 1.2 spec. Reference ServiceStack.Api.OpenApi.Core NuGet package instead to reference the newer Swagger 2.0 version.

    If for some reason you need to use the older version you can build it from https://github.com/ServiceStack/ServiceStack/tree/master/src/ServiceStack.Api.Swagger

  10. Allow API documentation with comments

    This may be related to this:
    https://servicestack.uservoice.com/forums/176786-feature-requests/suggestions/4459106-api-explorer-meta-data-enhancements

    We have a lot of documentation to fill in, and while the Attributes are great for fine-grained details (if you need them), they are cumbersome with longer descriptions. It would be nice if I could just /// my classes / properties and ServiceStack would fill that in for the Notes (or maybe it's summary?). Maybe a swagger plugin option of ScanCommentsForNotes?

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  11. Support multiple API (service contracts) on the same AppHost

    I would love to see that the AppHost supports multiple "API:s", or service contract, hosted on the same AppHost (and thus the same port), or several differnt AppHosts but using the same port...

    I am using the sefl-hosted solution and I dont have a separate web server to do some mod-rewrites, reverse proxies and such (which is messy anyways).

    The reason:
    I have several "webservices", Ws1, Ws2 etc, and they often have some identical DTOs/methods (such as Login etc). I want to use only one IP:port that then makes these different webservices available under a prefixed path.

    So, for example,…

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  12. Add documentation for the PublishMessage in the IRedisClient

    In the IRedisClient version 4.0.0, there is a method with signature:
    long PublishMessage(string toChannel, string message);

    There is no documentation in the code indicating what the return type of "long" indicates. Having to go online to look this up is rather tedious, and seems to be a common problem with the documentation.

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  13. Rate ServiceStack Customer Support Agents

    I think having a rating on the developers who respond would help the company allocate resources more appropriately. Basically a 5 star rating system if you want to rate your interaction with their people, with the ability to make a comment about the quality of the service your received.

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    This site is for feature requests you would like implemented in ServiceStack’s Software.

    For completeness, I understand you’re frustrated and requesting this in response to your feature request being declined:

    https://servicestack.uservoice.com/forums/176786-feature-requests/suggestions/32034631-add-documentation-for-the-publishmessage-in-the-ir

    and my response to your comments on:

    https://servicestack.uservoice.com/forums/176786-feature-requests/suggestions/12303831-sdk-documentation

  14. Move all extension methods into separate namespace(s)

    When writing code that uses ServiceStack, its fairly common to import the ServiceStack namespace (or others) via a using statement. Doing so will make all the extension methods within that namespace available.

    I have experienced several cases where I have my own custom extension methods with a conflicting signature that I would like to use instead of the ServiceStack method. However there is no ideal way to disambiguate them currently. My only choices are:

    1) Move code around into separate files so that I only import either the ServiceStack namespace or my namespace.

    2) Refer to the proper method by…

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    That’s the opposite of how ServiceStack is designed, hurts discoverability, increases the friction and support burden due to broken references and would result in unacceptable breaking changes. The only extension methods we plan on removing are those duplicated by newer versions of the .NET Framework.

  15. Refactor IRedisSubscription interface to be more intuitive

    https://github.com/ServiceStack/ServiceStack.Redis/wiki/RedisPubSub gives a good example of how to use pub sub pattern. However, from the documentation that is provided with the API, I don't think there's a way to infer that in the property Action<string, string> OnMessage { get; set; } the first param is the channel,
    and the second one is the msg. Other functions are pretty self explanatory, but for this one, I don't feel like I should have to thumb through a bunch of examples to have to figure out how to use it.
    A more self explanatory pattern would be to have an actual event OnMessage…

    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  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    The OnMessage is documented on both the wiki and the home page:
    https://github.com/ServiceStack/ServiceStack.Redis#usage

    If the API isn’t self-explanatory checkout the docs to see if there’s an example, otherwise feel free to ask a question on our Forums or StackOverflow.

    I’ve added API docs in this commit https://github.com/ServiceStack/ServiceStack.Redis/commit/cc5f4ba416d5c904a9b483adf92a504c2e9e9dd9

    But we wont be making any breaking changes to existing APIs.

  16. Implement BCrypt or SCrypt for IHashProvider

    ServiceStack/Auth/SaltedHash.cs appears to implement one round of a HashAlgorithm. This constrains the user to KeyedHashAlgorithm, MD5, RIPEMD160, SHA1, SHA256, SHA384, and SHA512, none of which are suitable for hashing passwords.

    Would the ServiceStack project consider one of the existing BCrypt or SCrypt implementations in the GitHub community (for example viniciuschiele/Scrypt) or does it require that the library be professionally audited by penetration testers?

    Would it accept a contribution given a valid CLA?

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    No we can’t force any additional dependencies to the core ServiceStack.dll but you can use your own custom HashProvider by registering it in the IOC, e.g:

    container.Register(c =>
    new MyCustomHash());

  17. Enable ServiceStack Services in UWP

    Provide a package that allows hosting ServiceStack services (specifically web services and web sockets) in a UWP environment. The primary use-case for this is to allow ServiceStack services to run on an IoT device using UWP IoT Core.

    13 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  18. 1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  19. Plugins inside multitenant environment

    Hi!

    We are building an asp.net mvc app with servicestack api. We have a plugin system which allows us dynamically load/unload plugins (Plugin is a custom servicestack plugin) as long as it is not multitenant solution there is no problems, if we wanted another version of plugin we install it during runtime and restart appdomain works like a charm. Now the question is is there a way to do this on multitenant situations where plugins must be loaded/unloaded on each request. To unload them maybe it is not that big of a problem, but how to deal when we have…

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    declined  ·  1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  20. Support EnumAsInt attribute in ServiceStack.Text JSON serializer

    EnumAsInt was added as an alternative to Flags in OrmLite. This would be nice to have in Text too.

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    It’s a feature that it lets you control OrmLite independently of the serializers, otherwise it’s just a duplicate/redundant version of [Flags] which you should use instead if you want it on both.

← Previous 1
  • Don't see your idea?

Feature Requests

Categories

Feedback and Knowledge Base