Commits
This signs all session cookies using a globally shared
secret, which is kept inside lumina's data folder.
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
This means that the login component can now be
finalised! It should emit this authentication-event
to the client and also send it back as a Session-wide
message.
This commit also corrects the session_key (revival key)
which should be a bytearray instead of a string.
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
This is actually part of a bigger change I'll introduce later, adding
functions to convert an ed25519 to a x25519, allowing for private data
transfer between individual users, hopefully.
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
This login page will not know what to do on success yet, and we have no
test users set up so that's actually fine.
Also: I noticed a few days before starting on this already that I was
heading in a direction of overisolation: A server component can just
call a function in `data.gleam`, it doesn't need to send out and about a
message and all that (thank you Ollie for keeping me sane again)... To
make sure the component can do that, it needed access to some globals,
so there was a bit of an architectural change in passing values. I
could've split this into a refactor AND a feat, but the refactor would
at the moment only service the feat. So, I decided to just put it in one
commit, think that's fine.
Also, we've pulled in a Nif with this change: `gleam_crypto` only
provides Sha-based hashes which are a little too quick for my taste for
authentication like this. So, we pulled in the argus package, which
contains a well tested C Nif. This should also be fine.
Overal I think I'm making loads of progress again! Glad to feel good
about Lumina again, it can be a tiresome project sometimes.
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
This is necessary, since we recently updated Erlang, and that means
older artifacts may cause unexpected behaviour. When changing Erlang/OTP
versions, always run this recipe as well to keep things nice and
reliable.
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
This is the last part of the local catch-up :)
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
The flake now provides a Postgres development server, and updated the
Erlang/OTP version to 29.
The Justfile now takes care of bundling all static assets into the
server's priv folder, and compliments the flake's preparations.
The backend now entirely bases off a supervision tree with predefined
background tasks and process-trackable logging thanks to the witness
library.
Lumina 's documentation now also define some cryptographical verification
methods, which are prepared in the backend code, but as I'll focus on
local functionality before adding federative functions, only federation
groundwork is laid.
The SQL is also now done using the amazing Squirrel library.
Lots of work to be done here!
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
It's also deviated from that point on:
- User IDs now have a dedicated explanation, including a short
introduction of the 'did:lumina'!
- Some cryptographical challenges are now part of the conceptual
specification
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
(in fact, the rust server's way of doing things is deprecated soon:tm:)
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
... acciddentally made a megacommit out of last commit because I didn't
split. Oops.
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
git-subtree-dir: backend/impl-rs
git-subtree-mainline: 94f084cd909b894f55b5bc276521759fd3ce1a40
git-subtree-split: fbf12ba4aaa63af0723c5d2e5c61e59adb63afae
git-subtree-dir: backend/impl-gleam
git-subtree-mainline: 61078d86957929cd5fd4b683f45f559789573e35
git-subtree-split: ced378d5fec7fb349e230cc751467fe69d77194d
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
This signs all session cookies using a globally shared
secret, which is kept inside lumina's data folder.
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
This means that the login component can now be
finalised! It should emit this authentication-event
to the client and also send it back as a Session-wide
message.
This commit also corrects the session_key (revival key)
which should be a bytearray instead of a string.
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>
This login page will not know what to do on success yet, and we have no
test users set up so that's actually fine.
Also: I noticed a few days before starting on this already that I was
heading in a direction of overisolation: A server component can just
call a function in `data.gleam`, it doesn't need to send out and about a
message and all that (thank you Ollie for keeping me sane again)... To
make sure the component can do that, it needed access to some globals,
so there was a bit of an architectural change in passing values. I
could've split this into a refactor AND a feat, but the refactor would
at the moment only service the feat. So, I decided to just put it in one
commit, think that's fine.
Also, we've pulled in a Nif with this change: `gleam_crypto` only
provides Sha-based hashes which are a little too quick for my taste for
authentication like this. So, we pulled in the argus package, which
contains a well tested C Nif. This should also be fine.
Overal I think I'm making loads of progress again! Glad to feel good
about Lumina again, it can be a tiresome project sometimes.
The backend now entirely bases off a supervision tree with predefined
background tasks and process-trackable logging thanks to the witness
library.
Lumina 's documentation now also define some cryptographical verification
methods, which are prepared in the backend code, but as I'll focus on
local functionality before adding federative functions, only federation
groundwork is laid.
The SQL is also now done using the amazing Squirrel library.
Lots of work to be done here!
Signed-off-by: MLC Bloeiman <mar@strawmelonjuice.com>