Repository navigation
feat(write): submit stories to blogs through publications (M14) - #25
Merged
Merged
Conversation
Blogs register a publication in Settings › Publications and link to /write/new?publication=pub_…. Contributors write in their own Wonky Write document and press Submit; the server sends a signed webhook (Standard Webhooks) to the blog's review queue. Moderators get comment access to submitted documents, and the blog's status calls and messages appear in the document as a thread under the publication's name, with notifications. - Server: platform/publications (models, services, webhook outbox with retries and the wonky.publicationSweep job, SSRF-safe delivery, the /api/pub/v1 API with API keys, site verification), hooks in trash, comments, sign-up and sharing, migration. - Client: publication repository, Settings › Publications, the /new?publication= consent flow, notification/activity/comment/share rendering, undo of disconnect; Write title-row Submit button and status chip, submit dialog, write.submission.* commands and File menu items. - Spec 18 and cross-references; docs/blog-integration.md for blog owners. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Summary
Lets a blog take stories from Wonky Write. The blog registers a publication in Settings › Publications and links to
https://wonky.work/write/new?publication=pub_…. Contributors write in their own Wonky document and press Submit. Wonky sends a signed webhook (Standard Webhooks) to the blog's review queue. The blog's moderators get comment access to the document, and the blog's status calls and messages come back into the document as a thread under the publication's name, with notifications.specs/18-publications-and-submissions.md, with cross-references in specs 03, 06, 07, 08, 13 and 14 and in Write 05.docs/blog-integration.md: setup, signature checks (Node.js, Python, Dart, plus a test vector), payloads, the API reference and troubleshooting.Server (
platform/publications/)publication,publication_moderator,publication_consent,publication_block,submission,submission_revision,submission_asset,publication_delivery; plusDriveItemPermission.viaPublicationId,Comment.publicationId,NotificationKind.submissionandActivityType.submission.webhook-id(1 min to 12 h). The retries run fromwonky.publicationSweep, every minute. Delivery goes through the SSRF-safeUrlFetchProxy: https on port 443 only, no redirects./api/pub/v1/**for blogs, with API keys: list and get submissions, get submitted content, set status, send messages, download assets, block users. Rate-limited, with header-only checks before the body is read./.well-known/wonky-publications.json; signing-secret rotation, where both secrets sign for 24 h.comment.created), pending moderators linked at sign-up, and a direct share turning a moderator grant into a regular one.Client
wonky_app:PublicationRepositoryand the Settings › Publications section./new?publication=consent and continue-a-draft flow.features/publish/):write.submission.*commands and File menu items.Test plan
dart analyze/flutter analyzeclean (server,wonky_app, Write, Drive, Sheets, Slides);dart formatappliedtest/unit/publications/andtest/integration/platform/publications/, which cover the flow, the API over HTTP, owner endpoints and the guide's signature vector. The touched suites pass too: comments, sharing, trash, notifications, users, versions,server_test, source rules and the spec index.wonky_app: full suite green, including the newtest/publications/. Settings accessibility and pseudo-locale tests cover the new section.test/features/publish/. The Drive, Sheets and Slides settings tests pass.TODO.md).🤖 Generated with Claude Code