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
D. Berge
6c8515a879
Add QC results accept/unaccept API endpoints
2022-05-04 18:11:05 +02:00
D. Berge
186615d988
Add comments for ease of browsing
2022-03-09 17:43:51 +01:00
D. Berge
666f91de18
Add QC results API endpoint
2022-03-09 17:43:10 +01:00
D. Berge
adaa1a6b8a
Add version number to API
2022-02-27 19:56:21 +01:00
D. Berge
d7d75f34cd
Remove event caching.
...
That was a horrible kludge and should not be necessary with the
new schema, which is simpler and much faster.
2022-02-27 19:56:21 +01:00
D. Berge
950582a5c6
Refactor event middleware and db code to use new tables
2022-02-27 19:56:21 +01:00
D. Berge
4d2efd1e04
Move sequence events middleware to a different path.
...
This is to make room for a new endpoint to retrieve
data for individual events.
2022-02-27 19:56:21 +01:00
D. Berge
920ea83ece
Add API endpoint to retrieve a single shotpoint.
...
This will be used by the new event dialogue in the
frontend to get shotpoint information when creating
or editing events.
2022-02-27 19:56:21 +01:00
D. Berge
c7784aa52f
Add ASAQC queue endpoints to API
2021-10-04 02:21:00 +02:00
D. Berge
45fe467a21
Implement sequence/get API endpoint.
...
It returns data for all individual points in a sequence.
2021-09-11 12:19:06 +02:00
D. Berge
bba050032f
Add POST, PUT, DELETE support to /project/:project/info.
...
It reuses the same backend functions as for the global `/info/` path.
2021-05-31 02:29:50 +02:00
D. Berge
8d3e665206
Expose new API endpoint: /info/:path(*).
...
Provides CRUD access to values (which may be deeply nested) from the
global `info` table.
2021-05-20 18:19:29 +02:00
D. Berge
a8850e5d0c
Protect the /project/:project/meta route
2021-05-16 19:58:03 +02:00
D. Berge
a652a08815
Add GET endpoint for sequence events.
...
Provides a variety of formats:
* JSON
* Seis+JSON
* GeoJSON
* HTML
2021-05-15 01:57:45 +02:00
D. Berge
30914b267a
Set the right Content-Type for error outputs
2021-05-13 21:48:46 +02:00
D. Berge
7bb3a3910b
Show development activity log.
...
A button in the help dialogue takes the user to the
/feed/… frontend URL, where the latest development
activity is shown, taken from the GitLab RSS feed
for the project.
2021-05-08 00:46:31 +02:00
D. Berge
3c4a558e02
Serve OpenAPI document on API root.
...
When a client makes a request for `/` (the root of
the API), the OpenAPI description is served in an
appropriate format according to the `Accept` request
header, as follows:
Accept: text/html => HTML version
Accept: application/json => JSON version
Accept: * => YAML version
2020-12-29 16:20:57 +01:00
D. Berge
59aaacbeee
Apply access restrictions to writable routes
2020-10-12 19:43:07 +02:00
D. Berge
7201c29df5
Inject auth middleware after login routes.
...
Routes not requiring authentication must,
self-evidently, go before the authentication
middleware.
2020-10-11 22:11:36 +02:00
D. Berge
dd32982cbe
Add login/logout middleware
2020-10-11 17:52:13 +02:00