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. Allow Abstract Validators where generic is an Interface to run as part of request cycle.

    When creating a validator class that extends AbstractValidator<T>, the generic must be a concrete class for the validation to actually run once that validator is registered. It would be nice if I could define several interfaces for my messages that I want specific shared validation run against, and then just register a validator for that interface, and have the validation run against any message that comes in that implements that interface.

    I know there are ways to do this through request filters, as well as through attributes on the messages, but the attributes requires having to pull more dependencies into…

    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 →
  2. Expand Generic Type when documenting responses

    We have an application that always return an AppContentResponse<T>. AppContentResponse contains some properties that are present in every response of every method we have, while the T is the actually Type of the response.

    When we look at the metadata documentation, ServiceStack generates the documentation for AppContentResponse<T> without also documenting T. The strange thing is that if I create a class that actually implements AppContentResponse<TypeOfThatResponse>, both types get automatically documented.

    I filed an issue at https://forums.servicestack.net/t/expand-generic-type-when-documenting-responses/5676 if you are looking for more details.

    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 →
  3. Allow Stored Procedure for Primary Key

    We would like to use a stored procedure to generate our primary keys in an OrmLite object. The default field almost can be used for this purpose. But I have to use the special version of Insert which only sets certain fields. However, there is no version of that method which also returns the new id generated for the row. Perhaps you could add an AutoIncrement attribute that allows you to specify a stored procedure. Or at least adda version of Insert that only sets certain fields, but still returns the new id.

    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 →
  4. Security audits

    I would love to see a security audit on the source code done at major milestones. You don't need to do them on each minor version, but one per year would be ideal.

    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 →
  5. Add Stream support

    Please add support for Streams as you did for Strings, Lists and Sets

    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 →
  6. 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
    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. Enable validation of metadata attributes - e.g. IsRequired

    Currently when a field is marked as IsRequired=true via the OpenAPI attribute it has no relevance to validation. However, it seems very reasonable that when someone marks a field as required, they would want validation that said field was indeed supplied in the DTO. Enabling validation on metadata attributes natively would provide developers this funcitonality without requiring they write a seperate validation method which also lists the required fields.

    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 →
  8. Help Pluralsight update their video on Servicestack and/or the solution

    Help Pluralsight update their videos on Servicestack and/or show how to update their example solutions to the latest version of Servicestack.
    Another alternative is to offer an updated version of the videos example code localy (somewhere at servicestack.net/github.com).

    I tried to do a update to the latest versions myself and I ran into loads of problems. To the extent that i gave up.

    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 →
  9. Increase the number of generics parameters of Select, SelectDistinct and GroupBy

    While some methods of SqlExpression<T> supports up to 15 generic parameters (Where, And, Or) others like Select, SelectDistinct and GroupBy only supports a couple. When building complex queries, it's easy to select data from more than 7 tables, or group by fields from more than 4 tables.

    Could you implement more Select, SelectDistinct and GroupBy overloads like you did for Where, And and Or?

    There is no specific number of parameters needed, but I think that the default 15 is a good start.

    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 →
  10. Add convenience links on the API metadata page for parameterless GET requests.

    I would be nice to just click on a link for the GET requests and actually execute the request and see the output. Right now I have to look at the metadata page for the request, copy the url path, and then paste it into browser address tab.

    This probably would not be feasible for POST requests however, unless you want to get fancy with a button or something instead of a link.

    I'm also basically assuming that this would only work for requests with no parameters. Otherwise you'd have to make assumptions of some sort.

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

    The ServiceStack Stripe library currently doesn't support retrieving of Stripe Events. It would be nice to have this feature especially when working with webhooks.

    As it currently stands, I either have to install both the Stripe.net and ServiceStack.Stripe packages in my project, or switch to using just the Stripe.net package.

    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. Ormlite: Add encryption to tables or columns

    Encryption-at-Rest is an important feature for GDPR regulation compliance.
    EF and SqlServer offers an ProtectedPersonalData Annotation to protect fields on db with encryption.
    It would be very useful to have a similar feature on Ormlite.

    Usage example: https://github.com/blowdart/AspNetCoreIdentityEncryption

    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 →
  13. 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 →
  14. Support AWS S3 Versioning with VirtualFiles.WriteFile

    I believe we can retrieve specific versions of a file via the versionId querystring using VirtualFiles.... however VirtualFiles.WriteFile returns null so we cannot retrieve the x-amz-version-id header. It would be nice if the headers were in the response of VirtualFiles.WriteFile so we could retrieve that.

    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 →
  15. Improvements for batched requests

    I've started working with request batching, which is a really nice feature. Everything works, but there two improvements I'd like to see.

    Firstly, for IReturnVoid requests there is SendAllOneWay, but there is no async version of that method.

    Secondly, I'd like to be able to specify a http Verb with the SendAll methods. The implementation should select the correct method in the service, both when calling a single request method multiple times, but also for the batched method. Right now the batched service methods always need to be Any(), it would be nice to be able to have Delete(OrderID[] orders).

    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 →
  16. 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 →
  17. Per-Service Date Format

    Last time I asked it was an all or nothing thing...

    Basically the CMS we have started off with WCF as the default Date format for JSON.

    They then licensed SS and started building new components using SS, and globally (to maintain consistency) kept that crappy unreadable date format.

    So my problem is that I can't globally set ISO as the date format or the entire CMS backend just blows up.

    I would like to be able to attach an attribute to a service method to have it format the dates to ISO on a one-off basis as needed.

    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 →
  18. Allow custom type converter for CSV parser

    The only thing that keeps me from dropping CsvHelper and using SS Csv capabilities for everything is that quite often I need a custom type converter.

    For instance sometimes currency is a mix of numbers and letters or there can be inconsistent data.

    If there was a way to register a method that would receive the raw column values and alter them then this would make it much more versatile in my opinion.

    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 →
  19. Auto Batched Requests - return responses up to error

    When an error occurs processing a batch of requests, the responses for the successful requests are lost. It would be helpful if these successful response are returned along with the error that stopped further processing.

    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 →
  20. Add PostFileWithRequest method in Java Client

    Can you add the PostFileWithRequest method in java client?
    It would be very useful to upload files from Android devices

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

Feature Requests

Categories

Feedback and Knowledge Base