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
-
More Oauth/Oauth2 integration
It would be very interesting to have a better integration with oauth protocols.
Some ideas:
1. Authentication/authorization provided directly by SS. At moment is possible to use oauth, but only with some external libraries (DotNetOpenAuth or others).The Access Token could be released with some oauth permissions defined in a global configuration setting. When the client request an access token, the request must contains a list of permission (like facebook, twitter and others API)
The permissions can be used for authorize some services only if the oauth access token provided in the request is valid for it. For example with…
17 votesWe’ve improved OAuth integration in v4.5.8 where you can now Authenticate using an AccessToken in Facebook, Twitter, Github and Google Auth Providers:
http://docs.servicestack.net/releases/v4.5.8#integrated-facebook-twitter-and-google-logins
This feature now enables auto-Sign Ins in Mobile / Desktop Apps using a saved Access Token.
Please submit separate feature requests for any other individual features you’d like to see.
-
Support Kestrel as a hosting provider
The KestrelHTTPServer is built on the cross-platform libuv library.
While some of the elements in Kestrel may conflict with ServiceStack's implementations (different DI, request / response filters), the overall goals are in alignment, and would bring a powerful new hosting option for ServiceStack.
17 votesServiceStack’s .NET Core support (which runs on Kestrel) was released in v4.5.2: http://docs.servicestack.net/releases/v4.5.2
-
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
-
Update fluent validation library
There are bug-fixes and improvements made to the original fluent validation source at:
15 votesFluent Validation has been updated to the latest release in v4.58:
http://docs.servicestack.net/releases/v4.5.8#fluent-validation-upgraded
Which also includes built-in support for Async Validators
-
OrmLite Join Aliases
Joining on the same table multiple times results in incorrect SQL being generated by OrmLite.
Table aliases need to be added automatically by OrmLite so the correct SQL is generated when joining on the same table multiple times.
14 votesSupport for Typed JOIN aliases were added in v4.0.62: https://github.com/ServiceStack/ServiceStack.OrmLite#join-aliases
-
Endpoint Configuration Discovery
In WCF, I can create a udp endpoint discovery to allow client finding the service without knowing the endpoint addresses.
Is there a similar approach using restful servicestack so that the client could discover the end point addresses using some kind of discovery detection ?
13 votesService Gateway allows for a customizable gateway where there are now a couple of Service Discovery options listed at: https://github.com/ServiceStack/ServiceStack/wiki/Service-Discovery
-
Extend the api to allow Reverse Routing
An option would be to open the access to Routes.
This would allow to separate the concerns of application workflow in services (describing next operations if required) from route resolution (which could be done in a filter or in the appconfig).13 votes -
Enum Serialization and Typescript String Enums
I understand if this is changed it may break projects based on Typescript < 2.4. I propose a new flag or option to serialize enum strings as enum strings instead of string literals. This would minimally allow us to get access to the list of strings available for an enum which is not readily available with a string Literal.
Instead of this:
export type MessagePriority = "Normal" | "Low" | "High";
It would be:
export enum MessagePriority{
Normal = "Normal",
Low = "Low",
High = "High"
}13 votesv5.2 now defaults to string enums
http://docs.servicestack.net/releases/v5.2#typescript -
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:
-
Add optional Strong-named NuGet packages
Add optional Strong-named Server and Client NuGet packages so they can be added in the GAC and used inside Enterprise products requiring signed dlls.
12 votes -
Change ServiceStackVS templates to Gulp
Gulp has got much better friction in the community than Grunt and many people already moved to Gulp completely. ServiceStack SPA templates use Grunt and leverage Gulp packages via grunt-gulp, which seems to be articifial. Wouldn't it be easier just to remove Grunt at all and make everything with Gulp instead?
12 votesAll Single Page App Templates have now been modernized in the latest v1.0.22 update:
https://github.com/ServiceStack/ServiceStack/blob/master/docs/2016/servicestackvs/v1.0.22.mdThey now use Gulp and JSPM and both React Templates are now pre-configured with TypeScript
-
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 support for non-ambient TypeScript module generation in ssutil
While having typing information in an ambient module (d.ts) is great for most use cases it doesn't cover the following two problems:
- Using enums declared in an ambient module: The enums are not compiled to JavaScript objects and can therefore not be used
- Creating instances of DTOs: You cannot create an instance of a DTO if it is an interface.
My suggestion is to have the possibility to create a normal TypeScript module with classes instead of interfaces and exported enums which can be compiled to JavaScript.
Currently the following ambient module is created
declare module api
{
interface MyDTO…11 votesSince this seems to be a popular option we’ve added a friendlier url to enable this option:
TypeScript module:
http://test.servicestack.net/types/typescriptDefinition file:
http://test.servicestack.net/types/typescript.dWe’ve also added an index containing links to all the supported languages at:
http://test.servicestack.net/types -
Self Host Response Compression
Add built-in response compression for Self Hosted applications.
As per https://forums.servicestack.net/t/http-response-compression-with-self-hosted/2098/4, there is only one way to enable compression on a Self Hosted SS application, add a http proxy like nginx (beta on Windows) in-front of SS.
This is not ideal as it increases the complexity of deployments and maintenance.
11 votesMultiple compression options are available from v4.5.8 including Client/Server Request Compression, new [CompressResponse] attribute to compress individual Service responses as well file compression for static files:
http://docs.servicestack.net/releases/v4.5.8#enhanced-compression-options
-
Allow debuggable Razor views
Microsoft's ASP.Net MVC allows users to set breakpoints in Razor views and debug them in Visual Studio. It would be splendid if ServiceStack could do the same
10 votesThanks for Uri Hendler for pointing it out, this has now been enabled from this commit: https://github.com/ServiceStack/ServiceStack/commit/e2825b9655cda28910b65bb306e82ceeb3b7e36a
You’ll be able to debug Razor Views in DebugMode of by explicitly setting RazorFormat.IncludeDebugInfo = true;
Available from v4.0.45+ that’s now on MyGet:
https://github.com/ServiceStack/ServiceStack/wiki/MyGet -
Allow LoadSelect to selectively load references
Akin to the EF "Include" method, enhance OrmLite's LoadSelect method to take an optional string array of references to load. For performance reasons, I don't always want to load all references to an object, particularly if its a central object like Account or User. As a coding efficiency measure, it'd be great to pass in a list of only the reference objects or properties that are relevant to the code snippet.
10 votesThis change is available from v4.0.37+ that’s now available on MyGet:
-
visual studio 2015 extension
Service Stack extension for visual studio does not work in visual studio 2015. please add this extension
9 votesServiceStackVS was updated to support VS 2015
-
Support PostgreSQL array parameters
Currently to send in an integer array as a parameter, I have to use format.
var ids = "ARRAY[1,2,3]";
var sql = "SELECT 1 = ANY[{0}]".Fmt(ids);
Db.Query<Model>(sql);I would rather use syntax like this:
var ids = new int[] {1, 2, 3};
var sql = "SELECT 1 = ANY(@ids)";
Db.Query<Model>(sql, new { ids });9 votesYou can find our improved PostgreSQL Array support at:
https://github.com/ServiceStack/ServiceStack.OrmLite#custom-sql-using-postgresql-arrays
-
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
-
Android Java Server Events Client
With Service Stack you can create very good backend, it would be nice to use all functions that it provides of Android, without Xamarin because Android is the most popular platform for mobile devices.
For a complete happiness is not enough to us now server events so we do request every 5 seconds to check for data.
Please make the ability to use server events on Android.
Thanks!
9 votesSupport for Java Server Events Client has been added in v4.5.8: http://docs.servicestack.net/releases/v4.5.8#java-server-events
Documentation is available at: http://docs.servicestack.net/java-server-events-client
An Android Java Chat App that makes use of Java Server Events is available at:
https://github.com/ServiceStackApps/AndroidJavaChat/
- Don't see your idea?