It would be nice to be able to hide from the DB...:
Whether or not a task is done
Who has been assigned a task
Task titles tend to be small, and thus encrypted tasks will be small (if there are no task descriptions), so maybe just re-encrypt a task every time its assignee or done status changes? Because then the assignee and done status can be stored as metadata stuffed into the filename field, which is where chat messages store who they're from.
Or the status and assignee of a task could simply be stored encryptedly in other blobs, but then tasks wouldn't be as self-contained; there'd be multiple columns per task. That isn't the end of the world, but... it's less elegant. Plus decrypting 3+ small blobs per task will be a lot slower than decrypting 1 slightly larger blob per task that simply contains all the fields. That means that doing what I described above would likely lead to faster app startup times, which is an important thing to optimize for.
Some considerations:
It would be nice to be able to hide from the DB...:
Task titles tend to be small, and thus encrypted tasks will be small (if there are no task descriptions), so maybe just re-encrypt a task every time its assignee or done status changes? Because then the assignee and done status can be stored as metadata stuffed into the filename field, which is where chat messages store who they're from.
Or the status and assignee of a task could simply be stored encryptedly in other blobs, but then tasks wouldn't be as self-contained; there'd be multiple columns per task. That isn't the end of the world, but... it's less elegant. Plus decrypting 3+ small blobs per task will be a lot slower than decrypting 1 slightly larger blob per task that simply contains all the fields. That means that doing what I described above would likely lead to faster app startup times, which is an important thing to optimize for.