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).
133 results found
-
Add MQ Server support for Azure Service Bus
Add a MQ Server for Azure Service Bus that implements ServiceStack's Messaging API: https://github.com/ServiceStack/ServiceStack/wiki/Messaging
166 votesSupport for Azure ServiceBus was added in v4.5.14 in new ServiceStack.Azure NuGet package:
http://docs.servicestack.net/releases/v4.5.14#servicestackazure
-
GZip/Deflate on PCL clients
Support http compression on clients (Xamarin/sl5) with Microsoft Compression BCL library
20 votesShould be possible with the new HttpClient-based JsonHttpClient released in v4.0.42: https://github.com/ServiceStack/ServiceStack/wiki/C%23-client#jsonhttpclient
This MSDN Article shows how to enable it using a custom HttpClientHandler: http://blogs.msdn.com/b/dotnet/archive/2013/06/06/portable-compression-and-httpclient-working-together.aspx
-
AsyncRequestFilters
We are creating a api that uses authorization attribute request filter in all paths(except login, of course). The attribute request for authorization to another system. Because request filters are sync the request is blocked and waiting for response at this point. A solution can be that request filters can returns a Task. Something like this:
public override Task ProcessRequestAsync(IRequest httpReq, IResponse httpRes, string operationName){
…..... return Task.Factory.ContinueWhenAll(appHost.ApplyAsyncRequestFilters(httpReq, httpRes, request), tasks => httpRes.IsClosed ? null : GetResponse(httpReq, request)) .ContinueWith(tResponse => HandleResponse(tResponse.Result, response => { if (appHost.ApplyResponseFilters(httpReq, httpRes, response)) return null; if (responseContentType.Contains("jsv") && !string.IsNullOrEmpty(httpReq.QueryString["debug"])) return WriteDebugResponse(httpRes, response); if (doJsonp && !(response
1 voteSupport for Async Request Filters was added in v4.5.8:
http://docs.servicestack.net/releases/v4.5.8#async-global-request-filters
-
Add message-level encryption
Add the ability to specify message-level encryption on all client/server requests. Allow custom selection of encryption techniques (RSA, AES, etc.) for each direction, and the initialization vectors. Server-side I can see doing this via plug-ins and / or attributes.
Create a subset of client libraries that handle encryption, perhaps using function pointers to encrypt / decrypt.
Its been suggested previously by Demois on different forums.
http://stackoverflow.com/questions/16098839/encrypting-messages-over-servicestack
http://www.linkedin.com/groups/Service-Stack-versus-ASP-NET-1779887.S.107976247
22 votesEncrypted Messaging was added in v4.0.42: https://github.com/ServiceStack/ServiceStack/wiki/Encrypted-Messaging
-
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 votesThis has now been implemented as part of the major async upgrade in v5.10 release:
-
An example of a servicestack service supporting oAuth 2.0 authorization
Although oAuth 2.0 is supported by ServiceStack with its AuthN providers, the assumption the current model makes is that clients wishing to access the service will first authenticate through the SS service (by calling the Auth endpoint). This AuthN then caches the users identity in the session of the SS service, and uses it to verify AuthN for subsequent calls. AuthZ is then provided with the users identity fetched from session cache.
However, in more distributed models AuthN may be handled outside of the SS service, by other services, perhaps from the client directly and users identity stored elsewhere. But…
12 votesThe new Android Java Chat includes a detailed walkthrough showing how to use Facebook, Twitter and Google’s Native SDK’s to Authenticate using Access Tokens directly:
-
Add MQ Server Support for Amazon SQS
Add a MQ Server for Amazon SQS that implements ServiceStack's Messaging API: https://github.com/ServiceStack/ServiceStack/wiki/Messaging
8 votesThis is now available in the new SqsMqServer MQ server that was shipped in ServiceStack.Aws package in v4.0.48: https://github.com/ServiceStack/ServiceStack/blob/master/docs/2015/release-notes.md#servicestackaws
-
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 votesServer Stream gRPC Services provides the best alternative for establishing a persistent HTTP/2 channel which has a dedicated channel for servers to push data upstream to clients:
https://docs.servicestack.net/grpc#server-stream-grpc-services
-
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 votesYou can use [AutoId] to auto populate Guid’s. Uses native RDBMS if it supports it otherwise OrmLite populates it.
https://github.com/ServiceStack/ServiceStack.OrmLite#auto-populated-guid-ids
-
Add an overload of PostFileWithRequest which accepts progress callback
PostFileWithRequest works great, but user experience isn't great when this method is used to post large files (20+MB or even smaller files over a slow connection) to the server because there's no callback for progress notification.
Additionally, this method isn't async in SL5 builds, but we can work around this. We can't work around missing progress callback though.
Looking at the implementation of this method, this should be fairly easy to do. I will most likely submit a pull request with the implementation over the weekend.
1 vote -
Would love a SQL Server Cache Client
We're an all MSFT shop, not much opportunity to use Memcache or Redis. A SQL Server Cache Client would be very useful.
1 voteNow available in new OrmLiteCacheClient added in v4.0.12: https://github.com/ServiceStack/ServiceStack/wiki/Release-Notes#wiki-added-new-ormlitecacheclient
-
Allow OrmLite to store complex blobs as JSON
Change how OrmLite stores complex type properties so they can be stored in formats other than JSV like JSON.
56 votesSupport for pluggable complex type serialization was added in v4.0.11, see:
https://github.com/ServiceStack/ServiceStack/wiki/Release-Notes#wiki-v4011-release-notes -
Portable Class Library for Xamarin Clients - Xamarin Component Store
Xamarin support IOS/Android/Windows Store/Windows Phone. A universal Service Stack client written using PCL would simplify code reuse. The code could be packaged up into a Xamarin Component Store download if necessary. Or be used in conjunction with MvvmCross for use in MVVM style coding and/or unit testing.
35 votesWe’ve added PCL support for Android and iOS in NuGet packages, see this tutorial for using ServiceStack’s PCL libraries in Xamarin projects:
https://github.com/ServiceStack/HelloSee this guide for adding NuGet support to Xamarin Studio to be able to easily reference NuGet packages:
http://barambani.wordpress.com/2013/10/07/add-nuget-package-manager-and-servicestack-to-xamarin-studio-projects-2/ -
Add ETag / If-None-Match support to enable client-side caching
This would be very nice to have, in both the ServiceStack client AND server. The server part would be preferred, obviously :)
108 votesServiceStack’s HTTP Caching story has been greatly improved in v4.0.56 which transparently improves the behavior of existing ToOptimized Cached Responses, provides a typed API to to opt-in to HTTP Client features, introduces a simpler declarative API for enabling both Server and Client Caching of Services and also includes Cache-aware clients that are able to improve the performance and robustness of all existing .NET Service Clients – functionality that’s especially valuable to bandwidth-constrained Xamarin.iOS / Xamarin.Android clients offering improved performance and greater resilience.
For more details please refer to the v4.0.56 Release Notes: https://github.com/ServiceStack/ServiceStack/blob/master/docs/2016/v4.0.56.md#http-caching
-
Enhance OrmLite with common data usage patterns
Add better support for Joins and fetching related records.
100 votesSupport for AutoQuery has been added in v4.0.23 which enables instant querying support on RDBMS tables behind clean self-describing APIs, full docs for AutoQuery is available at:
https://github.com/ServiceStack/ServiceStack/wiki/Auto-QuerySupport for joins have been added to typed SqlExpressions in v4.0.22:
https://github.com/ServiceStack/ServiceStack/blob/master/release-notes.md#typed-sql-expressions-now-support-joins
Going to mark off this broad feature as completed as we’ve just completed what we set out to do for this. Please open up new feature requests for more specific features.
Thanks!
-
Add more MQ options
Add more MQ Adapters, e.g: Rabbit MQ, Amazon SQS, Azure Service Bus, ZeroMQ/nanomsg.
70 votesSupport for Azure ServiceBus was added in v4.5.14 in new ServiceStack.Azure NuGet package:
http://docs.servicestack.net/releases/v4.5.14#servicestackazure
Please create separate Feature Requests for other MQ brokers.
-
26 votes
we’re now manually tagging and publishing releases using GitHub releases: https://github.com/ServiceStack/ServiceStack/releases
-
Research optimal deployment strategies for hosting on Mono/Linux
Research optimal deployment strategies for hosting ServiceStack on Linux (e.g. nginx FastCGI/ nginx + reverse proxy / self-hosting inside linux daemon) with the best performance, that best supports CI deployment with no downtime, auto restart/recovery when Mono process dies.
105 votesWe’ve published our recommended Setup for hosting ASP .NET sites on Linux and Mono is to use nginx/HyperFastCgi. We’ve published a step-by-step guide going through creating an Ubuntu VM from scratch complete with deploy / install / conf / init scripts at [mono-server-config]1.
As well as a guide for hosting ServiceStack with Mono on Docker at: https://github.com/ServiceStackApps/mono-docker-config
Although hosting on Mono is only a Stop Gap as the future and supported option for running .NET on Linux is CoreCLR which will be a priority for us to look at supporting as soon as it’s released. You can vote for the feature request to keep updated on progress: https://servicestack.uservoice.com/forums/176786-feature-requests/suggestions/10286952-support-dnx
-
74 votes
Added in v4.06. See PCL examples for different client platforms at:
https://github.com/ServiceStack/Hellov4.06 Release notes at:
https://github.com/ServiceStack/ServiceStack/wiki/Release-Notes -
Server-side Async support
Change ServiceStack to be based on IHttpAsyncHandler so services have the option to be non-blocking by returning a Task<T>.
75 votesThis has now been done, details on latest v4 update:
https://plus.google.com/106787359118990653189/posts/KoUyRbmYoPJ
- Don't see your idea?