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
-
EnableResponseTracking under CsvRequestLogger
CsvRequestLogger has a boolean 'EnableResponseTracking' property; it works perfect. But, sometimes the response data is a file and it makes the log file huge and difficult to read. It would be nice to make the property a lambda(Func) expression so that the user can decide when to include the response data.
3 votesI've just added support for this in this commit:
https://github.com/ServiceStack/ServiceStack/commit/167d66340544c51a83bc00ec62054bfb975569aa
This change is available from v6.1.1 that's now available on MyGet:
https://docs.servicestack.net/myget
FYI we're also working on a built-in Request Logger UI we hope you'll find useful at: /admin-ui/logging (you'll need the "Admin" role to access it)
We're also moving feature requests to our new GitHub Discussions site at:
-
Add support for Dart Null Safety
Add Dart Null Safety support to generated Dart DTOs & servicestack dart client library.
5 votesThis is now ready to use by downloading the latest ServiceStack v5.11.1 on MyGet (https://docs.servicestack.net/myget).
If you previously had v5.11.1 installed you’ll need to clear your NuGet cache and restoring:
$ nuget locals all -clear
This will generate null safe DTOs that need to be used with v2+ of servicestack dart library:
dependencies:
servicestack: ^2.0.0 -
Python as a supported Native Type
The addition of Python as a Native Type would make it a lot easier to integrate ServiceStack and Python.
3 votesPython is now natively supported from v5.12+
https://docs.servicestack.net/python-add-servicestack-referenceIncluding support for generating Python Jupyter Notebooks:
https://docs.servicestack.net/jupyter-notebooks-python -
Make servicestack compatible with AWS lambda
As it stands currently serverless is the future of application development . With services like serverless.com and the benefit these being to developers in terms of low / no touch deployments , massive cost savings and infinite scalability, it's clear that serverless is here to stay.
Many companies like us - Moosend.com - have invested years in creating microservices on Servicestack. Typically the service platform can't dictate the infrastructure architecture. Therefore now that we have decided to move a lot of our services over to AWS and Lambda we face the dilemma of having to pick between lambda and servicestack…
1 voteOur aws-lambda template is a pre-configured template of ServiceStack for AWS Lambda
https://github.com/NetCoreTemplates/aws-lambdaA customizable project template can be created from out Getting Started page:
https://servicestack.net/start -
Add Sign in with Apple auth provider
Add Sign in with Apple auth provider support for servicestack. Same way as there is facebook, google and other providers
3 votesThe AppleAuthProvider from the ServiceStack.Extensions .NET Core 3.1 NuGet package is now available from v5.9.3+ that’s now available on MyGet (https://docs.servicestack.net/myget)
An example project + docs is available from:
https://github.com/NetCoreApps/AppleSignIn -
Expose cancellable async methods in clients through an interface
IHttpRestClientAsync exposes various method-specific async methods as well as SendAsync.
SendAsync has a cancellation token parameter in its signature:
Task<TResponse> SendAsync<TResponse>(string httpMethod, string absoluteUrl, object request, CancellationToken token = default);
while other methods (GetAsync, PostAsync etc) don't
Implementations of IHttpRestClientAsync (like JsonHttpClient) do have the methods which support then token:
public Task<TResponse> GetAsync<TResponse>(IReturn<TResponse> requestDto, CancellationToken token) => SendAsync<TResponse>(HttpMethods.Get, ResolveTypedUrl(HttpMethods.Get, requestDto), null, token);
and in fact all the method-specific implementations just call SendAsync under the hood.
Without token-aware methods exposed through an interface I cannot use them in a depencency-injected IServiceClient and its derivatives. They are only usable if…
1 voteYeah the clients async interfaces weren’t ideal, it started from the initial impl of the .NET WebRequest clients being implemented using the older APM model which didn’t use them. Other implementations just kept the same API.
Anyway since it’s a source-compatible change (will require a rebuild after upgrade), I’ve added an optional CancellationToken to all Async Service Client APIs in this commit:
https://github.com/ServiceStack/ServiceStack/commit/dc6a281e80987b522c218bc82ce9cfefb111ea86
This change is now available from v5.8.1 that’s now available on MyGet:
-
PHP Service Clients and DTO generation
Our clients wish to consume our services via PHP.
ServiceStack support for PHP via Service Clients, DTO generation and possibly 'Add Service Reference' would be great!
3 votesTyped Language support for PHP is available via gRPC which provides a similar dev workflow to Add ServiceStack Reference, see:
https://todoworld.servicestack.net/#php
Although PHP happens to be the ugliest language to generate typed clients for, nowhere near as nice as its Python and Ruby cousins.
-
mix alias <name> <url>
Would be nice to specify easy to remember alias for custom gist.
1 voteLocal aliases are now implemented, examples at:
https://sharpscript.net/sharp-apps/app-index#app-local-aliases
In addition The global mix directory, i.e. provides short alias + description & tags to help with discovery.
https://gist.github.com/gistlyn/9b32b03f207a191099137429051ebde8
Please leave a comment on that gist with the alias, link, description, tags you want added.
-
Add SqlListLazy to OrmLite
When using raw SQL, due to having complex CTE queries, that does not start with
SELECT
but rather withWITH
, theSqlList
method loads everything in one go.
This is unfortunate when the result set is large, and we would like to process one row at a time, and avoid the memory overhead, and waiting time, of getting the whole result set at once.The
SelectLazy
would have solved this problem, if it had supported any arbitrary SQL, but it does not.
According to the documentationSelectLazy
can do this if the SQL starts withSELECT
however, for our…1 voteThis should now be supported using the existing `SelectLazy` APIs from v5.7.1+ that’s now available on MyGet.
-
Blazor support
Blazor (www.blazor.net) seems to be the next revolution in web programming, where C# can be used instead of Javascript.
However, WebAssembly is in essence still Javascript, and thus it seems that the C# client for Servicestack cannot be used:
https://stackoverflow.com/questions/56386712/servicestack-adding-blazor-support
I would suggest looking into supporting Blazor client-side programming with ServiceStack, at least a C# client that works with the ServiceStack cli (https://docs.servicestack.net/csharp-client).
Regards
67 votesFrom v6 ServiceStack now has first-class for Blazor WASM, checkout the release notes:
https://docs.servicestack.net/releases/v6#blazor-webassembly
The official docs for Blazor WASM is now at:
-
Possibility to download previous version of ServiceStackVS extension
Since latest update of ServiceStackVS seems to introduce a bug in VS 2015, the option "Add ServiceStack Reference" is no longer appearing in project context menu. In addition, the ability to update ServiceStack References is broken too.
Where can I download previous version of this extension ?
4 votesDownload of previous version available from:
https://github.com/ServiceStack/Issues/issues/673#issuecomment-493648089
-
25 votes
We’re going to support Server Events for alt languages through ServiceStack’s new gRPC support which has a dedicated “Server Stream” rpc channel that’s specifically designed for persisten server communications like Server Events.
There’s a Dart Server Events example in the docs:
https://docs.servicestack.net/grpc#server-stream-grpc-services
https://docs.servicestack.net/grpc-dartMay look at improving the development UX in future with an “Adapter” of the gRPC stream to provide a declarative UX for registering handlers.
-
Update FluentValidation to the latest version
Per https://github.com/JeremySkinner/FluentValidation the latest version is 8.2.3 and it has numerous updates.
3 votesServiceStack has been upgraded to the latest version of FluentValidation v8.2.3 in this commit:
https://github.com/ServiceStack/ServiceStack/commit/6e40ce8fa1fd3ea6a038db48a0e1ff5fe9a318c0
This is now available from v5.5.1 that’s now on MyGet: https://docs.servicestack.net/myget
-
Support for Visual Studio 2019
VS2019 will be released tomorrow, but the current VSIX is not compatible with it. Aside from bumping the supported versions, it should also be updated to an AsyncPackage.
6 votesThe latest release of ServiceStackVS v2.0 now supports VS2019, quick preview at:
-
OrmLite.PostgreSQL support for HStore types (Dictionary)
Support of HStores when using Dictionary<string,string> or as a new field attribute.
HStores (key values) are very good in certain scenarios (logging/auditing) and complex parsing is easier to do in .NET than in SQL.
Custom SQL that SELECT's data is easy, but not easy to insert/save hstore in custom sql.
Also Npgsql already supports them.
More info here:
https://forums.servicestack.net/t/cannot-insert-idictionary-string-string-into-hstore-column/68943 votesHstore support has been added to OrmLite in the last v5.5 release:
-
mongodb / nosql support
For a few of us, we are constrained with having to use mongodb or other nosql databases instead of an RDBMS.
It would be good if we have a some sort of native mongodb support or at least a few examples/patterns of how to go about a full mongodb/servicestack solution. I understand that we have examples of redis usage but, we do not have authentication and other similar aspects as examples.
Love the tooling still! yet hate to work with anything else now (you spoiled us!) that I have to work with mongodb.
Cheers!
-Simo18 votesIn the latest v5.6 Release the MongoDB Auth Provider now supports .NET Core and can be easily configured into an existing ASP .NET Core App using the new `mix` dotnet tool feature:
https://docs.servicestack.net/releases/v5.6#mix-in-features-into-aspnet-core-apps
-
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 votesOur Modular Startup makes it easier to configure features which our Start page takes advantage to create customizable starting project templates:
https://servicestack.net/startWe’ve also been busy this year creating free videos on YouTube exploring different features of ServiceStack, with 25+ new videos created this year and counting.
Please subscribe to your YouTube channel to get updates as they’re published:
https://www.youtube.com/channel/UC0kXKGVU4NHcwNdDdRiAJSA/videos
We only intend to create/publish free videos on YouTube ourselves (i.e. not paid sites like Pluralsight), feel free to comment on videos with any questions or feedback.
-
Add ".dll" to AllowFileExtension, and add dll => "application/octet-stream" MimeTypes
The new WebAssembly feature being added to mainstream browsers will download .dll files to the browser. To make it possible to serve static .dll fiiles by default, please add .dll files as mimeType application/octet-stream, and allow these types of files by default.
1 voteThis is now added by default from v5.1.1 on MyGet
-
Add ".wasm" to AllowFileExtensions and associate MimeType "application/wasm"
WebAssembly is a new binary format for static files. The official site has more info. https://webassembly.org/
Google for webassembly mimetype w3c will return many results showing the addition of this file extension and Mimetype in other mainstream servers.
1 votewasm has been added to ServiceStack from v5.1.1 which is now available on MyGet:
http://docs.servicestack.net/myget -
first install Method not found: 'Void ServiceStack.JS.Configure()'.
Line 7: protected void Application_Start(object sender, EventArgs e)
Line 8: {
Line 9: new AppHost().Init();
Line 10:
Line 11: }1 voteYou likely have dirty versions installed. Ensure all dependencies are referencing the same version of ServiceStack, clean your NuGet cache (e.g. `nuget locals all -clear`) then restore.
Please submit future issues to https://github.com/ServiceStack/Issues
- Don't see your idea?