Conversation
There's still some TODOs. This list of changelog isn't comprehensive. I've probably missed some things here and there. I just want this committed. - Use TanStack Query for improved targeted invalidation - Improved client caching by allowing entities to be mutable - Fixed Suspense boundaries - Optimistic updates when removing users - Updated dependencies - Other small logic errors - Ability to actually specify API_BASE_URL in builds - Prepare AdminAuthenticator for multi-admin support - Bulk add users - Teachers now have a "My Subjects" section in enrollments - Admins can now view a teacher's subjects - Subject UI now lets you pick groups instead of inserting a group ID - Searching users in admin UI are now possible - SectionedLists are now masonry - Disabled Selects now appear slightly transparent - When using modal navigation, relevant content now turns "inert" to prevent focus - Tabs are now persisted in navigation stack - Enrollment create/edit/delete UI - Group IDs are now generated randomly and hidden from the admin user - Some small UI fixes - Heavily refactored codebase - Extracted base components: ConfirmDialog, BottomBar, UserListItem, SuspenseLoadingPage
THE CAUSE OF MY SUFFERING!!! For some reason, this option was causing reloads on route file saves, as well as HMR to not work properly. Everything works fine in production though, oddly enough. FUCKKKK
Debouncing should be optionally handled by the parent.
It would cause DOM nodes to be remounted at the nearest parent Suspense boundary, which makes elements lose focus.
Reactivity is pain
Session tokens already have high entropy. Argon2 usage is unnecessary and slow.
In the future, some teacher accounts will be able to access some dashboard features.
- Argon2 operations now runs in a cores-limited IO dispatcher - Database transactions are suspended by default and they run in the IO dispatcher. JDBC is blocking, so there's only a small performance gain. - Enrollment subject listing is now much faster. Previously there was a very large case of N+1 queries. - Logging is now async and non-important logs are dropped if queue exceeds the limit. - Creating a user session no longer holds a database transaction during Argon2 verification. Instead, 2 small transactions are made. - Fix N+1 queries when getting user sessions - Fix N+1 queries when getting subject enrolled counts for active enrollments (WS notifications) - Use ConcurrentHashMap.KeySetView instead of CopyOnWriteArrayList for WebSocket subscription cleanups. COW-ArrayList is NOT good for frequent writes.
Revert back to normal shared password-flow. There is no benefit to a Challenge-Response system. In the future, we could add passkeys and potentially disable password logins for admins until they are reset.
It doesn't make sense to have an essentially private interface that's solely for one implementation. This commit combines the two files into one. For mock classes, there's no need to subclass. We already use MockK.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.