Skip to content

Feature/110 a simple way to manage third party logins#407

Merged
felix-schultz merged 5 commits intodevfrom
feature/110-a-simple-way-to-manage-third-party-logins
Dec 2, 2025
Merged

Feature/110 a simple way to manage third party logins#407
felix-schultz merged 5 commits intodevfrom
feature/110-a-simple-way-to-manage-third-party-logins

Conversation

@felix-schultz
Copy link
Copy Markdown
Member

This pull request introduces a comprehensive OAuth integration for the desktop app, enabling secure authorization flows, token management, and consent checks for boards and events. The changes add new providers and handlers for OAuth callbacks, implement token and consent storage, and ensure that both board and event execution require proper authorization and consent before proceeding.

OAuth Integration and Callback Handling

  • Added OAuthCallbackHandler and OAuthExecutionProvider components to the root layout (apps/desktop/app/layout.tsx) to globally handle OAuth callbacks and provider execution, enabling seamless authorization and token management throughout the app. [1] [2] [3] [4]

Board and Event Execution Consent Enforcement

  • Updated BoardState and EventState classes to collect OAuth tokens from board nodes/events, check for missing tokens, and enforce user consent per app before allowing execution. Errors are thrown if tokens or consent are missing, prompting UI dialogs for authorization. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

Token and Consent Store Integration

  • Integrated oauthTokenStore and oauthConsentStore for persistent storage and retrieval of OAuth tokens and user consents, ensuring state survives page reloads and is accessible across the app. [1] [2] [3]

UI and Event Page Updates

  • Updated the events settings page to initiate OAuth authorization flows and pass token/consent stores to the UI, allowing users to connect providers and grant consent interactively.

Component and Dialog Exports

  • Re-exported the OAuthConsentDialog from the UI package for use in the desktop app, enabling standardized consent dialogs.

…nd device flow

- Introduced OAuth helpers for extracting providers from board nodes and managing tokens.
- Implemented OAuth service for handling authorization flows, including PKCE and device flow.
- Added types for OAuth providers, tokens, and storage interfaces.
- Updated board state interfaces to include skipConsentCheck option.
- Enhanced debug authentication tool for testing OAuth callbacks.
- Added DeviceFlowDialog component for handling device authorization flow.
- Integrated DeviceFlowDialog into OAuthExecutionProvider for managing OAuth processes.
- Created oauth-db for storing OAuth tokens and consent information using Dexie.
- Implemented useOAuthExecution hook to manage OAuth authorization flow for boards.
- Enhanced OAuth service to support device flow and store provider information for callbacks.
- Updated event state interfaces to include OAuth token handling.
- Added utility functions for checking OAuth requirements in event processing.
- Added OAuth handling in the EventsPage component, allowing for OAuth token storage and consent management.
- Enhanced EventSinkManager and RSSSink to accommodate OAuth tokens in event processing.
- Updated EventsPageProps to include tokenStore, consentStore, and onStartOAuth callback for OAuth operations.
- Implemented OAuth consent dialog in EventForm and TableActivateSinkButton for user authorization.
- Introduced polling mechanism for OAuth token updates while consent dialogs are active.
- Refactored event creation and activation logic to handle both Personal Access Tokens (PAT) and OAuth tokens seamlessly.
@felix-schultz felix-schultz linked an issue Dec 2, 2025 that may be closed by this pull request
@felix-schultz felix-schultz merged commit 893b258 into dev Dec 2, 2025
4 of 11 checks passed
@github-project-automation github-project-automation bot moved this to Done in Flow-Like Dec 2, 2025
@felix-schultz felix-schultz deleted the feature/110-a-simple-way-to-manage-third-party-logins branch December 2, 2025 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Github Nodes Notion Nodes Microsoft Office Nodes Google Workplace Nodes A simple way to manage third party logins

1 participant