Hello everyone, this past week has been very, very busy and a lot of important things were accomplished, with over 10,000 new lines of code merged to our dev build this past week alone.
First off, the FTML parser that will replace the
Text_Wiki package we’re currently using for converting wiki syntax into colors, links, modules, The ListPages Thing, and everything else that folks come up with, has officially reached 1.0 status. This is a very big deal; while that doesn’t mean that it’s ready right now as a drop-in replacement, it does mean that everything we want it to do is officially in the realm of possibility and that’s huge. About 5,000 new lines of code were merged in this week to get it to the 1.0.0 milestone.
The highly encompassing WJ-444 has officially been closed with the replacement of the previous private messaging system. While private messages aren’t something that really gets the people going, it was still important to move this into our new codebase. It also surfaced some opportunities for use to make use of some useful little new things (Ordered UUIDs and bitmasks) for increased user privacy and performance.
It also let us lay the (very early) groundwork for a new permissions system, with our first authorization policy. This first set deals with when one user can PM another user and it isn’t anything crazy, but what’s important is that some groundwork was laid to be able to do these things, allowing or denying actions based on criteria, and the underlying system knows how to make sense of it.
I’d indicated last week that once WJ-444 was wrapped that I’d move on to logins and registration and I’ve done exactly that, with about another 5,000 lines on deck to be added. Thanks to Laravel’s Sanctum and Fortify packages, I was able to actually get through a staggering amount of work in a short span of time.
- User logins and registration now only use the new codebase.
- All of the usual features (password resets, email verification) are present.
- Multi-factor authentication with any compatible TOTP service (Authy, Google Authenticator, etc.) has been added.
- API key creation and management has been added. (Humorously, this piece is in place before the actual API is, so have fun querying nothing for now.)
- User profile pictures can be uploaded and go straight to Amazon S3, or if nothing is uploaded, a unique profile picture is generated for you.
It’s been a very good week on this front. Also as a sort of pet-project, sanity check sort of thing, I spent a good chunk of yesterday examining one of the most pivotal parts of the old codebase to see what makes it tick and why everything else is so reliant on it. Having gotten through it, I’m feeling very confident that we’re on track to write a much simpler and faster system.
On the systems architecture side, I had time to consult with a fellow AWS professional on a couple of things related to deployments and I’ll be incorporating those soon-ish, probably as we get closer to launch.
Looking ahead to next week, I am hoping to wrap up the new system and remove some of the old code related to logins and registration, and see how much of the old session-related code can be ripped out at the same time. After that I’ll be at a crossroads again and I’ll probably start on our new epic ticket for removing the remainder of the old classes.