alkemio
alkemio copied to clipboard
Authorization Checking Service; cleanup
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 asGuidance Engine
,Matrix Adapter
) https://alkem.io/building-alkemio/challenges/technicaldesigns-9455/opportunities/robustservicemic-4127/collaboration/microservicesalke-9412