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
-
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.
-
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 -
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 -
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:
-
Refactor to use HttpRequestBase and HttpResponseBase
Much of the existing code implements IHttpRequest and IHttpResponse interfaces and writes complete code for implementing these. That was necessary before the redesign in 4.5 implemented mockable versions of the non-inheritable old HttpResponse classes.
I think it can reduce the amount of code in SS and enable use to not need to use global items like HttpContext.Current.Request which results in - non-testable controllers.
The change to help the above situation I implemented grew out of scope, but thought it worthwhile to explore for a later version.
1 voteServiceStack’s ASP.NET wrapper classes now depend on HttpContextBase, HttpRequestBase and HttpResponseBase.
Details on latest v4 update:
https://plus.google.com/106787359118990653189/posts/KoUyRbmYoPJ -
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
-
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
-
AuthFeature().ServiceRoutes - Option to hide route /Auth
Add a property to Remove the /Auth route, in favor of only /Authenticate instead.
Currently, I've added the following to hide /Auth routes.
// This is a way to remove the /Auth route and leave /Authorize instead. We don't need 2 ServiceRoutes = new Dictionary<Type, string[]> {{ typeof(AuthenticateService), new[] { "/" + localize(LocalizedStrings.Authenticate), "/" + localize(LocalizedStrings.Authenticate) + "/{provider}" }}},
Maybe there is a better way? Or is this bad?
1 voteLike most plugins you can configure them when registering them, you can change it to only host Authenticate Services on `/authenticate` route with:
var authFeature = new AuthFeature(…);
authFeature.ServiceRoutes[typeof (AuthenticateService)] = new[] {
“/authenticate”,
“/authenticate/{provider}”,
};Plugins.Add(authFeature);
-
Service Stack OrmLite 4.0.34 does not return result set for async version
4.0.34 version of ormlite gives null for an async call
for example// user1 is not null in this case
var user1 = db.Single(db.From<Users>().Where(x => x.UserPartyId == userPartyId).Select());// user2 is null in this case
var user2 = await db.SingleAsync(db.From<Users>().Where(x => x.UserPartyId == userPartyId).Select());1 voteThis was reported and fixed in: https://github.com/ServiceStack/ServiceStack.OrmLite/pull/426
the fix is available in v4.0.35 that’s now on MyGet:
https://github.com/ServiceStack/ServiceStack/wiki/MyGetAlso please post future issues in: https://github.com/ServiceStack/Issues
This site only for enhancements / feature requests.
-
Ability to override OrmLiteCacheClient to change CacheEntry table name
However it would be best to accomplish, it would be rad to be able to have our own Alias for the CacheEntry object inside OrmLiteCacheClient. We are sharing a database between multiple web apps, but don't want to share the same CacheEntry table.
1 voteThe CacheEntry table can be replaced with
OrmLiteCacheClient generic class, an example of this is in v4.5.6: http://docs.servicestack.net/releases/v4.5.6#sql-server-features -
enum information in the metadata page
according to this http://stackoverflow.com/questions/22072109/is-there-a-way-to-have-a-servicestack-metadata-page-show-all-the-options-for-an
it's not possible to have enum information show up in the metadata page, but only in swagger .. it would be nice to have such allowed enum values in metadata page as well.
1 vote -
WebServiceException ToString Overrride
Hi, currently WebServiceException does not override to string , so that the base ToString() implementation which returns quite "unusefull" info
I suggest to override the ToString method of WebServiceException
to add info such as errorCode, errorMessage, StatusCode, .Responsestatus.Errors .. etc ..That would turn usefull, expecially when logging, since most logging mechanism dump the ex.ToString() ..
1 vote`WebServiceException.ToString()` was customized in this commit: https://github.com/ServiceStack/ServiceStack/commit/ee309c6c38c873cb11ee176aff59362ba19c8fcb
This change is available from v4.0.51 that’s now available on MyGet.
-
PocoDynamo - Support Generic Types
We're interested in purchasing licenses for ServiceStack. Particularly, we're interested in using the ServiceStack.Aws component. However, while evaluating it, we noticed that the PocoDynamo implementation fails to support generic types.
Currently, if a table is registered using a generic type (i.e. db.RegisterTable<GenericPoco<Poco>()) , it fails because the name used for the table does not abide by DynamoDB's rules for Table Name.
I have local modifications of the ServiceStack.Aws source that allows for generic types definitions to be registered, including tests showing it working. I can submit this code to somebody on your team if you like.
1 voteThis PR was merged, thx!
-
Why 'Fmt'?
Why don't you use plain 'Format' instead?
1 vote‘fmt’ is a widely used abbreviation to mean format, as this is something that can used a lot we prefer its most abbreviated form to reduce the noise. If you prefer a longer name you can use the equivalent `.FormatWith()` extension method however both these APIs are effectively deprecated with C# 6’s new string interpolation.
Please ask questions in Customer Forums or StackOverflow: https://forums.servicestack.net
-
ServiceStack.Razor Reference is System.Web.Razor, Version=2.0.0.0, It is older version
ServiceStack.Razor
<Reference Include="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\..\lib\System.Web.Razor.dll</HintPath> </Reference>
replace to(use newest lib):
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>....\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
<Private>True</Private>
</Reference>1 voteWe’re now referencing the official System.Web.Razor package from v4.5.0
-
new feature in c# add service stack reference
I'd like the possibility to specify if types (all or specific ones) should be generated as internal and not as public
such as
InternalTypes: ... list of typesoften I get collision among types that are in a shared library , but that do "leak" through a service request / response DTO .
1 voteWe’ve just added support for this with the new “MakeInternal” option in C# Add ServiceStack Reference that’s available from v4.0.61 that’s now available on MyGet: https://github.com/ServiceStack/ServiceStack/wiki/MyGet
-
Add TypeScript reference for WebStorm
ServiceStack already has a plugin for IntelliJ Idea to generate typed requests, and for Visual Studio to generate TypeScript models. It would be nice to combine both of them in a WebStorm support for TypeScript models generation from a ServiceStack service.
1 vote -
1 vote
The new servicestack-cli npm scripts makes it super easy to add/update service references from the command-line: https://github.com/ServiceStack/servicestack-cli
-
Session data Persistance on login
I am building a webshop/ecommerce platform with:
* an extension on CredentialsAuthProvider.
* And an extension on the AuthUserSession withon login want to persist the CartId. but i found the source code does reset the session on login. But this part is not overrideable.
i made a pull request. please check it, adjust it to the way you work.
https://github.com/ServiceStack/ServiceStack/pull/10671 votePR was merged, thx
- Don't see your idea?