alkemio icon indicating copy to clipboard operation
alkemio copied to clipboard

Authorization Checking Service; cleanup

Open SimoneZaza opened this issue 10 months ago • 0 comments

Description

We need an Authorization (Checking) Service that is horizontally scalable and stateless, so that it can enable extracting other microservices from the Server.

Goal

We have enabled FileService to be extracted from the Alkemio Server.

Hypothesis

Having more, smaller services will improve scalability and will result in deployments of smaller changes, thus enabling quicker deployments with lesser risk in production.

Must have scope

  • Authorization (Engine) Library, re-used between a service and the server
  • Authorization Service usable in 3rd party services, e.g. FileService
  • Authorization Library used in the Alkemio Server
  • Horizontally scalable
  • DTOs, Typings re-used
  • The service should provide an endpoint isAccessGranted(authPolicyID, agentID, additionalRules)

Plus

  • [ ] Existing functionality for whiteboard collaboration + file serving moved out of the server

Out-of-scope for v1

  • Caching
  • Messaging bus / patterns

Stakeholders

Neil Smyth, Valentin Yanakiev, Svetoslav Petkov, Alkemio Team

Implementation Details

  • Authorization Service to use the existing messaging infrastructure (for its first version)
  • Usage of MessagePattern (same as Guidance Engine, Matrix Adapter) https://alkem.io/building-alkemio/challenges/technicaldesigns-9455/opportunities/robustservicemic-4127/collaboration/microservicesalke-9412

SimoneZaza avatar Apr 15 '24 13:04 SimoneZaza