Commit graph

49 commits

Author SHA1 Message Date
Campbell Alden
13779d5a74 Add a dev mode configuration flag 2026-09-05 23:38:55 +09:00
Campbell Alden
c3cd7c2796 Restructure where the CRUD base class lives for clarity and to avoid circular deps 2026-09-05 23:38:46 +09:00
Campbell Alden
0d884e5836 Add a CRUD Repo test helper to handle basic crud repo testing 2026-09-04 00:08:01 +09:00
Campbell Alden
da40febc7f Move shared test stuff into conftest.py 2026-09-03 23:11:47 +09:00
Campbell Alden
acb343f559 Add more tests for the users repo and fix bugs they uncovered 2026-09-03 23:08:19 +09:00
Campbell Alden
6c46a1df3a Add a default False to the user model email_confirmed field to avoid violation errors if the value is not explicitly set 2026-09-03 23:00:07 +09:00
Campbell Alden
32e3fe04a2 Set up an extremely lightweight set of tests for the user infra implementation 2026-09-03 22:58:29 +09:00
Campbell Alden
0d270c9cfb Setup exports in the infra __init__.py
This helps avoid issues where model classes are not evaluated. If the models
are not properly imported then Sqlalchemy can explode during database initialization
since the mapped columns have not yet been registered.

Later, having the models all imported into __init__.py will help with setting
up a test db since it will ensure that the registrations for all models is happening
as the classes are evaluated during the imports in the package init file.
2026-09-03 22:57:55 +09:00
Campbell Alden
f44f054f56 Implement equality for SecretBox 2026-09-03 22:56:14 +09:00
Campbell Alden
04440e6270 Fill in the remaining implementations for the subscription infra impl 2026-08-29 00:52:40 +09:00
Campbell Alden
94c03cad1f Rename duration to wait_duration to make it clear what the duration means
The wait_duration means how long after the previous entry was released
that you have to wait for the next one.
2026-08-29 00:52:28 +09:00
Campbell Alden
bf08335382 Unnotified is better than unseen 2026-08-24 00:20:30 +09:00
Campbell Alden
b601a8fbe8 Flesh out more of the subscription infra and services using CRUD types 2026-08-24 00:12:47 +09:00
Campbell Alden
bdf74c2dbd Update users to use the new CRUD types 2026-08-24 00:12:29 +09:00
Campbell Alden
300cb7bd67 Add some helper types for CRUD infra 2026-08-24 00:12:17 +09:00
Campbell Alden
1c08151558 Ignore a worklist file for storing some longer term goals for myself 2026-08-21 00:25:29 +09:00
Campbell Alden
65b6ab26e7 Add basic subscriptions and a partial implementation of the infra backing 2026-08-21 00:24:32 +09:00
Campbell Alden
86b0d88874 Improve the publication table / data types to denormalize the values
Returning profile values where necessary will remove the need to compute
heavy joins unless the user actually wants all the data.

Now Publication points at OrderProfiles which don't expose the sequences
Orders->Sequence->EntryProfile avoids including the full `text` for the
sequence.
2026-08-21 00:24:14 +09:00
Campbell Alden
63e51fa017 Remove content directory 2026-08-15 00:15:32 +09:00
Campbell Alden
cb70df80e1 Add a script for seeding data into the database
Expects a Data argument which is a directory containing the text for
A Study in Scarlet
2026-08-15 00:14:12 +09:00
Campbell Alden
81bad03ebd Remove HTML from stored data for entries
HTML will be rendered for entries derived from the plain text (at least,
I think).
2026-08-15 00:13:15 +09:00
Campbell Alden
5060f6a97f Fix a circular reference issue between users and the auth service 2026-08-15 00:12:38 +09:00
Campbell Alden
583a5737a6 Add publications 2026-08-14 23:35:32 +09:00
Campbell Alden
be71dfc7ce Add a data version of the date information I'm finding and organize everything into a directory for sherlock 2026-08-08 01:51:02 +09:00
Campbell Alden
0233c18c80 Add a link to the newspaper advertising A Study in Scarlett 2026-08-08 01:36:19 +09:00
Campbell Alden
5ba29b509e Add my notes working out the release dates of some Sherlock Holmes stories and the evidence I've found 2026-08-08 01:33:34 +09:00
Campbell Alden
35fac60437 Improve the email confirmation logic using the router and more robust JWT handling 2026-08-05 00:34:45 +09:00
Campbell Alden
5a4f9dc250 Create a routes constants file and a router for getting routes in app 2026-08-05 00:12:47 +09:00
Campbell Alden
790e0a1ce5 Default the host configuration to 0.0.0.0 2026-08-05 00:10:55 +09:00
Campbell Alden
782e0b0ad6 Add in a mechanism for email confirmation
This is some of the way there but it is still missing at least:
- An actual page to view to confirm the email
- An expiry time on the minted JWT (and other JWT issues like "sub")
2026-08-03 00:33:12 +09:00
Campbell Alden
ecb98dac53 Fixup user service initiation in main 2026-08-03 00:01:29 +09:00
Campbell Alden
395164f630 Move users service into a module 2026-08-03 00:01:15 +09:00
Campbell Alden
72ece8af72 Change how services are provided so that they don't go via "extensions" 2026-08-02 22:50:47 +09:00
Campbell Alden
7b6d351282 Move the notification service into the services directory 2026-08-02 22:50:34 +09:00
Campbell Alden
387e2fa490 Add an auth service for minting and decoding JWTs 2026-08-02 22:50:05 +09:00
Campbell Alden
328f430309 Rename parsing error to be more reusable 2026-08-02 22:49:38 +09:00
Campbell Alden
0af1b827aa Update main to set everything up (still unused) 2026-08-01 01:10:32 +09:00
Campbell Alden
12797e3cae Add users 2026-08-01 01:10:32 +09:00
Campbell Alden
6700bc9763 Fleshout some of the notifcation service
This is probably organized incorrectly. If it's a service it should
be grouped with the other services
2026-08-01 01:10:32 +09:00
Campbell Alden
0b3b6f50fe Add unconnected database support
Also adds a helper for doing nested config parsing since we're getting
more and more
2026-08-01 01:10:28 +09:00
Campbell Alden
cee708f4d8 Flesh out the email implementation 2026-08-01 01:07:58 +09:00
Campbell Alden
c1a61730d5 Pull email sending concerns out into a standalone service 2026-07-31 18:15:33 +09:00
Campbell Alden
7d535a2c31 Move rss stuff over to a new interface part of the project since it's spiritually different from a notification 2026-07-30 23:54:04 +09:00
Campbell Alden
3891e253ae Steal RSS abstractions from one of my other projects 2026-07-30 23:48:25 +09:00
Campbell Alden
24bb9dae30 Add the bones of an Email Notification service 2026-07-30 23:48:10 +09:00
Campbell Alden
a7fdd6cbd0 Set up the bones of a Flask app with configuration 2026-07-30 22:45:25 +09:00
Campbell Alden
0909fd7e99 Link to the service where you can read dracula in the way described in the README 2026-07-30 00:25:39 +09:00
Campbell Alden
d3d166bf2b Share a half motivational / half explanatory blurb in the README 2026-07-30 00:23:42 +09:00
Campbell Alden
09381d17d0 Initialize repo 2026-07-30 00:14:57 +09:00