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).
33 results found
-
Allow customization of authentication route verbs
It is currently possible to override the default authentication routes, but only the path can be set. It would be useful to be able to override the allowed verbs. I'd like to be able to prevent GET /auth/credentials, by limiting the endpoint to POSTs only. I've not been able to find any other ways of doing this.
3 votesCan use existing API’s.
-
Possible performance problem in MarkdownFormat plugin
The MarkdownFormat plugin recursively searches all directories for *.md files during Registration (in the Register() method).
We have some web applications, where we have thousands of (sub-)directories, e.g. in a data folder. This means, that the Register() method may take up to 60 seconds to scan for *.md files, thus slowing down the application startup.
We have one customer who reported a startup-delay of several minutes.As far as I have seen (using ServiceStack 3.9.71), there is no way to restrict the folders being searched by the MarkdownFormat plugin.
In our case, the workaround was to simply disable the Markdown-Feature…
3 votesThis site is only for feature requests, please use StackOverflow for all v3 support questions. You can use MarkdownFormat.SkipPaths to skip scanning paths.
-
TechEmpower.com Benchmarks
ServiceStack does not look so good here, some are slow, others are failing entirely. I would be particularly interested in nginx and smart thread pool results being updated
2 votes -
Move all extension methods into separate namespace(s)
When writing code that uses ServiceStack, its fairly common to import the ServiceStack namespace (or others) via a using statement. Doing so will make all the extension methods within that namespace available.
I have experienced several cases where I have my own custom extension methods with a conflicting signature that I would like to use instead of the ServiceStack method. However there is no ideal way to disambiguate them currently. My only choices are:
1) Move code around into separate files so that I only import either the ServiceStack namespace or my namespace.
2) Refer to the proper method by…
1 voteThat’s the opposite of how ServiceStack is designed, hurts discoverability, increases the friction and support burden due to broken references and would result in unacceptable breaking changes. The only extension methods we plan on removing are those duplicated by newer versions of the .NET Framework.
-
Implement BCrypt or SCrypt for IHashProvider
ServiceStack/Auth/SaltedHash.cs appears to implement one round of a HashAlgorithm. This constrains the user to KeyedHashAlgorithm, MD5, RIPEMD160, SHA1, SHA256, SHA384, and SHA512, none of which are suitable for hashing passwords.
Would the ServiceStack project consider one of the existing BCrypt or SCrypt implementations in the GitHub community (for example viniciuschiele/Scrypt) or does it require that the library be professionally audited by penetration testers?
Would it accept a contribution given a valid CLA?
1 voteNo we can’t force any additional dependencies to the core ServiceStack.dll but you can use your own custom HashProvider by registering it in the IOC, e.g:
container.Register(c =>
new MyCustomHash()); -
Add documentation for the PublishMessage in the IRedisClient
In the IRedisClient version 4.0.0, there is a method with signature:
long PublishMessage(string toChannel, string message);There is no documentation in the code indicating what the return type of "long" indicates. Having to go online to look this up is rather tedious, and seems to be a common problem with the documentation.
1 voteMost IRedisClient APIs are a thin wrapper over Redis APIs where PublishMessage calls Redis PUBLISH command: https://redis.io/commands/publish
Which returns:
Integer reply: the number of clients that received the message. -
1 vote
TypeScript’s async/await works on existing ES6 promises so no changes is necessary to use async/await on JsonServiceClient async APIs.
-
Plugins inside multitenant environment
Hi!
We are building an asp.net mvc app with servicestack api. We have a plugin system which allows us dynamically load/unload plugins (Plugin is a custom servicestack plugin) as long as it is not multitenant solution there is no problems, if we wanted another version of plugin we install it during runtime and restart appdomain works like a charm. Now the question is is there a way to do this on multitenant situations where plugins must be loaded/unloaded on each request. To unload them maybe it is not that big of a problem, but how to deal when we have…
1 vote -
Support EnumAsInt attribute in ServiceStack.Text JSON serializer
EnumAsInt was added as an alternative to Flags in OrmLite. This would be nice to have in Text too.
1 voteIt’s a feature that it lets you control OrmLite independently of the serializers, otherwise it’s just a duplicate/redundant version of [Flags] which you should use instead if you want it on both.
-
Upload Symbols for v4.0.48 To SymbolSource
It looks like the symbols for the 4.0.48 didn't get uploaded to symbolsource.
1 voteSymbolSource has been broken for months, we’re publishing nuget + symbol packages on GitHub until its fixed:
-
Release separate nuget packages for netcore.
Hello. I cannot to use ServiceStack.Api.Swagger in VS2017 because it automagically selects net461 version of the library. This can be a quite generic problem for packages containing dll for several platforms. VS2017 project format disallows me to use hint path (it uses target framework attribute) to explicitly select library. Thus, if your net461 exe app refers to netstandard project that uses Servicestack.Core you cannot refer any "mixed" nuget from exe. Please fix it for swagger. Thank you for consideration.
1 voteAll the available .NET Core only NuGet packages are listed on: http://docs.servicestack.net/templates-corefx#reference-core-packages
Swagger is not included because it implements the older and deprecated Swagger 1.2 spec. Reference ServiceStack.Api.OpenApi.Core NuGet package instead to reference the newer Swagger 2.0 version.
If for some reason you need to use the older version you can build it from https://github.com/ServiceStack/ServiceStack/tree/master/src/ServiceStack.Api.Swagger
-
app.UseAuthorization() on .NET Core WebApi 2.1 built on .NET Framework.
I was referencing your topic: https://docs.servicestack.net/templates-corefx and I am trying to get the [Authroize] tag working on .NET Core 2.1 Web API project built on .NET Framework. There is no IAppBuilder.UseAuthorization(). I wrote my own JWT custom auth handler and tried the following in the Startup:
services.AddAuthentication("Basic")
.AddScheme<BasicAuthenticationOptions, EdcAuthenticationHandler>("Basic", null);services.AddAuthorization();
I also have
app.UseAuthentication();but, again, there is no app.UseAuthorization()
I want to be able to add [Authorize] attributes (with roles as well) and be able to access the User object inside my controller methods.
Any insight would be appreciated.
1 voteIt sounds like you want to use create a Web API project using ASP.NET Core Identity Auth.
ServiceStack is its own entirely different software stack that has its own Auth Provider implementation & [Authenticate] attribute:
https://docs.servicestack.net/authentication-and-authorization
and its own JWT Provider:
https://docs.servicestack.net/jwt-authprovider
We don’t support integration with ASP.NET Identity Auth in .NET Framework projects only in .NET Core projects:
https://docs.servicestack.net/authentication-identity-aspnet -
Seperate Funq into it's own package
I like using the funq ioc container. The original container doesn't have the auto resolve stuff, and seems to be abandoned (or finished*).
It would be cool to use just the servicestack.ioc container in projects without bringing in the whole of servicestack.
1 voteExtracting built-in functionality creates un-necessary friction and increases the number dependencies and moving parts, which we’re actively against.
- Don't see your idea?