Repository navigation
feat(moderation): a DevDogs moderation receiver with user.delete (A6) - #892
Open
sloanfinger wants to merge 1 commit into
Open
sloanfinger wants to merge 1 commit into
sloanfinger wants to merge 1 commit into
Conversation
sloanfinger
requested review from
a team,
SidhantDash and
kquakk
as code owners
October 24, 2026 01:01
Contributor
Author
|
Reviewed signed moderation delivery, replay handling, and local account deletion against No additional confirmed correctness issue identified in the inspected changes. Existing CI results were inspected; the complete repository test suite was not rerun for this review. |
sloanfinger
force-pushed
the
df/a6-moderation-receiver
branch
from
October 27, 2026 08:17
b99dbf3 to
e9e4a0e
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stage A6 (TASK-528) of the DevDogs deferred-features plan. It pairs with DevDogsUGA #215 (A1, the
user.deletetype) and #218 (A2, the job that sends it), and mirrors DogPack #135 (A5). Decision:devdogs-plan/account-deletion-decisions.md§14 (Q48) and §15.What it delivers
DogDays had no moderation receiver. This adds one:
POST /platform-moderation, a Worker route. DogDays has no Edge Functions deploy, so this goes on the Worker rather than in a Supabase function.verifyMessage: constant-time compare, ±300 s tolerance, and several secrets accepted during a rotation.moderationschema.events,decisionsanduser_statesare server-only: RLS on, no grants to anyone butservice_role.dogdays.apply_moderation_eventis SECURITY DEFINER with an empty search path.user.delete.user.deletestill deletes, because deletion is final, and it leaves adeletedtombstone so a replay can't touch a later account.banned_until, sessions removed).content.*messages are recorded only.user.deletetype is accepted locally, pointing at DevDogsUGA Move configs to one file #215, because no published sdk has it yet.New secrets for Sloan (
stagingandproductionGitHub environments)PLATFORM_MODERATION_SECRET(whsec_...):dogdays, endpointhttps://dogdays.dev/platform-moderation(staging:https://staging.dogdays.dev/platform-moderation) and one placeholder content type. Registration refuses an empty list.SECRET_KEY: this Supabase project'ssb_secret_...key. This is the first server secret DogDays' Worker has.Push both with
pnpm backstage env push --repo dogdays --target <target>and redeploy. Until both exist, the route answers 503 and nothing else changes.Please confirm
auth.identitiescould add one.deletedtombstone stays forever, as it does in DogPack.Not verified
/platform-moderationroutes.pnpm devtools moderation send user.delete --to https://staging.dogdays.dev/platform-moderation.Checks run locally: vitest
src/server/moderation(23 tests pass), tsc for the app andcloudflare/, and eslint on the touched files.🤖 Generated with Claude Code