-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Issues:
A number of upgrades to the booking system are desirable to increase improve user experience and share admin duties.
a/ advance booking
b/ cancel booking
c/ allow customisable UI sets depending on which pool/group (extension: per user/service account)
d/ allow flexible/customisable booking periods with per-pool/group (extension: per user/service account) min & maximum limits
e/ allow an experiment to be booked from multiple different pools/groups
f/ develop tools to allow updating the booking system while experiments are still booked out (current practice is all-in-one upload of a new manifest) and/or separate the administration of experimental existence from its pool/group assignments if required to simplify this
g/ provide separate admin roles for experiment existence configuration, experiment pool/group assignment, and pool/group properties, so that tasks such as taking specific experiments away from public view to be used for development, can be done by developers, without risking them being able to delete e.g. all other experiments. So, per-experiment administration control.
Impact:
(a),(b) require moving from JWT to sessions, and from in-memory-single-node booking records to persistent storage (with high availability)
(c)-(f) suggest separate micro-services for different aspects of the booking process, e.g. one service to manage the kit being booked out or not, and another service to manage how a certain set of users go about booking the kit out and obtaining a UI (this again might split into different services to ease configuration - although then discovery/aggregration of booking policies/services is required)
(g) relates to (c)-(f) but adds an additional layer of granularity - for this resource you can do [X]. Currently,
Plans
We can look at elements of (c)-(f) for the current revision of the system (v1 release project), and possibly even (a), subject to developing persistent identity management that is not reliant on the client-side cache which can be refreshed at any time (thus bookings would be lost). Options include sending emails with short confirmation codes (e.g. access booking with last name and 6-char code like a flight booking) However, including cancellation of already-started bookings, i.e. moving to sessions is a bigger task.
From here?
Comment below as ideas/plans evolve to tackle this. It may make sense to delay v1 release until sessions are adopted.