What's changed
- We’ve made a database update to add Space Name as a filtered column.
- Changed calling methods for BuildingKPI.
What's fixed or updated
Optimisation of Platform Operations:
- Optimised several periodic web jobs that run in the system.
- Made general optimisations within Spaces web job to optimise several areas including, getting list of states, the tasks states associated to spaces, etc.
- Optimised the platforms’ ability to make outbound API calls by using the ConfigureAwait(false) setting.
- Made several changes around the Task.Run process to improve startup time of web jobs.
- Added options to stagger the start time of the processing cycle and changed the default offset time, to spread the load of starting multiple tasks.
API Call Optimisations:
- Optimised API calls in several areas of the platform, including:
- Get listing of nodes in building.
- Check in action.
- Cancelling a booking action.
- Getting “active” booking call.
- Cache refresh requests.
- Reduced the use of /v1/<node>/UserPreferences call.
- Reduced the use of /v1/<node>/Notifications/active call.
- Fixed the My Bookings call to return the _CreatedBy or Booking_Owner fields.
- Fixed the booking POST call to check if the space is disabled or not.
Database and Caching Improvements:
- Optimised database structure by applying Primary Key/Partition Key at the NodeId level.
- Implemented the replacement of the cache refresh for the Task/Space states controller to cache this locally.
- We now cache Task/Spaces states locally on the browser, rather than making separate ad-hoc calls to the server.
- Optimised caching the nodes’ structure.
- /v1/Service/RefreshCache – Now correctly refreshes all BookingPolicies and other relevant caches with the latest data.
Backend Changes for Experience Improvements:
- Fixed formatting for the Space cannot be booked error indicating the existing space name.
- Updated the UpdateParameter controller to be more performant.
- For the UpdateParameter parameters controller, we replaced old parameter cache refresh with the repository cache refresh.
- Fixed logic causing performances issues for Task/Space states where we changed static lists to use concurrent bag and changed startup spaces lock release to use the FireAndForget mode.
Security and Access Control Fixes:
- Restricted creation or update of the booking duration shorter than 5 mins regardless of security rights.
- Enforced a minimum booking time of 5 minutes, regardless of booking policy settings to ensure the spaces are all handled equally.
- Fixed access permission error when making a recurring booking.
Booking System Enhancements:
- Reduced the requirements of Roamer, to make multiple calls to /v1/<node>/UserPreferences to reduce load on the server.
- Adjusted Booking horizon for Building Working Hours for Start (used on PUT or POST /v2/bookings).
- Made optimisations when cancelling a booking.
- Fixed occurrence where it was possible to make bookings for the same space at the same time.
- Resolved an issue where, when under load it was possible to make multiple bookings for the same space and time.
- Fixed returning a booking for an incorrect building.
- Search query optimisations by validating booking policies before carrying out search.
Error Handling and Bug Fixes:
- Fixed outside working hours for different time zones.
- When requesting spaceszone with a {nodeid} of 0, it now returns the 404 error instead of 403.
- Action Call now enables and disables the spaces as expected.
- Changed building level spaces to get calls to use static spaces.
- Made performance improvements for the Booking parties queries.
- Improved performance for the Get active notifications without filter/select options used.
- Ensured that all requests to events use at least building level node id, to reduce the amount of information that is processed.
Miscellaneous Updates:
- Replaced methods to get parent node and changed code wherever this was used, to reduce the impact on the database server.
- Optimised the action API method for check in.
- Resolved several timeout issues for occupancy data.
- Booking parties now use the booking node ID when the booking is cancelled, checked into, or checked out of.
- We now retry calling the external identity providers if it does not load correctly.
- Adding more visitors after confirming a booking no longer shows errors.
- Task types don’t have duplicates in the list any more.
- Booking Update sometimes took a few attempts to succeed. It is fixed now.
- Requesting bookings for an incorrect building was previously possible.
- Added the missing method for Vecos lockers.
- Created a way to restart Internal IBSS API background service in case it stops.
- Removed error from being shown if two separate users select the same date/time when amending bookings.
- Rewrote clearing spaces at midnight.
- Improved the transition precision for completed bookings.
- Added the 'Booking_Early_Checkin' and 'Meta_Auto_Cancel_Thld_Min' fields for bookings.
- Fixed proper booking transitioning through stages.
- Added API throttling for order processing.
Known issue
If two people try to move their existing meetings to the same time period, both will fail.