Ghost/ghost/core/test/e2e-api/admin
Simon Backx 75bb53f065
🔒 Added support for logging out members on all devices (#18935)
fixes https://github.com/TryGhost/Product/issues/3738
https://www.notion.so/ghost/Member-Session-Invalidation-13254316f2244c34bcbc65c101eb5cc4

- Adds the transient_id column to the members table. This defaults to
email, to keep it backwards compatible (not logging out all existing
sessions)
- Instead of using the email in the cookies, we now use the transient_id
- Updating the transient_id means invalidating all sessions of a member
- Adds an endpoint to the admin api to log out a member from all devices
- Added the `all` body property to the DELETE session endpoint in the
members API. Setting it to true will sign a member out from all devices.
- Adds a UI button in Admin to sign a member out from all devices
- Portal 'sign out of all devices' will not be added for now

Related changes (added because these areas were affected by the code
changes):
- Adds a serializer to member events / activity feed endpoints - all
member fields were returned here, so the transient_id would also be
returned - which is not needed and bloats the API response size
(`transient_id` is not a secret because the cookies are signed)
- Removed `loadMemberSession` from public settings browse (not used
anymore + bad pattern)

Performance tests on site with 50.000 members (on Macbook M1 Pro):
- Migrate: 6s (adding column 4s, setting to email is 1s, dropping
nullable: 1s)
- Rollback: 2s
2023-11-15 17:10:28 +01:00
..
__snapshots__ 🔒 Added support for logging out members on all devices (#18935) 2023-11-15 17:10:28 +01:00
actions.test.js Removed Bluebird from tests 2023-06-23 10:03:03 +02:00
activity-feed.test.js Updated to use assert/strict everywhere (#17047) 2023-06-21 09:56:59 +01:00
collections.test.js Removed post_revisions default include 2023-10-12 13:10:05 +02:00
config.test.js 💡 Upgraded Tenor API to v2 (#15087) 2022-08-05 12:13:27 +01:00
custom-theme-settings.test.js Prevent simple error logs by stubbing log library 2023-03-03 18:25:53 +00:00
db.test.js Removed all unused variables from test files 2023-03-10 14:29:55 +01:00
email-preview-rate-limiter.test.js Added test email rate limiting (#17505) 2023-07-27 08:46:50 +02:00
email-previews.test.js Updated to use assert/strict everywhere (#17047) 2023-06-21 09:56:59 +01:00
emails.test.js Updated to use assert/strict everywhere (#17047) 2023-06-21 09:56:59 +01:00
explore.test.js Added Content-Version header to all API requests 2023-01-18 08:38:07 +01:00
files.test.js Removed all unused variables from test files 2023-03-10 14:29:55 +01:00
images.test.js Updated to use assert/strict everywhere (#17047) 2023-06-21 09:56:59 +01:00
integrations.test.js Fixed self-serve api key type 2023-03-28 11:59:17 +02:00
invites.test.js Supported inviting users using an Admin API Integration 2023-05-08 15:27:15 -04:00
key-authentication.test.js Prevent simple error logs by stubbing log library 2023-03-03 18:25:53 +00:00
labels.test.js Prevent simple error logs by stubbing log library 2023-03-03 18:25:53 +00:00
links.test.js 🐛 Fixed post links being marked as edited when they were not (#16153) 2023-01-20 13:31:54 +01:00
mail-events.test.js Add endpoint to record mail events (#16990) 2023-06-23 12:22:01 +01:00
media.test.js Removed all unused variables from test files 2023-03-10 14:29:55 +01:00
members-edit-subscriptions.test.js 🐛 Fixed handling multiple Stripe subscriptions for same member (#17773) 2023-08-22 13:27:21 +02:00
members-exporter.test.js Retain newsletter subscriptions on suppression (#17373) 2023-07-24 10:47:57 +01:00
members-importer.test.js Removed all unused variables from test files 2023-03-10 14:29:55 +01:00
members-newsletters.test.js Removed all unused variables from test files 2023-03-10 14:29:55 +01:00
members-stripe-connect.test.js Added Content-Version header to all API requests 2023-01-18 08:38:07 +01:00
members.test.js 🔒 Added support for logging out members on all devices (#18935) 2023-11-15 17:10:28 +01:00
mentions.test.js Removed required webmentions flag for mentions admin endpoint 2023-09-19 17:31:55 +02:00
newsletters.test.js Retain newsletter subscriptions on suppression (#17373) 2023-07-24 10:47:57 +01:00
notifications.test.js Removed all unused variables from test files 2023-03-10 14:29:55 +01:00
oembed.test.js 🐛 Improved error message for unauthorized YouTube embeds (#16374) 2023-05-04 16:04:58 -07:00
offers.test.js Prevents errors from being logged during the offers tests 2023-03-03 18:25:53 +00:00
pages-bulk.test.js Updated to use assert/strict everywhere (#17047) 2023-06-21 09:56:59 +01:00
pages-legacy.test.js Cleaned up lexicalEditor labs flag, switched Post model to lexical-by-default (#18607) 2023-10-23 17:51:34 +01:00
pages.test.js Cleaned up lexicalEditor labs flag, switched Post model to lexical-by-default (#18607) 2023-10-23 17:51:34 +01:00
posts-bulk.test.js Fixed collection cards not re-rendering when posts were bulk-edited 2023-09-28 18:05:01 +01:00
posts-legacy.test.js Cleaned up lexicalEditor labs flag, switched Post model to lexical-by-default (#18607) 2023-10-23 17:51:34 +01:00
posts.test.js Cleaned up lexicalEditor labs flag, switched Post model to lexical-by-default (#18607) 2023-10-23 17:51:34 +01:00
rate-limiting.test.js Added Content-Version header to all API requests 2023-01-18 08:38:07 +01:00
recommendations.test.js 🐛 Fixed adding recommendation with URL redirect breaking one-click-subscribe (#18863) 2023-11-03 15:02:45 +01:00
redirects.test.js Improved performance of prepareContentFolder function 2022-08-01 08:58:13 +02:00
roles.test.js Added migrations for Self-Serve Migration Integration and API key 2023-03-24 11:28:29 +01:00
session.test.js Added Content-Version header to all API requests 2023-01-18 08:38:07 +01:00
settings-files.test.js Removed all unused variables from test files 2023-03-10 14:29:55 +01:00
settings.test.js Added one-click-subscribe detection (#17995) 2023-09-06 15:11:14 +00:00
site.test.js Added Content-Version header to all API requests 2023-01-18 08:38:07 +01:00
slugs.test.js Converted Ghost repo into a monorepo 2022-07-20 16:41:05 +02:00
snippets.test.js Added support for filtering snippets to mobiledoc/lexical (#16636) 2023-04-17 10:54:08 +04:00
stats.test.js Updated to use assert/strict everywhere (#17047) 2023-06-21 09:56:59 +01:00
tags.test.js Removed bluebird catch predicates from API endpoints 2022-08-24 11:27:09 +01:00
themes.test.js Updated theme fixtures for casper and source (#18677) 2023-10-18 14:51:35 -07:00
tiers.test.js 🐛 Fixed bug preventing changes to tier benefit capitalization (#18406) 2023-10-05 19:04:11 -07:00
users.test.js Removed Bluebird from tests 2023-06-23 10:03:03 +02:00
utils.js Cleaned up lexicalEditor labs flag, switched Post model to lexical-by-default (#18607) 2023-10-23 17:51:34 +01:00
webhooks.test.js Added Content-Version header to all API requests 2023-01-18 08:38:07 +01:00