Document Service Feature Requests

This page is used to track feature requests taken from conversations, critiques and onboarding conversations.

[UPDATE 2022-03-21] Following discussion with other teams, feature priorities for next iteration of document service have been identified.

V2 Feature Requests (in no particular order)

  1. Review of the document service endpoints

    1. Alignment with best practices for performance of upload and ease-of-use

    2. Clear stipulation of document lifecycle (hot → cold → archive); possibly even fields to set the lifecycle (if teams see value)

    3. Our team noticed performance issues when uploading files, basically the client blazor app on cloud was uploading the file to server, then server uploading to document service api, resulting in upload times 2x the value they should be. We found Microsoft guidance on how to implement client app going directly to api without uploading to server but were not able to get working perhaps because the api does not use IFormFile interface: https://docs.microsoft.com/en-us/aspnet/core/blazor/file-uploads?view=aspnetcore-5.0&pivots=server

  2. Implementation of custom metadata field

    1. Provide users with a json field to store program-specific data that would relate to the file being uploaded

    2. Implementation of OData for efficient querying. Example: Add endpoint for querying by documentTypes fields ex documentTypes.Includes(t => t.Id == “ServiceRequestId” && “t.Value == “12345).

  3. Event based pub/sub communication

    1. Integration with MAACE service bus

    2. Design specs for topics and event/message content

  4. Preview functionality for images

    1. Endpoint can return thumbnail for images

Future Features Under Consideration (in no particular order)

  1. Store files by line of business
    This feature would include a blob container for every line of business that could be RBAC controlled for access.

  2. Improved integration with AAD
    Currently posting a file asks for user information, this information could be extracted from request headers.

  3. File transience
    When uploading a file, a transience setting would specify how long to retain the file for. At time of expiry, the file is removed from the service completely.

  4. Mark a file for removal
    Condition: Once integration with enterprise storage is in place.
    When uploading a file, a field is provided to specify whether the file should be removed from document service once uploaded to enterprise storage.

  5. Tool to onboard new lines of business onto the service
    Think PowerApp that would automate onboarding for a new line of business (ie create new blob container and setup AAD permissions)

  6. Preview functionality for videos

    1. Endpoint can return low-res video