- Explicitly set gateway events websocket url with the protocol, host and port (older browser versions consider the URL to be invalid otherwise).
- Release version of VISA 3.X: tag alignment of visa-api-server, visa-web, visa-accounts and visa-jupyter-proxy
- Fix close of on-screen keyboard
- FIX #5: Improve the admin sessions grid view: stop the thumbnails from flashing when a refresh is made
- FIX #4: Set tab titles for admin dashboard and users pages
- FIX #3: Fix handling of change of guacamole tunnel states: stops client becoming stuck in a "connecting" page
- Increase guacamole unstable threshold to 10s (recovery from unstable state unclear)
- Event channel ping messages initiated from the server: client replies on ping reception (avoid hidden tabs from producing unreliable timer events)
- Increase gateway events socket keep-alive messages
- Handle cases where cloud provider has been removed but images, flavours and security groups are still configured
- Allow for default cloud provider to be disabled (use only configured providers from the database)
- Force user to log in when oidc refresh is longer valid: token expired
- Simplify models (api performance improvements)
- Remove preql and convert to simple filters
- Remove request for cloud instances in admin views to improve page loading
- Remove notification polling and handle notification websocket events
- Remove polling of instance states and instance list: use websocket events
- Automatically reconnect EventGateway on disconnect. Add ping-pong keep-alive events.
- Update all event names
- Add EventGateway websocket, created when valid account loaded, for all events and notifications (other than remote desktop)
- Send thumbnails using the REST API
- Use standard websocket for WebX tunnel (pure binary can now be used for WebX)
- Use official guacamole-common-js on a standard websocket (remove socket.io for remote desktop)
- Adapt to Quarkus server: change of graphql endpoint
- Bug fix: Handle print dialog opening automatically on Firefox
- Improvement: Show error dialog when opening PDF documents is not enabled for browsers
- Bug fix: Do not attempt visa print connection if protocol is not available.
- Integrate visa-print to enable printing to a local printer from the remote desktop
- Update to Angular 16
- Integrate ngx-fs-client, show Files menu on remote desktop when instance supports VISAFS
- Close modals with escape/click on desktop
- Allow security groups to be filtered by flavour
- Add version to image name when creating an instance
- Code refactoring and linting
- Update to Angular 15 and all packages
- Update to Node 20
- Soft deletion of plans
- User groups: allow groups of users to be created by admin. Groups work the same as roles and can be used in the management of flavours and security groups.
- Bug fix: Admin flavours page failed when flavour deleted from OpenStack
- Modify admin interface to allow instances to be immortal
- Modify admin interfaces to associate roles to flavours
- Show IP address of instances in the homepage for admin users
- Make WebX available to users when the image has been associated to the WEBX protocol (and it is running)
- Add WebX remote desktop client
- Abstraction of remote desktop mechanism: all guacamole access through subclasses and adapters
- Only show the members select is the server returns a list with at least one member.
- Change message when an account has a quota of 0 (waiting approval)
- Fix bug that stopped someone without experiments from seeing open data
- Ensure dates in experiment search dialog are always valid
- Allow reboot and shutdown when instance in starting state
- Add option to search for open data (during instance creation)
- Handle partially_active state in client (remote desktop available but jupyter not yet available)
- If experiment or proposal has a URL then make it clickable when searching for experiments and on instance creation page
- Examine instances/new request params for "dois": auto select associated proposals or experiments
- Allows users to specify that an instance can be accessed by other members when they are not connected
- Update dashboard for multiple cloud providers
- Allow cloning of cloud images, flavours, providers and plans
- Update admin UIs to allow configuration of multiple cloud providers
- Manager multiple cloud providers
- Fix admin sessions URL
- Add data rate to stats of an instance
- Show instance deletion warning 48hrs in advance rather than 24hrs.
- Add admin submenu 'Compute' for instances and sessions and a new instance extension request admin UI
- Add button to request instance lifetime extension and forms to provide request information
- Redo layout of instance view in homepage
- Add Admin page for individual users (can edit role and quota)
- Admin management of GUEST users (and included an expiration date)
- All GUEST users to create instances
- Add Admin management of Application Credentials
- Check for null user affiliations in admin UIs
- Show user affiliation in admin UIs
- Allow re-use of system notifications (enable/disable button)
- Use a UID rather than ID for instance URLs (eg remote desktop)
- Fix bug on JupyterLab not taking up full window height
- Fix bug on tab/enter changing page while using remote desktop
- Fixed apollo memory cache issue due to bug: apollographql/apollo-client#8566
- Only require HTTPS if issuer URL starts with https
- Use node 14 in dockerfile
- Update dependencies and upgrade to angular 13
- Remove keycloak dependency and add generic openid connect implementation
- Add security group and security group filter management admin UIs
- Add flavour limits management
- Remove all admin service classes and put graphql into specific components
- Create Cloud admin menu with image, flavour, plan sub menus
- Persist keyboard layout and experiment search criteria in local storage
- Remove all references to Cycles
- Add image version number to admin dashboard and instances pages
- Handle errors in paginated responses
- Add query parameters to instance creation route to allow experiments to be automatically selected for an instance (allows links to data catalogues)
- Add users admin UI
- Add editable termination date to admin instance ui
- Update clarity to 4.0.2 (fixes state bug vmware-archive/clarity#5075)
- Add Jupyter session stats to the admin dashboard
- VISA platform open sourced and moved to GitHub
- Make contact email a client config value
- Use npm version of visa-guacamole-common-js
- Autologin field added to image admin view
- Show experiment dates rather than cycles
- Change experiment search: use modal, modify filters, pagination and ordering
- Use start and end dates for experiments
- Show instance attributes in instance admin view
- Change instrument responsible to instrument scientist
- Change boolean types to datetimes (eg instance deletedAt)
- User ID changed to String
- Allow user to select keyboard layout when creating an instance
- Change login page layout and add visa video (if url present in configuration)
- Aesthetic changes to documentation
- Update favicon with VISA logo
- Fix clipboard text alignment in modal
- Fix filtering of instances on homepage
- Added new VISA logo
- Put back user-selectable screen resolution
- Present option to open new tab when instance clipboard text satisfies specific format and URL is accepted by the server configuration
- Soft delete flavours
- Fix full screen mouse offset in safari
- Handling refresh / expired session errors. Logging out user automatically and redirecting back to visa.
- Added username, affiliation, home directory and thumbnail to instance overview page in admin.
- Added image version to next to image name on home page.
- Handle state when instance is set to be deleted (don't show active)
- Fix bug on admin image UI - protocols were deleted when updating
- Modify instance creation: show summary view by default to simplify the creation process
- Add scrollbars to remote desktop (if needed)
- Modify remote desktop UI to allow for auto-scaling to fit full screen size
- Add single and dual screen support and have minimal screen resolution
- Add preset to plan model and automatically select preset image+flavour (if available) when creating an instance
- Show Jupyter access button if instance image has Jupyter protocol and user is the owner
- Fix connection time in the status bar
- Proxy Jupyter requests through a visa-peoxy (URL obtained from the instance ID)
- Add JWT token as a cookies so that it is sent with the iframe request to jupyter
- Added Jupyter module and routing with iframe for Jupyter Notebook Server integration
- Specify commit of guacamole-common.js definitions
- Add touch support for tablets and hammer.js for gesture handling (eg swipe right from left-hand edge)
- Handle User Employee objects
- Show support members' role in members dialog
- Reduce thumbnail size
- Audited and fixed all node module vulnerabilities
- Handle employee ID of 0 (error from LDAP/keycloak) - show message to contact support
- Allow Instrument Responsible and admin users to connect to external users' instances when they are not connected
- Allow system notifications to be dismissed
- Close admin flavour, image and plan edit/new modals only if no error occurs
- Refactor lazy load modules not to load if user doesn't have required role
- Upgrade clarity
- Lint all project
- Upgrade to Angular 10
- Added system notifications component
- Lazy load modules
- Add selected sessions tab to local storage
- Update all rxjs methods
- Added full screen button for admin sessions grid view
- Remove font awesome
- Remove plan name from admin instance UI
- Added start date and end date to cycle dropdown
- Added grid view to sessions view for thumbnail display
- Add admin instances column selection to local storage
- Display thumbnail in home page instances
- Send desktop thumbnails to server over websocket
- Dashboard autorefresh in local storage
- Remove name and description from Plan
- Fix retry of admin/instance graphql requests hitting the server if instance does not exist
- Add number of active sessions to dashboard
- Fix Firefox bug on displaying charts
- Refactor app component
- Added Matamo analytics integration
- Show last interaction details in admin sessions view
- Added analytics script
- Added gitlab CI to build docker images
- Add most recent active users to dashboard and total number of users who have been active
- Implement delete action in admin instance view
- Optional auto-refresh dashboard
- Refactoring dashboard
- Add last interaction at to instance model and show in support and admin instances UIs
- Fix documentation for unauthorised users
- Added search user to admin instances UI
- Remove delete from flavour and plan admin pages
- Handle roles in documentation items (specific doc for support users)
- Reload dashboard every 30 seconds
- Add session activity to admin instances view
- Fix date on instance sessions and latest instances in dashboard
- Improvements to admin instance UI
- Get duration from server to instance session members
- Fix latest instances in dashboard
- Fix date format of instance sessions
- Disable delete button on instance when being deleted
- Order admin instances by most recent
- Remove date pipe (use angular own)
- Disable caching of nginx config
- Connect button of shared instances only enabled if owner is connected
- Handle cancelled access requests and disconnections in instance component: close modals
- Improve UI for external users when they have no experiments/proposals
- Fix new and update image admin UIs
- Implement user instance quotas
- Fix flavours component
- Fix distribution pie chart component
- Fix bug on role selectors using same ng-model on members management UI
- Add boot command to Image admin UI
- Handle graceful deletion of instances
- Improve documentation rendering
- Make documentation available without login
- Remove unnecessary dependencies
- Fix bug on socket not disconnecting correctly
- Improvements to flavour, image and plan admin pages
- Search by owner on support page
- Add statistics to admin dashboard (image and flavour distributions, session counts)
- Added Help Center and documentation
- Allow owner to disconnect active users from their remote desktop
- Allow connection to instances in support view only if a session is active
- Show instruments, experiments and session activity in support instances view
- Add Image version to admin interfaces
- Handle room locked/unlocked events when the owner away/returns
- Set instance membership role when access granted
- Show access granted message when owner accepts a connection
- Warning message on members dialog about adding full-acces control
- Desktop access requests (socket.io events and ui) for non-member/support access
- Admin instance sessions interface
- Admin instance details interface (plans, security groups, sessions, members, etc)
- Support module with instances list
- Admin instances interface with advanced filtering options
- Image, Flavour and Plan management
- Enabling admin module and routes
- Bug fix of support users api url
- Add system notifications
- Change ScientificSupport role to Staff role
- Show instance Id and expiration date on instance cards
- Replace ng-snotify with angular-notifier due to angular version conflicts
- Use relative URLs for api and vdi endpoints (generic environment file)
- Use configuration data from the server for keycloak access
- Handle errors in instance component (instance not found or auth errors)
- Show full control of admin and scientific support users in remote desktop