Commit Graph

320 Commits

Author SHA1 Message Date
CasVT
fa9fc6fccb Improved spacing of reminder entries in UI 2025-09-03 16:14:56 +02:00
CasVT
99eae8f914 Add user option to change username 2025-09-03 15:28:36 +02:00
CasVT
4c33e65784 Updated API docs 2025-08-30 21:28:23 +00:00
CasVT
aef883e0da Added 2FA in the backend 2025-08-30 23:12:50 +02:00
CasVT
7456561a3a Fixed bug in migration where NS bindings were lost
The migration would recreate the reminders table but by deferring the foreign keys, the entries in the reminder_services table were removed (ON DELETE CASCADE) so no reminder had a notification service selected. Fixed that by completely turning off and on the foreign key system instead of simply deferring them.
2025-08-29 16:16:16 +02:00
CasVT
8e6224fb27 Added link to project board in README 2025-08-28 18:13:46 +02:00
CasVT
597b52e4dd Added links to articles featuring MIND in README 2025-08-28 18:07:20 +02:00
CasVT
fc5bdba55e Fixed Discord links 2025-08-28 17:44:20 +02:00
CasVT
4444b007bd Refined favicon and added PNGs 2025-08-28 17:13:44 +02:00
CasVT
6496220b54 Fixed docstrings in Server class 2025-08-26 17:26:19 +02:00
CasVT
f07dee0400 Refactored MIND.py 2025-08-26 17:07:49 +02:00
CasVT
3d6b57eb88 Refactored api.py endpoint handlers 2025-08-26 16:28:12 +02:00
CasVT
d4d6d0973c Clean expired API keys every 24h
If someone logs in, then never logs back in while the key expires, then the key is stored in the dict and never deleted. So every 24 hours delete all keys that have been expired for more than 24 hours. Avoids a memory leak-like situation.
2025-08-26 02:30:01 +02:00
CasVT
515ef665a2 Changed what's stored in global context vars for API 2025-08-26 01:52:01 +02:00
CasVT
b68284530b Changed generation and hashing of API keys
Moved from generating API keys using os.urandom to secrets.token_hex. Moved from hashing the keys using stdlib.hash to hashlib.sha256.
2025-08-26 00:50:46 +02:00
CasVT
42891f5f32 Moved API inputs to context globals 2025-08-25 23:29:16 +02:00
CasVT
6244aff737 Improved type hinting in api.py 2025-08-25 22:49:35 +02:00
CasVT
2aa1258500 Refactored ui.py 2025-08-25 21:43:01 +02:00
CasVT
b18f305cc5 Run timezone check on startup 2025-08-25 21:11:10 +02:00
CasVT
590c0b25ce Refactored tz_shifter.py 2025-08-25 20:56:04 +02:00
CasVT
3df51b2cbf Moved doc string 2025-08-25 20:32:31 +02:00
CasVT
1c0277a552 Updated API docs 2025-08-21 15:54:04 +00:00
CasVT
a369e80ab3 Refactored reminder_handler.py 2025-08-21 17:53:31 +02:00
CasVT
61882e609a Refactored reminders.py 2025-08-21 16:57:23 +02:00
CasVT
85a2f32dad Refactored static_reminders.py 2025-08-21 15:52:09 +02:00
CasVT
71c3c9b36c Fixed docstrings in templates.py 2025-08-21 15:38:28 +02:00
CasVT
1f4ac2d433 Updated docstrings in users.py 2025-08-21 15:30:46 +02:00
CasVT
414eae0614 Refactored templates.py 2025-08-21 15:28:40 +02:00
CasVT
08bd642224 Refactored notification_services.py 2025-08-21 15:15:46 +02:00
CasVT
536d1a0b93 Renamed variables in Users class 2025-08-21 15:10:04 +02:00
CasVT
bafd8abe6a Refactored users.py 2025-08-18 17:05:35 +02:00
CasVT
6da1d3b2f6 Refactored apprise_parser.py 2025-08-18 16:27:10 +02:00
CasVT
d80dd8c2a0 Moved reminders.py, static_reminders.py and templates.py to implementations folder 2025-08-18 15:29:35 +02:00
CasVT
5bfe6e207d Supply URL prefix when starting server
Before it would be set via a method, but it's more logical for it to just be supplied when starting to run the server, alongside the host and port.
2025-08-18 15:22:29 +02:00
CasVT
c9719ec221 Create Flask app on init of Server class 2025-08-17 16:34:49 +02:00
CasVT
39d5c9e51e Fixed link to manifest when using url prefix 2025-08-17 16:30:14 +02:00
CasVT
a8ad6712b2 Removed unnecessary call to close DB connection 2025-08-17 16:08:42 +02:00
CasVT
b427c2c1d4 Refactored Flask error handling setup 2025-08-15 16:42:25 +02:00
CasVT
3847e2fa07 Fixed JSON formatting of API responses 2025-08-12 17:56:52 +02:00
CasVT
344214a605 Refactored signaling of restart type on restart 2025-08-12 17:28:28 +02:00
CasVT
b5387a0635 Moved API prefixes from Server to Constants 2025-08-12 16:57:13 +02:00
CasVT
8739e1ab95 Refactored start type handling 2025-08-06 18:46:48 +02:00
CasVT
492674d280 Turned DatabaseBackupHandler methods into classmethods 2025-08-05 12:26:57 +02:00
CasVT
75823c0899 Put closing threads DB connection into own method 2025-08-05 12:18:56 +02:00
CasVT
cc43df13f9 Only allow editing public settings via API 2025-08-04 18:29:02 +02:00
CasVT
129859048d Split internal settings into separate dataclass 2025-08-03 16:44:27 +02:00
CasVT
258c3db83d Refactored settings.py 2025-08-03 13:24:06 +02:00
CasVT
1e09ce1510 Copy over last DB backup timestamp on DB import
When importing a backup from a long time ago (more than one DB backup interval ago), a backup would be created the moment the import was done, regardless of when the previous backup was made (so even when that was minutes ago). Now the schedule is kept, by copying over the timestamp of the last DB backup from the current DB to the imported DB.
2025-08-03 12:20:49 +02:00
CasVT
40473de47a Changes made since startup were carried over on DB import
The changes made since startup, stored in the wal file, were carried over when importing a database. This was because the database file was replaced with the imported database file, but the changes were stored in the wal file. So now we merge all changes into the main database file before replacing them.
2025-08-02 18:54:28 +02:00
CasVT
9b3b9637a3 Fixed "Keep hosting settings" option in frontend 2025-08-02 18:06:02 +02:00