Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Page Properties


Submitted

 

Approved
Status

Status
titleDRAFT

Impact

Status
titleLOW

Arch Ticket

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyARCH-99

Prod ticket

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyUXPROD-36


Glossary


Executive Summary

...

Non-Functional Requirements

Configurability:

  • Storage for pictures should be configurable (e.g. database, S3-like storage)

Security: 

  1. Patron Profile Photos should be accessed by permissioned staff via the Users App.
  2. Authorized library staff can view and manage (upload, view, update, delete) photos for patron accounts.

Encryption:

  • Patron photos should be securely stored with proper encryption and access controls to protect sensitive information.

Assumptions

Solution Options

...

  1. External sources for profile pictures should have public access. No support for authentication/authorization mechanism is planned for such picture sources.
  2. No migration is required from previous sources of profile pictures

Target Architecture

The target solution implementation consists of the following:

  • Storage abstraction layer to allow configurability through environment variables. Storage interface must be implemented with read and write methods. Implementations in spring should be configured through @ConditionalOnProperty 
  • Following Object storage should be supported:
    • AWS S3 (for cloud installations)
    • Minio (for on-premise environments)
  • For database storage files should be encrypted with AES-256 algorithm, and object storage should support native encryption (minio, s3)
  • Thumbnails generation must be done during the upload process and persisted in the same storage as the pictures themselves
  • If the profile picture is provided as an external link, then the file should be uploaded and treated the same way as a regular file upload

Sequence diagram of profile picture upload:

Image Added

Open Questions