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).

  1. pagination

    Add support for pagination in queries with dynamodb.

    Actually, when you set "limit" in Query or Scan methods, the first elements are obtained. This could be the first page. but there is no method that enables you obtain the second or third page.

    Maybe, you can add a GetPage method, that returns a collection wrapper, inherited from Collection<T>. This wrapper could have the last evaluated key.

    Then, GetPage method, could accept a query or scan expression, a page size and the last evaluated key

    This could be very usefull for applications that needs paginate some results but don't need retrieve…

    31 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. Create a CognitoAuthFeature

    I'd like to be able to incorporate my Cognito User Pool as an authentication and role provider.

    30 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  3. Better request and exception logging

    As it exists now, request logging only logs valid requests.
    Request Logging:

    It does not log the request if the request is denied for Endpoint Restriction.
    It does not log the request if the request is denied because a route could not be matched (say a parameter was missing, etc).
    It does not log valid requests that are 'in process' - ones that request has been received, but response not sent yet.

    Essentially I would like to see every request sent to the service to be logged in some fashion.

    As far as exceptions go, you have some pretty nice…

    28 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. ExcludePropertyReferences for Data Contracts

    Currently ExcludePropertyReferences is expecting DeclaringTypeName.DataContractName. Its more helpful if the type is fully qualified.

    for example ; from below Json if we want to exclude :{"Officeaddress.houseaddress.city"}; .

    Json:
    //----------------------------------------------------------------------------
    {"id":"eb26f100-3758-4a19-806b-cd5af44f88a4","data":{"lname":"Talluri","firstname":"RamaNaresh","city":"Atlanta"},"collections":{"houseaddress":[{"id":"126e057d-e91b-42ec-b40d-bdba9c831d64","data":{"city":"CAToronto"}}],"officeaddress":[{"id":"5ff48bd4-bfe2-4721-adf1-3f5cd3b5c736","data":{"city":"USAlpharetta"},"collections":{"houseaddress":[{"id":"aad21efc-2768-4518-a505-71dc8b82ad40","data":{"city":"CA_Downtown"}}]}}]}}
    //----------------------------------------------------------------------------
    Model :
    //----------------------------------------------------------------------------
    [DataContract]

    public class AddressModel : BaseModel
    
    {
    [DataMember(Name = &quot;id&quot;)]
    public System.Guid Id
    {
    get;
    set;
    }

    [DataMember(Name = &quot;data&quot;)]
    public virtual BaseAddress Data
    {
    get;
    set;
    }

    [DataMember(Name = &quot;collections&quot;)]
    public virtual AddressCollection Collections
    {
    get;
    set;
    }
    }

    [DataContract]
    public class BaseAddress
    {

    [DataMember(Name = &quot;lname&quot;)]
    public string LastName
    {
    get;
    set;
    }
    [DataMember(Name = &quot;firstname&quot;)]
    public string FirstName
    {
    get;
    set; …

    27 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. Unions implementation for ORM Lite

    Hi

    In my application user can define multiple filters for specific type. I would like to somehow combine these queries in single one.

    SqlExpression<Notice> query1 = Db.From<Notice>(s=>s.param1 == 2);
    // ...queries are more complicated but result type is same
    SqlExpression<Notice> query2 = Db.From<Notice>(s=>s.param1 == 3 && s.param2 == 3);

    SqlExpression<Notice> unionAll = query1.UnionAll(query2);
    var result = Db.Select(unionAll);

    25 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. Add an LDAP Authentication Provider

    With .NET Core not initially having support for Windows Authentication using the System.Directory assemblies, I would like to request the addition of a new LDAP Authentication Provider based on the Novell.Directory.Ldap.NETStandard (https://github.com/dsbenghe/Novell.Directory.Ldap.NETStandard) project. This will allow developers to update to the latest ServiceStack while still providing a way to authenticate and authorize against a legacy/non-Azure Active Directory.

    24 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  7. Azure DocumentDB caching provider

    Support Azure DocumentDB as an available caching provider for Azure hosts.

    23 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  8. Two Factor Authentication Feature

    Two Factor Authentication is a pretty standard thing nowadays, it even comes baked into the typical ASP.NET Core Identity system. It would be nice if Service Stack had this feature as well. We are working on porting a legacy application from ASP.NET to ServiceStack and this is a requirement for government applications (some form of TFA).

    20 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. Add persistence support for Couchbase

    This shouldn't be too hard considering you seem to already support memcached..?

    20 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. AutoQuery Azure DocumentDB Data Source

    Azure DocumentDB should be added among existing AutoQuery data source.

    19 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  11. Add Emailing functionality to Verify Account, Request Password Reset

    It would be a good idea for users when using Service Stack Authentication to have functionality like Asp.net Identity to Verify their account, reset their password.

    18 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. support F# data type for serialization and deserialization

    This is specially for option type and discriminated unions. Currently it is not supported by Servicestack.Text. It would be great to have support for that.

    For

    type City = Abad | Pune

    [<CLIMutableAttribute>]
    type Person = {

    FirstName:string
    
    LastName: string option
    City : City

    }

    let p1 = {FirstName = "Foo"; LastName = Some "Bar"; City = Pune}

    let jss = new JsonStringSerializer()
    let p1Str = jss.SerializeToString(p1)

    It is serializing
    "{"FirstName":"Foo","LastName":{"Value":"Bar"},"City":{"Tag":1,"IsAbad":false,"IsPune":true}}"

    Where is should be
    "{"FirstName":"Foo","LastName":"Bar","City":"Pune"}"

    For reference https://github.com/Microsoft/fsharplu/wiki/fsharplu.json is library by MSR.

    It would be great to have this feature so DTO can be written in F# types. Currently…

    17 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  13. Response field filtering

    As per this example: http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#limiting-fields

    It would be useful to be able to restrict the returned fields provided by the response.

    Using a dot notation we could filter any nested properties as well. e.g.

    GET /customers/fields=id,name,address,address.postcode,address.line1

    16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  14. Add Navigation Properties To POCOs

    Entity Framework currently has navigation properties for foreign keys to other tables. Having this feature in OrmLite would be absolutely amazing.

    16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. Add Metrics.NET Adapter

    Add support for Metrics.NET: https://github.com/etishor/Metrics.NET

    They already have adapters for Nancy & Owin: https://github.com/etishor/Metrics.NET/tree/master/Src/Adapters

    I've also posted a question wheter the maintainer of Metrics.NET has any plan in doing it for ServiceStack in his repo: https://github.com/etishor/Metrics.NET/issues/101

    16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. Enhance ServiceStack Razor page lookup options

    I have a custom basic CMS I put together (work in progress) for some of my clients that allows developers to build CMS plugins that auto-install on application startup. The plugins can deploy both content pages and view pages (and use ServiceStack plugins and CMS plugin interfaces to configure, and add capabilities to the CMS at startup), similar to how NopCommerce and Orchard work.

    Currently, I have to rely on view pages to be unique, but I would like to be able to modify the lookup algorithm to take advantage of paths to the razor/markdown pages in the Views folder,…

    15 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  17. Include XML documentation files in the NuGet releases

    It seems no XML documentation is shipped with NuGet packages. This makes discovery hard, for example with Intellisense in Visual Studio, and is a shame given that the documentation is already written.

    http://stackoverflow.com/questions/19719607/how-can-i-get-servicestacks-xml-documentation-to-show-in-visual-studio

    13 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  18. Backend Hosting Environment

    When starting a new project one always has to build a backend environment. This includes managing users, user groups, user password changes, etc. etc. This requires a backend database and an admin front-end.

    Currently, we use the ASPNETZERO framework for this purpose. https://aspnetzero.com/ But the support, documentation, and performance leave a lot of room for improvement.

    We're looking to move away from ASPNETZERO as soon as we can find a replacement. Currently, their pricing starts at $1500 a year for updates and support. Something that I would gladly pay, except the documentation and support they provide is horrible.

    It would…

    13 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    7 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. Allow customization of ModelDefinition in ORM Lite

    I need to be able to customize the ModelDefinition after it is generated by ORM Lite. I propose adding a method to IOrmLiteDialectProvider named CustomizeModelDefinition(ModelDefinition modelDef). In the base dialect providers, there are multiple methods used to create ModelDefinitions. I propose that all of those calls be routed through one method in OrmLiteConfig.GetModelMetadata(this Type modelType). In that method, after the model is created, it would invoke DialectProvider.CustomizeModelDefinition(modelDef). I downloaded and implemented this and tested it. It didn't take long and worked well. I would be happy to share the code.

    12 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. okta

    Add OKTA as a built-in authentication provider.

    12 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feature Requests

Categories

Feedback and Knowledge Base