Lay foundation for workspaces#464
Draft
synzen wants to merge 17 commits into
Draft
Conversation
The round-trip spec drives two real browser sessions through a
multi-redirect OAuth bootstrap, the one-time-code email verification, and
accept in a single test. That exceeds Playwright's 30s default budget, so
the invitee bootstrap's authenticated-shell wait would blow the timeout
and Playwright would tear down the context mid-goto ("Target page ...
has been closed"). Mark it test.slow() to match the sibling
self-accept-guard spec, which does the same two-session dance.
…tion # Conflicts: # services/backend-api/client/src/features/feed/components/AddUserFeedDialog/index.tsx # services/backend-api/client/src/pages/UserSettings.tsx # services/backend-api/src/services/user-feeds/user-feeds.service.ts # services/backend-api/test/helpers/user-feeds.harness.ts
…rts, typed invite-claim response body
One member's personal Reddit grant backs every Reddit feed in a workspace
(Zapier/Buffer model): workspace feeds resolve ONLY the workspace connection
and personal feeds ONLY the creator's, with no fallback in either direction.
- Workspace.externalCredentials with connectedByUserId attribution; surfaced
on the workspace detail endpoint as redditConnection ("Connected by X")
- Reddit OAuth login accepts ?workspaceId, carried via a session-stored state
nonce (also fixes the previously hardcoded state="state" CSRF gap); the
callback verifies workspace membership before exchanging the code
- Credential resolution by feed scope at every chokepoint: lookup-detail
construction, the mandatory-connection gate, lookup-key sync (user-keyed
sync now excludes workspace feeds), scheduled-fetch pipelines, delivery
events, previews/test sends, and the credential refresh sweep
- Revoke-on-exit: when the connecting member leaves or is removed, the grant
is revoked at Reddit, the connection is marked REVOKED, workspace feeds
stop fetching with it, and every member is emailed (any member can
reconnect with their own account)
- DELETE /workspaces/:slug/reddit-connection (any member) + workspace
settings Integrations UI; reddit gates (UrlValidationResult, BrowseFeeds,
EditUserFeedDialog, FixFeedRequestsCTA) are workspace-aware via FeedScope
…ree-teams-foundation # Conflicts: # e2e/e2e-mock.sh
…etting exhaustion - Map host.docker.internal to 127.0.0.1 on CI runners so the host-side browser can follow backend-issued OAuth redirects to the mock Discord and Reddit servers (Docker Desktop provides this mapping; Linux runners do not, leaving popups stuck on chrome-error://chromewebdata/) - Only create the ephemeral Paddle notification setting for runs that include the e2e-paddle project; mocked web shards never receive real webhooks and were exhausting the sandbox's active-settings cap - Reclaim stale ephemeral notification settings (leaked by hard-killed runners) before creating a new one, using a created= timestamp in the description to spare settings belonging to concurrent runs
ed0178d to
66200cc
Compare
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.
No description provided.