Feature/110 a simple way to manage third party logins#407
Merged
felix-schultz merged 5 commits intodevfrom Dec 2, 2025
Merged
Conversation
…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.
This was
linked to
issues
Dec 3, 2025
Closed
Closed
Closed
Closed
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.
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
OAuthCallbackHandlerandOAuthExecutionProvidercomponents 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
BoardStateandEventStateclasses 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
oauthTokenStoreandoauthConsentStorefor 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
Component and Dialog Exports
OAuthConsentDialogfrom the UI package for use in the desktop app, enabling standardized consent dialogs.