D. Berge
ccb8205d26
Don't cache comparisons in the API
2025-08-19 18:55:31 +02:00
D. Berge
f3958b37b7
Add comparison API endpoints
2025-08-18 14:11:20 +02:00
D. Berge
764e2cfb23
Rename endpoint
2025-08-14 13:34:36 +02:00
D. Berge
bf1af1f76c
Make it explicit that :id is numeric
2025-08-14 13:34:27 +02:00
D. Berge
09e4cd2467
Add CSV event import.
...
Closes #336
2025-08-14 13:33:30 +02:00
D. Berge
8c81daefc0
Move the two /configuration endpoints next to each other
2025-08-11 22:20:46 +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
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
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
94cdf83b13
Change access permissions to files endpoints
2025-08-07 16:23:55 +02:00
D. Berge
c376896ea6
Also serve preplot source/sail points as binary.
...
This commit adds the ability to pack preplot points in Dougal
binary format. Sail line points take udv=0 and source line points
take udv=1 – udv=2 remains sequence data.
Endpoints for retrieving the data in JSON, GeoJSON and binary
formats have also been added. Data may be retrieved as a single
line or for a whole project.
2025-08-03 11:17:31 +02:00
D. Berge
a58cce8565
Add /version/history endpoint to API.
...
Retrieves Git tag annotations.
2025-07-26 10:58:42 +02:00
D. Berge
386fd59900
Update API to handle permissions checks on most endpoints
2025-07-24 19:24:40 +02:00
D. Berge
e47020a21e
Add /user endpoints to API
2025-07-24 19:23:43 +02:00
D. Berge
8188766a81
Refactor access to info table.
...
To adapt to new permissions system.
2025-07-13 00:07:05 +02:00
D. Berge
b035d3481c
Ensure users have at least read access to most endpoints
2025-07-11 22:49:28 +02:00
D. Berge
712b20c596
Add API endpoint to retrieve line name properties.
...
This will be needed by the configuration GUI.
2025-07-09 16:38:41 +02:00
D. Berge
e398f2d3cd
Stop attempt at sending a spurious 404.
...
This was resulting in a bunch of "headers already sent" messages.
2024-05-09 14:18:56 +02:00
D. Berge
af0df23cc4
Add diagnostics API endpoint.
...
Only available with write access and above.
Reports used and available filesystem sizes and database space
usage.
2024-05-08 16:27:32 +02:00
D. Berge
efe64f0a8c
Implement PUT method for project configuration endpoint.
...
In short:
POST creates a new project
PUT overwrites a project configuration with a new one
PATCH merges the request body with the existing configuration
2024-05-01 10:40:04 +02: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
620d5ccf47
Add /version API endpoint
2023-11-02 19:48:30 +01:00
D. Berge
09ff96ceee
Add events change API endpoint
2023-10-17 11:15:36 +02:00
D. Berge
ceccc42050
Don't cache response ETags for QC endpoints
2023-09-18 12:06:38 +02:00
D. Berge
a1779ef488
Do not cache /navdata endpoint responses
2023-09-14 13:20:16 +02:00
D. Berge
5239dece1e
Do not cache GIS endpoint responses
2023-09-14 13:19:57 +02:00
D. Berge
a7d7837816
Allow only admins to patch project configurations
2023-09-14 13:19:16 +02:00
D. Berge
ebcfc7df47
Allow everyone to access project configuration.
...
This is necessary as it is requested by various parts of the
frontend.
Consider more granular access control.
2023-09-14 13:17:28 +02:00
D. Berge
707889be42
Refactor layer API endpoint and database functions.
...
- A single get() function is used both to list all available
layers, if no layer name is given, or a single layer.
- The database no longer holds the actual layer contents,
only the path to the layer file(s), so the list() function
is now redundant as we return the full payload in every case.
- The /gis/layer and /gis/layer/:name endpoints now have the same
payload structure.
2023-09-12 19:29:02 +02:00
D. Berge
36d5862375
Add map layer middleware and API endpoints
2023-09-11 10:15:19 +02:00
D. Berge
78fb34d049
Update the API version number
2023-09-09 16:56:52 +02:00
D. Berge
c4b330b2bb
Don't cache ETags for /files/ endpoint.
...
As we have no practical way of invalidating those.
2023-09-02 16:06:31 +02:00
D. Berge
308eda6342
Use ETag middleware
2023-09-02 15:29:39 +02:00
D. Berge
70cf59bb4c
Add API files endpoint.
...
Used to download files. It relies on `imports.paths` being set
appropriately in `etc/config.yaml` to indicate which parts of
the filesystem are accessible to users via Dougal.
2023-08-30 13:51:31 +02:00
D. Berge
6721b1b96b
Add API endpoint for patching a project
2023-08-30 13:47:02 +02:00
D. Berge
fe9d3563a0
Add API endpoint to delete a project
2023-08-23 19:26:27 +02:00
D. Berge
38a07dffc6
Add API endpoint to retrieve project configuration.
...
Only available to users with at least `write` access.
2023-08-23 19:26:27 +02:00
D. Berge
1a6500308f
Add API endpoint for creating a project
2023-08-23 19:26:27 +02:00
D. Berge
6033b45ed3
Refactor API middleware.
...
The middleware naming is kept consistent with the HTTP verb that
they handle.
2023-08-23 19:17:20 +02:00
D. Berge
33edef6647
Use modified body-parser accepting YAML
2023-08-23 19:12:44 +02:00
D. Berge
89061f6411
Print port and prefix on startup
2023-05-18 18:30:48 +02:00
D. Berge
6d8a199a3c
Allow setting IP to listen on.
...
Running on bare metal, 127.0.0.1 is a sensible choice of address
to bind on, but that is not the case when running inside a
container, so we add the ability to choose which IP to listen on.
This can be given via the environment variable HTTP_HOST when
starting the server or, if used as a module, as the second
argument of the start(port, host, path) function.
2023-04-07 09:04:51 +02:00
D. Berge
3ed8339aa3
Migrate more console messages to debug()
2022-05-12 22:09:08 +02:00