D. Berge
48d5986415
Change handling of sequence parameter.
...
Allow `null` to be used in addition to `0` in
db.sequence.get() to return all sequences.
2025-08-01 17:05:38 +02:00
D. Berge
471f4e8e64
Add synonyms to db.sequence.get() options
2025-08-01 17:05:05 +02:00
D. Berge
4be99370e6
Change the MIME type of binary responses
2025-08-01 16:50:32 +02:00
D. Berge
e464f5f887
Refactor code handling binary sequence requests.
...
Instead of the user giving the recipe for the payload, it now
only handles predefined payload configurations. Those are
denoted by the `type` query parameter. The only valid value
as of this commit is `type=2`.
Look at lib/binary/bundle.js for the definition of a type 2
bundle.
2025-08-01 16:47:50 +02:00
D. Berge
cc8d790ad8
Remove dead code (replaced by @dougal/binary)
2025-08-01 16:43:22 +02:00
D. Berge
31ac8d3c01
Add toJSON() function to binary decoder
2025-07-28 10:07:49 +02:00
D. Berge
3bb78040b0
Set correct Content-Type
2025-07-28 10:06:21 +02:00
D. Berge
808c9987af
Add binary format middleware for sequence data.
...
It responds to the MIME type:
application/dougal-map-sequence+octet-stream
2025-07-26 19:05:00 +02:00
D. Berge
4db6d8dd7a
Add custom binary format packing / unpacking.
...
This series of custom binary messages are an alternative to JSON /
GeoJSON when huge amounts of data needs to be transferred to and
processed by the client, such as a GPU-based map view showing all
the points for a prospect, or QC graphs, etc.
2025-07-26 19:05:00 +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
5487a3a49b
Catch JWT expiration.
...
Closes #321
2025-07-26 10:56:23 +02:00
D. Berge
0b3711b759
Fix typo
2025-07-25 20:08:08 +02:00
D. Berge
0427a3c18c
Use Node workspaces to manage repo dependencies
2025-07-25 17:48:30 +02:00
D. Berge
d5af6df052
Merge branch '177-refactor-users-code' into 'devel'
...
Refactor users code
Closes #177 and #176
See merge request wgp/dougal/software!57
2025-07-25 12:26:39 +00:00
D. Berge
302642f88d
Fix JWT renewal over websocket
2025-07-25 14:21:26 +02:00
D. Berge
48e1369088
Fix host based authentication
2025-07-25 14:03:43 +02:00
D. Berge
3ea82cb660
Fix reading of credentials for issuing JWT
2025-07-24 23:03:05 +02:00
D. Berge
84c1385f88
Refactor class User (clean up)
2025-07-24 23:02:30 +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
b8f58ac67c
Add FIXME
2025-07-24 19:20:58 +02:00
D. Berge
b3e27ed1b9
Refactor auth.authentify.
...
We now get the user's details directly from the JWT token.
2025-07-24 19:15:36 +02:00
D. Berge
f5441d186f
Refactor auth.access middleware.
...
It users @dougal/user and @dougal/organisations classes.
2025-07-24 19:14:19 +02:00
D. Berge
d58bc4d62e
Remove unused code
2025-07-24 19:13:17 +02:00
D. Berge
01d1691def
Fix login endpoint (checkValidCredentials is now async)
2025-07-24 19:09:39 +02:00
D. Berge
bc444fc066
Add dependency to project organisations cache
2025-07-24 18:48:22 +02:00
D. Berge
989ec84852
Refactor JWT credentials check to use class User
2025-07-24 18:36:34 +02:00
D. Berge
065f6617af
Add class ServerUser derived from User.
...
Used on the backend. Adds methods to hash and check passwords and
to read from and save user data to the database.
2025-07-24 18:31:51 +02:00
D. Berge
825530c1fe
Use @dougal/user, @dougal/organisations modules in backend
2025-07-24 18:27:59 +02:00
D. Berge
3905e6f5d8
Update OpenAPI specification
2025-07-13 11:15:41 +02:00
D. Berge
2657c42dcc
Fix export statement
2025-07-13 11:13:31 +02:00
D. Berge
63e6af545a
Fix typo
2025-07-13 11:13:09 +02:00
D. Berge
d6fb7404b1
Adapt version.get middleware to new permissions approach
2025-07-13 00:07:52 +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
b7ae657137
Add auth.operations middleware.
...
Adds an array of allowed operations on given context to the request
under `req.user.operations`.
2025-07-13 00:02:48 +02:00
D. Berge
1295ec2ee3
Add function to return allowed operations in a given context
2025-07-13 00:01:15 +02:00
D. Berge
7c6d3fe5ee
Check permissions against vessel if not on a project endpoint
2025-07-12 16:49:10 +02:00
D. Berge
15570e0f3d
orgAccess(user, null, op) returns vessel access permissions.
...
If instead of a project ID, orgAccess receives `null`, it will
check permissions against the installation's own vessel rather
than against a specific project.
2025-07-12 16:47:39 +02:00
D. Berge
d551e67042
Add vesselOrganisations() function
2025-07-12 16:47:10 +02:00
D. Berge
6b216f7406
Add library function to retrieve vessel information.
...
In the `keystore` table, we now store information for our own
vessel (usually, where the Dougal server is installed). This
is an access function to retrieve that information.
The info stored for the vessel looks like this:
```yaml
type: vessel
key: ego
data:
imo: 9631890
mmsi: 257419000
name: Havila Charisma
contacts:
-
name: HC OM
phone: tel:+47123456789
email: hc.om@magseisfairfield.com
organisations:
Havila Charisma:
read: true
write: true
edit: true
```
2025-07-12 16:42:28 +02:00
D. Berge
a7e02c526b
Add function argument defaults.
...
This will cause the function to return a safe (false) value
rather than erroring.
2025-07-12 16:40:18 +02:00
D. Berge
55855d66e9
Remove dead code
2025-07-12 12:14:12 +02:00
D. Berge
10580ea3ec
Create server-side organisations module
2025-07-12 11:31:38 +02:00
D. Berge
25f83d1eb3
Share access() function between front and back end.
...
This is so that any changes to the code are reflected on both sides.
2025-07-12 11:31:38 +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
ca4a14ffd9
Use new orgs based method for authorisation
2025-07-11 22:48:44 +02:00
D. Berge
d77f7f66db
Refresh organisations cache on project update
2025-07-11 22:48:06 +02:00
D. Berge
6b6f545b9f
Filter list of projects to only those readable by user
2025-07-11 22:47:32 +02:00
D. Berge
8c875ea2f9
Return organisations as part of the projects listing
2025-07-11 22:46:47 +02:00
D. Berge
addbe2d572
Refactor user authentication code to use database
2025-07-11 22:46:47 +02:00