Commit Graph

10428 Commits

Author SHA1 Message Date
Nazar Gargol
afe11c2b06 Added basic backup implementation for users DELETE endpoint
- The filename is returned to be able to fetch the backup on demand
- Wasn't able to limit exported tables as exporter doesn't support such functionality
2020-02-10 12:41:39 +00:00
Daniel Lockyer
67f856c572 Update gscan dependency to 3.3.1
no issue
2020-02-10 12:38:55 +00:00
Nazar Gargol
27d2c2fb3a Bumped @tryghost/members-api to 0.14.1
no issue

- This bump fixes a problem where members_stripe_customers_subscriptions were not able to be created due to plan 'nickname' NOT NULL constraing. This case was possible because in earlier versions of Stripe API  `nickname` property was allowed to be `null`
2020-02-10 19:11:42 +08:00
Kevin Ansfield
830610d243 Fixed serving of binary public files
no issue

- serving of our public asset images was broken
  - we were reading the binary file in as a string so we could do url transforms, this meant data was lost/corrupted and browsers could not display the served data
  - we were using the wrong mime-type for pngs which meant browsers were triggering downloads rather than displaying images (at least when accessed directly)
- updates uses of `servePublicFile` to have the correct png mimetype
- adjusts `servePublicFile` to treat any mime type starting with `image` as a binary file, passing the file directly through express using `res.sendFile` and skipping the in-memory content caching which is mostly only useful for text files with URL transforms
2020-02-10 09:51:32 +00:00
Nazar Gargol
42f4518a63 Improved error logging for member CSV import
no issue

- Error object can be an array in case of database constrain validation errors, for this reason need to distinguish between singular objects and an array. This handling resemles the one in common error-handler - https://github.com/TryGhost/Ghost/blob/3.5.0/core/server/web/shared/middlewares/error-handler.js#L31-L33
2020-02-10 16:25:56 +08:00
Nazar Gargol
019605e9e0 Added concurency limit for member creation when importing
no issue

- When importing large batches of members we should not allow for unlimited amount of parallel requests created as this might lead to connection pool problems and reaching API rate limits (for example Stripe API is limited to 100 req/s)
2020-02-10 16:03:08 +08:00
Renovate Bot
6a6413cec5 Update dependency @sentry/node to v5.11.2 2020-02-10 01:16:53 +00:00
Nazar Gargol
e57f7219e5 Added error logging for errors occuring during CSV import
no issue

- CSV import uses direct API calls which skips through logging error. This additional code should catch and record any internal errors
2020-02-07 14:33:30 +08:00
Daniel Lockyer
69ed7cd23f Version bump to 3.5.0 2020-02-05 11:42:31 +00:00
Daniel Lockyer
b3973801df Updated Ghost-Admin to 3.5.0 2020-02-05 11:42:31 +00:00
Daniel Lockyer
f0a045cfd1 Updated Casper to 3.0.7 2020-02-05 11:42:31 +00:00
Nazar Gargol
68a36dd799 Changed members CSV export to match import format
refs c295435b41

- The import format changed the `subscribed` to `subscribed_to_emails`. Export should have the same format as import for consistency
2020-02-05 15:34:55 +08:00
Renovate Bot
c863d215fb Update dependency gscan to v3.3.0 2020-02-04 13:16:06 +00:00
Daniel Lockyer
a510e075b6 Handled missing file extensions for resized image requests
no issue

- if a request was sent for an resized image URL that didn't contain a
  file extension, the code would eventually end up throwing a 500
- this commit checks for this case and returns a 404
2020-02-04 08:04:22 +00:00
Naz Gargol
c295435b41
Added new fields to members CSV import (#11539)
no issue

- New fields that are accepted through members CSV import endpoint are:
  - `subscribed_to_emails` - corresponds to `subscribed` flag in API
  - `stripe_customer_id` - links existing Stripe customer to created member
  - `complimentary_plan` - flag controlling "Complimentary" plan subscription creation for imported member

- Noteworthy exception in field naming - `subscribed_to_emails` that corresponds to `subscribed` API flag present on members resources. It's a special case of CSV format, where users can be less technical it's more explicit to what the flag does (also the same naming is applied in the Admin UI)

- Failing to either link Stripe customer or assign "Complimentary" subscription to imported member behaves in a transaction-like manner - imported record is not created in the database. This is needed to be able to retry imports when it fails for reasons like connectivity failure with Stripe or Stripe miss-configuration.

- To avoid conflicts with linking same Stripe customer to multiple members there is a special handling for duplicate `stripe_customer_id` fields. Records with duplicates are removed from imported set.
2020-02-04 13:51:24 +08:00
Renovate Bot
2f78e53468 Update dependency @tryghost/html-to-mobiledoc to v0.6.3 2020-02-03 22:17:20 +00:00
Daniel Lockyer
d76e76e1ef Fixed code linting issues
no issue

- just extraneous whitespace
2020-02-03 17:49:41 +00:00
Daniel Lockyer
722a92e9b5 Added extra tests to Ghost-CLI GitHub Action
no issue

- test for a clean install and updating from the latest release
- upgrading from the previous major is waiting on an update from
  Ghost-CLI
2020-02-03 17:39:06 +00:00
Daniel Lockyer
9183cf6045 Enabled testing on Renovate PRs
no issue
2020-02-03 15:44:54 +00:00
Daniel Lockyer
d065c268a7 Reverted tmp to v0.0.33
no issue

- Renovate automerged a bump for tmp, but this version has a bug and
  shouldn't have passed the automated tests
- this commit reverts the package back to the working version
2020-02-03 15:22:26 +00:00
Renovate Bot
34be8e7cef Update Test & linting packages 2020-02-03 14:18:05 +00:00
Daniel Lockyer
7751e78c98 Integrated Sentry error tracking
no issue

- this allows tracking of application errors within Sentry
- only enabled for HTTP 500 errors for now
- it is disabled by default
2020-02-03 13:43:43 +00:00
Daniel Lockyer
e200914dec Fixed double builds in Travis
no issue

- Travis builds were being run twice on a PR: once for the PR and once
  for the branch
- this commit whitelists the branches that Travis can run on
2020-02-03 13:37:09 +00:00
Renovate Bot
97d6e6b98b Update dependency simple-html-tokenizer to v0.5.9 2020-02-03 01:17:46 +00:00
Daniel Lockyer
94d9536b62 Fixed select failures in regressions tests
no issue

- a couple of regressions tests would repeatedly fail on CI. They would
  always follow tests that closed the Ghost server beforehand.
- this commit doesn't close the server after those tests have completed,
  which is similar functionality to all other tests
- the actual cause is unknown at this point, but I suspect it's some
  sort of race condition
2020-01-30 11:14:26 +00:00
Daniel Lockyer
1c6583ae03 Set journal_mode to truncate for SQLite in tests
no issue

- we would regularly see IO errors coming from SQLite, which caused
  random regression tests to fail
- the default journal_mode is `delete`, but this is slow and can cause
  issues when multiple tests try to remove the journal file
- `truncate` is faster and shouldn't cause these issues
2020-01-30 11:14:26 +00:00
Daniel Lockyer
ef551768bb Switched to GitHub Actions for lint testing
no issue
2020-01-29 16:54:41 +00:00
Daniel Lockyer
a7fde48d1d Added GitHub Action for testing with Ghost-CLI
no issue

- this helps prevent issues with Ghost-CLI compatibility
2020-01-29 15:39:21 +00:00
Renovate Bot
94047d24af Update dependency gscan to v3.2.5 2020-01-29 12:33:27 +00:00
Daniel Lockyer
e978b176cf Increased Mocha timeout to 60s
no issue

- allow for random platform delays in tests
2020-01-29 11:49:08 +00:00
Daniel Lockyer
e04f55cce3 Set Mocha to retry failed tests 3 times
no issue

- we occasionally see random errors which fail tests
- this is a problem because it's blocking us seeing which tests are
  really failing
- for now, retry the tests 3 times to overcome the intermittent problem
  until a better solution is found
2020-01-29 11:49:08 +00:00
Kevin Ansfield
b4f129f164 Version bump to 3.4.0 2020-01-28 17:23:42 +00:00
Kevin Ansfield
4e54691310 Updated Ghost-Admin to 3.4.0 2020-01-28 17:23:42 +00:00
Kevin Ansfield
68e2274d6d Reverted "Integrated Sentry error tracking"
This reverts commit 6e024331eb.

Temporarily reverting whilst we investigate an issue with Sentry and running Ghost via Ghost-CLI.

Ghost-CLI initiated boot was failing when Sentry was installed due to what appears to be `process.cwd()` returning `undefined` here https://github.com/TryGhost/Ignition/blob/master/lib/config/index.js#L26
2020-01-28 17:21:37 +00:00
Naz Gargol
25f11bbf1c
Added complimentary member subscription (#11537)
no issue

- We need a way to simulate "premium" membership without any payment from members' side. For this new "Complimentary" plan is introduced
- Allows `comped` flag as an input only on `PUT /members/:id` endpoint which sets  free subscriptions based on "complimentary" plan on the member
- Added `comped` flag to members endpoint responses
- Bumped members-api to 0.12.0. This version supports new set/cancel complimentary subscription methods
2020-01-28 11:25:00 +07:00
Naz Gargol
07e1a2406b Added {{price}} helper for formatting stripe amounts (ie. "1935" to "19.35") (#11473)
no issue

- This helper allows to format currencies that use decimal normalization. For example 19.35 USD is served as 1935 from the API which always needs to be divided by 100 to get a dollar ammount.
2020-01-27 11:41:12 +00:00
Daniel Lockyer
5f49144985 Changed stalebot to ignore issues tagged with 'pinned'
no issue

- this stops the annoying stale-unstale loops we find ourselves in
2020-01-27 10:38:58 +07:00
Renovate Bot
56bcd4279f Update dependency @tryghost/helpers to v1.1.22 2020-01-27 01:16:37 +00:00
John O'Nolan
271e0c9cf7
Update README.md 2020-01-26 21:05:53 +07:00
Kevin Ansfield
8b787ac803 🐛 Fixed unnecessary "unsaved changes" modal when using HR cards
no issue

- the `hr` mobiledoc card does not specify an `absoluteToRelative` or `relativeToAbsolute` transformer function so falls back to the default transformer
- the default transformer function's arguments were not correct which meant that the UrlUtils object was replacing the card's typical empty-object payload
- the card's payload changing when saving mobiledoc was triggering the editor's unsaved changes warning because the API response no longer matched what was in the editor
2020-01-22 11:59:13 +00:00
Daniel Lockyer
6e024331eb Integrated Sentry error tracking
no issue

- this allows tracking of application errors within Sentry
- only enabled for HTTP 500 errors for now
- it is disabled by default
2020-01-22 12:15:10 +07:00
Peter Zimon
a8b272cbd8 🐛 Fixed small image alignment for newsletters
no refs.
- fixed image alignment to be center for images smaller than newsletter content width
2020-01-21 13:21:45 +01:00
Renovate Bot
13c87c687f Update dependency @tryghost/members-ssr to v0.7.4 2020-01-20 11:18:42 +00:00
Kevin Ansfield
4da73f3a32
Updated Gruntfile to handle new ember-cli logging format (#11253)
refs https://github.com/TryGhost/Ghost-Admin/pull/1335

- ember-cli now has a build progress spinner and some updated messages
- updates Gruntfile stdout/stderr handling to ignore certain error output so that we continue to output the periodic "building admin client..." notifications
2020-01-20 09:42:50 +00:00
Rish
334bdc3f10 Installed @tryghost/members-api@0..11.2
no-issue

Fixes incorrect stripe subscriptions structure in user CRUD
2020-01-20 13:42:55 +05:30
Renovate Bot
a3e0594fa5 Update dependency @tryghost/helpers to v1.1.21 2020-01-20 01:19:22 +00:00
Daniel Lockyer
dbcffe9245 🐛 Handled trailing slashes in resized image URLs
no issue

- requests for resized images with a trailing slash would end up
  throwing a EISDIR error because it got through to writing an
  image buffer to a directory
- we want to cut this off early and disallow trailing slashes
2020-01-18 13:45:22 +07:00
renovate[bot]
af4ecb7b76 Update dependency cookie-session to v1.4.0 (#11510)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-17 13:10:48 +07:00
Nazar Gargol
f5bcf77a16 Fixed typo in the post fixture
closes https://github.com/TryGhost/Ghost/issues/11520
refs

- The typo was introduced in https://github.com/TryGhost/Ghost/pull/11247
2020-01-17 13:00:38 +07:00
Nazar Gargol
4b57ad33b0 Removed unused isPaymentConfigured method
refs https://github.com/TryGhost/Ghost/pull/11499

- Removed unused and confusin isPaymentConfigured because it was basing it's logic on old `isPaid` flag. Having it in the codebase was adding confusion.
- `isPaid` config flag still needs a proper cleanup with a migration etc.
- Added little post PR merge cleanup
2020-01-17 12:08:30 +07:00