D. Berge
a5ebff077d
Fix authentication middleware erroring on IPv6
2025-08-13 11:50:20 +02:00
D. Berge
2a894692ce
Throttle snack notifications
2025-08-12 00:22:09 +02:00
D. Berge
25690eeb52
Fix showSnack in main.js
2025-08-11 23:48:08 +02:00
D. Berge
3f9776b61d
Let the user know when we're getting gateway errors
2025-08-11 23:47:25 +02:00
D. Berge
8c81daefc0
Move the two /configuration endpoints next to each other
2025-08-11 22:20:46 +02:00
D. Berge
c173610e87
Simplify middleware
2025-08-11 22:19:51 +02:00
D. Berge
301e5c0731
Set headers only on 304
2025-08-11 22:06:51 +02:00
D. Berge
48d9f45fe0
Clean up debug messages
2025-08-11 22:06:20 +02:00
D. Berge
cd23a78592
Merge branch '190-refactor-map' into 'devel'
...
Resolve "Refactor map"
Closes #190 , #322 , #323 , #324 , #325 , #326 , and #321
See merge request wgp/dougal/software!25
v2025.33.1
2025-08-11 13:01:00 +00:00
D. Berge
e368183bf0
Show release notes for previous versions too
2025-08-11 14:59:22 +02:00
D. Berge
02477b071b
Compress across the board.
...
It's still subject to the compression module's filters, but now
we try to compress every response in principle.
2025-08-11 13:57:11 +02:00
D. Berge
6651868ea7
Enable compression for vessel track responses
2025-08-11 13:40:53 +02:00
D. Berge
c0b52a8245
Be more aggressive about what gets compressed
2025-08-11 12:42:48 +02:00
D. Berge
90ce6f063e
Remove dead code
2025-08-11 02:31:43 +02:00
D. Berge
b2fa0c3d40
Flatten vesselTrackConfig for better reactivity
2025-08-11 02:31:12 +02:00
D. Berge
83ecaad4fa
Change vessel colour
2025-08-11 01:57:40 +02:00
D. Berge
1c5fd2e34d
Calculate properly first / last timestamps of vessel tracks
2025-08-11 01:56:46 +02:00
D. Berge
aabcc74891
Add compression to some endpoints.
...
Consideration will be given to adding (conditional) compression
to all endpoints.
2025-08-11 01:53:50 +02:00
D. Berge
2a7b51b995
Squash another cookie
2025-08-11 01:52:04 +02:00
D. Berge
5d19ca7ca7
Add authentication to vessel track request
2025-08-10 22:03:25 +02:00
D. Berge
910195fc0f
Comment out "Map settings" control on map.
...
Not sure it will actually be used, after all.
2025-08-10 21:53:55 +02:00
D. Berge
6e5570aa7c
Add missing require
2025-08-10 21:53:04 +02:00
D. Berge
595c20f504
Add vessel position to map.
...
Updates via websocket using the `realtime` channel notification
message.
2025-08-10 21:52:02 +02:00
D. Berge
40d0038d80
Add vessel track layer to map.
...
Track length may be changed by clicking on the appropriate icon.
2025-08-10 21:47:43 +02:00
D. Berge
acdf118a67
Add new /vessel/track endpoints.
...
This is a variation on /navdata but returns data more suitable
for plotting vessel tracks on the map.
2025-08-10 21:39:35 +02:00
D. Berge
b9e0975d3d
Add clone routine to project DB lib (WIP).
...
This relates to #333 .
2025-08-10 21:37:12 +02:00
D. Berge
39d9c9d748
Fix GeoJSON returned by /navdata endpoint
2025-08-10 21:36:37 +02:00
D. Berge
b8b25dcd62
Update IP getter script to return LAN address.
...
get-ip.sh internet: returns the first IP address found that has
internet access.
get-ip.sh local (or no argument): returns the list of non-loopback
IPs minus the one that has internet access.
This means that update-dns.sh now sends the first IP address that
does *not* have internet access.
2025-08-09 22:27:23 +02:00
D. Berge
db97382758
Add scripts to automatically update the LAN DNS records.
...
./sbin/update-dns.sh may be called at regular intervals (one hour
or so) via crontab.
It will automatically detect:
- its local host name (*.lan.dougal.aaltronav.eu); and
- which IP has internet access, if any.
Armed with that information and with the dynamic DNS API password
stored in DYNDNS_PASSWD in ~/.dougalrc, it will update the relevant
DNS record.
For this to work, the first `lan.dougal` hostname in the Nginx
configuration must be the one that is set up for dynamic update.
Other `lan.dougal` hostnames should be CNAME records pointing to
the first one.
2025-08-09 18:37:15 +02:00
D. Berge
ae8e5d4ef6
Do not use cookies for backend authentication
2025-08-09 12:43:17 +02:00
D. Berge
2c1a24e4a5
Do not store JWT in document.cookie
2025-08-09 12:14:17 +02:00
D. Berge
0b83187372
Provide authorisation details to Deck.gl layers.
...
Those layers that call API endpoints directly no longer need to
rely on cookies as they use the JWT token directly via the
`Authorization` header.
2025-08-09 12:12:24 +02:00
D. Berge
3dd51c82ea
Adapt map links to new format
v2025.32.1
2025-08-08 18:54:25 +02:00
D. Berge
17e6564e70
Implement map crosshairs.
...
These are coordinates that are supplied in the fragment part of the
URL. When available, a marker is shown at the given positions.
Labels may also be given and are also shown.
2025-08-08 18:51:54 +02:00
D. Berge
3a769e7fd0
Adapt to new map implementation.
...
Note: if we implement a fallback to the old Leaflet code, the new
hash format will need to be accepted in Leaflet too.
2025-08-08 16:10:17 +02:00
D. Berge
7dde0a15c6
Fix handling of view state and layers in URL hash
2025-08-08 16:09:32 +02:00
D. Berge
2872af8d60
Refresh sequence line data on every render
2025-08-08 13:48:49 +02:00
D. Berge
4e581d5664
Add final-raw heatmap
2025-08-08 13:47:30 +02:00
D. Berge
a188e9a099
Tweak colour scales
2025-08-08 13:45:54 +02:00
D. Berge
cd6ad92d5c
Use the same names in the user interface as in the code
2025-08-08 13:44:42 +02:00
D. Berge
08dfe7ef0a
Add notification handlers to Map.
...
They reload any sequence data on notification of changes.
2025-08-08 12:45:15 +02:00
D. Berge
6a5238496e
Add possibility to refresh points map while loading binary data
2025-08-08 12:44:21 +02:00
D. Berge
bc237cb685
Add final data points layer to map
2025-08-08 12:43:27 +02:00
D. Berge
4957142fb1
Refactor sequenceBinaryData.
...
It is no longer a computed property but actual data. It gets
recalculated on demand via getSequenceBinaryData().
2025-08-08 12:42:38 +02:00
D. Berge
5a19c81ed1
Unregister notification handlers.
...
When leaving the Project component, all its notification handlers
will be unregistered, otherwise we end up with a memory leak.
2025-08-08 12:22:56 +02:00
D. Berge
b583dc6c02
Support unregistering notification handlers
2025-08-08 12:20:58 +02:00
D. Berge
134e3bce4e
Add client-side support for type 3 bundles (final data)
2025-08-08 12:20:04 +02:00
D. Berge
f5ad9d7182
Use sequenceBinaryData for raw data points layer.
...
Saves us from ending up with an extra copy of the data.
2025-08-08 12:18:07 +02:00
D. Berge
07874ffe0b
Filter missing values out of JSON data for binary packing
2025-08-08 12:15:39 +02:00
D. Berge
695add5da6
Increase the resolution of position errors in bundle.
...
Note: this does not actually matter as of this commit as we are
storing those values as Float32 but it will become relevant when
we start packing them as Int16.
2025-08-08 12:15:05 +02:00