stacker.news/lib
ekzyis b379e7467f
Territory transfers (#878)
* Allow founders to transfer territories

* Log territory transfers in new AuditLog table

* Add territory transfer notifications

* Use polymorphic AuditEvent table

* Add setting for territory transfer notifications

* Add push notification

* Rename label from user to stacker

* More space between cancel and confirm button

* Remove AuditEvent table

The audit table is not necessary for territory transfers and only adds complexity and unrelated discussion to this PR.

Thinking about a future-proof schema for territory transfers and how/what to audit at the same time made my head spin.

Some thoughts I had:

1. Maybe using polymorphism for an audit log / audit events is not a good idea

Using polymorphism as is currently used in the code base (user wallets) means that every generic event must map to exactly one specialized event.

Is this a good requirement/assumption? It already didn't work well for naive auditing of territory transfers since we want events to be indexable by user (no array column) so every event needs to point to a single user but a territory transfer involves multiple users.

This made me wonder: Do we even need a table? Maybe the audit log for a user can be implemented using a view? This would also mean no data denormalization.

2. What to audit and how and why?

Most actions are already tracked in some way by necessity: zaps, items, mutes, payments, ...

In that case: what is the benefit of tracking these things individually in a separate table?

Denormalize simply for convenience or performance? Why no view (see previous point)? Use case needs to be more clearly defined before speccing out a schema.

* Fix territory transfer notification id conflict

* Use include instead of two separate queries

* Drop territory transfer setting

* Remove trigger usage

* Prevent transfers to yourself
2024-03-05 13:56:02 -06:00
..
apollo.js fix sub apollo cache merge errors 2024-02-15 11:32:09 -06:00
badge.js check both `navigator.permissions.query` and `Notification.permission` for permissions (#655) 2023-11-25 11:32:41 -06:00
clicks.js Revert "Revert "shield your eyes; massive, squashed refactor; nextjs/react/react-dom/apollo upgrades"" 2023-07-23 10:08:43 -05:00
constants.js better link rel attr handling 2024-03-04 19:20:14 -06:00
currency.js reuse validation on server 2023-02-08 13:39:53 -06:00
cursor.js Mention auto-complete (#532) 2023-10-04 15:10:56 -05:00
fancy-names.json Add setting to send diagnostics back to SN (#463) 2023-09-18 18:00:16 -05:00
form.js refactor delete notification (#731) 2024-01-03 16:24:46 -06:00
format.js handle other possible base64-like string encodings 2024-02-18 15:08:55 -06:00
item.js improved comment linking 2024-01-17 19:03:49 -06:00
lnurl.js Fix missing HTTPS support for automated withdrawals during development 2024-01-13 17:32:54 +01:00
macaroon-id.js LND autowithdraw (#806) 2024-02-13 13:17:56 -06:00
macaroon-id.proto LND autowithdraw (#806) 2024-02-13 13:17:56 -06:00
macaroon.js handle other possible base64-like string encodings 2024-02-18 15:08:55 -06:00
madness.js Monthly rewards (#890) 2024-03-01 10:28:55 -06:00
md.js remove debug loggin for rehype plugin 2023-10-23 18:16:06 -05:00
new-comments.js subtle highlight of new comments 2023-08-06 14:18:40 -05:00
nostr.js Nostr crossposting all item types (#779) 2024-02-21 19:18:36 -06:00
package.json Convert worker to ESM (#500) 2023-09-23 20:19:35 -05:00
push-notifications.js Territory transfers (#878) 2024-03-05 13:56:02 -06:00
rainbow.js undo zap/downzap and improve downzap ux 2023-12-19 19:55:19 -06:00
rand.js use rand lightning animation when not logged in 2021-07-16 11:47:18 -05:00
remark-mention.js fix mdast find and replace imports 2023-07-24 20:03:56 -05:00
remark-sub.js fix markdown inline code and headings 2023-10-23 17:14:37 -05:00
rss.js Add category tag to RSS feed (#534) 2023-10-02 19:20:13 -05:00
territory.js Make territory billing period changeable (#840) 2024-02-16 12:25:12 -06:00
time.js Monthly rewards (#890) 2024-03-01 10:28:55 -06:00
timedate-scraper.js Attempt to get publication year when auto-titling links (#520) 2023-10-20 19:23:50 -05:00
url.js Add tests for internal linking (#808) 2024-02-17 15:53:36 -06:00
url.spec.js Add tests for internal linking (#808) 2024-02-17 15:53:36 -06:00
validate.js Territory transfers (#878) 2024-03-05 13:56:02 -06:00