96 Commits (ac6d756acb8ebec5f75ec7db529474e743c3b31b)
 

Author SHA1 Message Date
anna ac6d756acb
use newtypes for clear and hashed passwords 1 year ago
anna 27ccba5252
util: add ValidateField trait 1 year ago
anna 4be3bdda0c
add public/private keys for users 1 year ago
anna 888caba1d1
data: return Arc<T> from MemCache 1 year ago
anna 67053e0812
core: lift Size trait bound for Id<T> 1 year ago
anna a0d2dc4151
refactor model IDs to use safe types
This is a major refactor that introduces a new
generic type Id<T, I> for tagging any ID with the
model they reference without any runtime overhead.
From now on, it should be pretty much impossible
to pass e.g. a note ID to a function that expects,
say, an account ID.

Furthermore, the follow and like tables have been
simplified to use the two IDs that define the
relationship as a composite primary key.

Finally, likes now have a memory cache.
1 year ago
anna 7845fb3680
data: refactor memcache 1 year ago
anna 2c96fa702e
conf: cargo fmt 1 year ago
anna 4bcaaa8f2f
ap/loader: fix tests
This removes some accidental bugs from mindlessly
retyping the original code as well as some
copy-paste errors.
Also adds tests for nyanoblog's extensions.
1 year ago
anna 605a7caa2c
util: refactor HTTP request API 1 year ago
anna 20b5cc32cc
core: move errors to separate module 1 year ago
anna 64739eeead
ap: add proper document loader
This still lacks caching, but it is slightly more
advanced than just using the ReqwestLoader that
the json_ld crate provides.
1 year ago
anna 7124590ff3
util: add reqwest wrapper 1 year ago
anna da603511c4
cargo: update json-ld to 0.12 1 year ago
anna af08336532
memcache: generalize indexing
This should also improve performance a little
because entries are now behind an Arc, so the
lock has to be held for shorter time periods.
1 year ago
anna a07123f876
prevent unnecessary JWT key duplication
The HMAC secret was stored as raw bytes in the
config object, which required creating an
entirely new DecodingKey and EncodingKey struct
every whenever checking the password.
This patch stores these structures directly in
the config object, preventing new allocations.
1 year ago
anna 0000137461
web: refactor local globe icon 1 year ago
anna d4be43c06f
web: improve button squishiness 1 year ago
anna 4c15d2ffc1
add favourite and unfavourite endpoints 1 year ago
anna 922fa83772
add some status endpoints 1 year ago
anna aaf4ab53b7
memcache: support deleting stuff 1 year ago
anna ef1bdfcf7c
data: add content_type field to notes 1 year ago
anna 56db49bdfe
cargussy format 1 year ago
anna 5b985b0059
add stub ActivityStreams inbox endpoint & worker 1 year ago
anna 6e81a7198b
job: improve docs a little 1 year ago
anna e387e43dab
add API entities and more accounts endpoints 1 year ago
anna 8ea3ebda54
data: add in-memory cache 1 year ago
anna 9eb7601f9d
add LOCAL_DOMAIN config value 1 year ago
anna 0d9504ca3b
add objects table 1 year ago
anna f1a631efff
data: remove unnecessary generics
The repository layer is the central gateway to
the data storage subsystem, so it should also be
solely responsible for transforming data coming
from the rest of the app into the appropriate
format.
1 year ago
anna 4f542571e0
add iri column 1 year ago
anna 93182705d9
data: return newly crated entries in SQL 1 year ago
anna fb8bf0f316
job: retry on failure, general refactor 1 year ago
anna 055a97a8e1
ap: add base object type 1 year ago
anna 6a4e753069
util: fix type 1 year ago
anna 369780f48f
ap: add tests for context 1 year ago
anna e568927d4b
ap: add well-known NS URIs 1 year ago
anna 28b36a20b4
ap: refactor context deserialization 1 year ago
anna 9be5fa9a2c
ap: add @context implementation
I'm calling it now, the path to ActivityPub
compliance is going to be an excruciatingly
painful one.
1 year ago
anna a5b097bce5
implement validate for bearcaps 1 year ago
anna 64e670480a
add bearcap utility 1 year ago
anna 4e9a09f74b
refactor password hash API 1 year ago
anna 271a912879
add auth middleware and identity endpoint 1 year ago
anna d6fc5d373a
add auth endpoint 1 year ago
anna 41b27830b9
add signup endpoint 1 year ago
anna 776cbe6d52
add even more fields to user schema 1 year ago
anna eccf4810a9
add some documentation for top-level modules 1 year ago
anna 808b03b817
add source to notes schema 1 year ago
anna 44807f408f
include JWT secret in default config 1 year ago
anna a3de1942c8
add JWT stuff 1 year ago