[pull] main from TryGhost:main - #1447
Merged
Merged
Conversation
no issue Email-delivered gifts already know the intended recipient address, so the customized redemption flow can use it as an editable prefill instead of asking the recipient to enter it again. - Added nullable recipient email to the shared GET and POST redemption DTO - Read delivery details through GiftDelivery without changing the Gift model - Prefilled only the customized Portal redemption page - Updated the bearer-link domain contract and regression coverage
no erf Moved various admin UI tests from e2e into the admin acceptance tier.
closes [ONC-1965](https://linear.app/ghost/issue/ONC-1965/email-analytics-prevent-a-shared-cursor-from-skipping-capped-sending) During custom sending-domain warming, the custom and fallback Mailgun domains share one analytics cursor. A domain with newer events could advance it even when the other domain stopped at its event limit, leaving unprocessed pages behind on the capped domain. Use the earliest cursor from any capped domain. Domains that reach the end no longer hold the cursor back, and Mailgun request order, filters, pagination, and per-domain limits stay unchanged. Co-authored-by: Steve Larson <9larsons@gmail.com>
A publisher can now say what a tier's checkout asks for beyond the payment, and where each answer is kept. The answer to where is a binding: it names the source that collects, the source's own word for the thing, and the field the value lands in. Everything that writes into a member's custom fields goes through one, so what writes into a field is a single join rather than a different one per writer. Where a value lands and whether it is being collected are one row, because holding them apart in two tables let them disagree, with no composite foreign key or check constraint able to stop it: a tier could ask for something with nowhere to put it, or go on receiving what a publisher had turned off. The row is the collecting. There is one and the source writes through it, or there is none and it does not. Where each value lands is stated by the request rather than worked out on the publisher's behalf. A field the site already keeps under that key has to be active and hold the kind of thing the port supplies; a key it does not keep yet is made into a field, listed under the name the port carries. Anything else is refused, because a checkout quietly collecting into somewhere other than the field a publisher named is worse than one that says it cannot. Nothing sends any of this to a payment processor yet, and every route that changes it is behind the members custom fields flag. ref https://linear.app/ghost/issue/BER-3872
ref https://linear.app/ghost/issue/NY-1550 This is a development only change that should have no user impact. _Note: this PR depends on [this PR](TryGhost/TrafficAnalytics#859) in the Traffic Analytics repository._ ## Summary When developing features that touch both Ghost and the Traffic Analytics service, it can be useful to run your local version of both services locally. Currently, `pnpm dev:analytics` runs Ghost against the latest published version of the Traffic Analytics service, but running against your own locally running instance of the service was not possible out of the box — this makes it as simple as running `pnpm dev:analytics:local` in Ghost, and `yarn dev:ghost` in Traffic Analytics
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )