Commit Graph

962 Commits

Author SHA1 Message Date
D. Berge
2131cdf0c1 Add project cloning option to ProjectList 2024-05-01 10:40:04 +02:00
D. Berge
15242de2d9 Add configuration settings tab to project navigation bar.
Only for admin users.
2024-05-01 10:40:04 +02:00
D. Berge
b4aed52976 Add project settings cloning component.
Asks for the new ID, name and root file path.
2024-05-01 10:40:04 +02:00
D. Berge
1b85b5cd4b Remove cloning control stub.
Cloning takes place from the project list, we don't really need
to duplicate that functionality here for the time being.
2024-05-01 10:40:04 +02:00
D. Berge
f157f49312 Use project list from Vuex 2024-05-01 10:40:04 +02:00
D. Berge
3d42ce6fbc Add context menu with ‘Edit project settings’ option 2024-05-01 10:40:04 +02:00
D. Berge
4595dddc24 Add ProjectSettings view 2024-05-01 10:40:04 +02:00
D. Berge
642f5a7585 Add project configuration components.
The configuration settings are quite complex so we divide the
GUI into modular components.
2024-05-01 10:40:04 +02:00
D. Berge
e7c29ba14c Add file browsing components.
Essentially, these are a file selection dialog.
2024-05-01 10:40:04 +02:00
D. Berge
d919fb12db Add control to filter out archived projects in ProjectList 2024-05-01 10:40:04 +02:00
D. Berge
2fb1c5fdcc Process incoming JWT WebSocket messages 2024-05-01 10:20:09 +02:00
D. Berge
c6b99563d9 Send a request for new credentials at regular intervals.
Every five minutes, a message is sent via WebSocket to ask the
server for a refreshed JWT token.
2024-05-01 10:19:00 +02:00
D. Berge
76a90df768 Send "Authorization: Bearer …" on API requests.
We need this because we might have more recent credentials than
those in the cookie store.
2024-05-01 10:15:26 +02:00
D. Berge
ea8ea12429 Add JWT Vuex getter 2024-05-01 10:14:55 +02:00
D. Berge
7bd2319cd7 Allow setting credentials directly via the Vuex store.
Until now, credentials were set indirectly by reading the browser's
cookie store. This change allows us to receive credentials via other
mechanisms, notably WebSockets.
2024-05-01 10:13:14 +02:00
D. Berge
a9270157ea Process JWT messages over WebSockets 2024-05-01 10:06:35 +02:00
D. Berge
d2f94dbb88 Refactor JWT token verification 2024-05-01 10:05:48 +02:00
D. Berge
1056122fff Fix missing parenthesis 2024-04-28 18:37:30 +02:00
D. Berge
9bd0aca18f Add debugging statements to ETag middleware 2023-11-04 10:45:50 +01:00
D. Berge
60932300c1 Ensure that project is defined.
Which would not be in the case of the `project` event unless we
look at the `new` and `old` properties.
2023-11-04 10:45:50 +01:00
D. Berge
12307b7ae6 Refactor ETag watcher to use path-to-regexp.
Simplifies the code and makes it easier to look at.
2023-11-04 10:45:50 +01:00
D. Berge
ceeaa4a8f3 Add path-to-regexp depedency. 2023-11-04 10:45:50 +01:00
D. Berge
3da54f9334 Always request a fresh response from the config endpoint 2023-11-04 10:36:58 +01:00
D. Berge
7076b51a25 Add auth.access.role(roles) higher order middleware 2023-11-03 21:22:02 +01:00
D. Berge
fe5ca06060 Return a JSON response for all 404s.
When an endpoint did not exist, the default expressjs response
was being returned, which is text/html.
2023-11-03 18:52:31 +01:00
D. Berge
71467dddf9 Report also request body size, if applicable 2023-11-03 18:51:43 +01:00
D. Berge
246f01efbe Report requested URLs and user data in debug mode 2023-11-02 23:52:15 +01:00
D. Berge
68bf853594 Add comments 2023-11-02 23:51:53 +01:00
D. Berge
4a18cb8a81 Remove useless code 2023-11-02 23:51:05 +01:00
D. Berge
c615727acf Don't require authentication for the /version endpoint.
It will still hide the `db` and `os` values from non-admins though.
2023-11-02 23:48:46 +01:00
D. Berge
2e21526fca Simplify versions handling 2023-11-02 23:47:13 +01:00
D. Berge
3709070985 Add a start script to package.json.
So that `npm start` will run.
2023-11-02 23:40:41 +01:00
D. Berge
2ac963aa4f Update redoc-cli version 2023-11-02 20:23:04 +01:00
D. Berge
db7b385d66 Don't show logo on graph toolbar 2023-11-02 20:05:18 +01:00
D. Berge
d91a1b1302 Do show a legend for shots with final data.
Fixup for commit e4607a095b.
2023-11-02 20:03:57 +01:00
D. Berge
fa031d5fc9 Update API specification 2023-11-02 19:59:02 +01:00
D. Berge
620d5ccf47 Add /version API endpoint 2023-11-02 19:48:30 +01:00
D. Berge
f0fa2b75d5 Add more details to version() return value 2023-11-02 19:46:44 +01:00
D. Berge
46bb207dfb Remove debugging artefact 2023-11-02 15:32:48 +01:00
D. Berge
f7a386d179 Merge branch '287-the-project_summary-view-is-too-slow' into 'devel'
Resolve "The `project_summary` view is too slow"

Closes #287

See merge request wgp/dougal/software!55
2023-11-02 14:29:35 +00:00
D. Berge
e4607a095b Don't show a legend for points without gun data 2023-11-02 15:27:06 +01:00
D. Berge
4b0d42390f Show a message if plotting a c-o with no final data 2023-11-02 15:26:37 +01:00
D. Berge
114e41557f Don't show graph if there is no data 2023-11-02 15:25:45 +01:00
D. Berge
e605320503 Refresh shotlog on sequence change 2023-11-02 15:24:45 +01:00
D. Berge
6606c7a6c1 Do not show c-o for raw sequences 2023-11-02 15:24:28 +01:00
D. Berge
e3bf671a49 Also monitor raw_shots events 2023-11-02 15:23:45 +01:00
D. Berge
3e08dfd45b Ignore shots without source data 2023-11-02 13:51:07 +01:00
D. Berge
f968cf3b3c Bump the required database schema version 2023-11-02 13:25:34 +01:00
D. Berge
b148ed2368 Add refresh-project-summary periodic task.
It listens for events that might indicate that the project_summary
materialised view needs to be refreshed and schedules a refresh.

Refreshes are throttled to a maximum of one every throttlePeriod
milliseconds so that things don't get too crazy for instance when
importing a lot of data.
2023-11-02 13:25:34 +01:00
D. Berge
cb35e340e1 Change the periodic tasks interface to support an init() function.
When a task needs to keep state, it can do so via a closure.
2023-11-02 13:25:34 +01:00