Skip to content

Decouple OAuth Login from Resource Connections for External Service Integration #216

Description

@kunal0137

Is there an existing issue for this?

  • I confirm that I have not found an existing or similar issue.

Problem (why)

Currently, all OAuth logins under UserResource are tied to authenticating users into our platform (SSO). This setup prevents users from connecting additional external accounts (e.g., Google, Gmail, Microsoft 365) for data integrations and resource access without using OAuth as their login method.
We need to enable users to connect external accounts for resource access after they are already logged into the platform, independently from the way they authenticate to SEMOSS itself.

Impact (who)

This change benefits all users who want to integrate or sync data from third-party platforms (e.g., Gmail, Google Drive), allowing greater flexibility and improved experience.
It will also unblock future integrations with other SaaS services where OAuth is required for data access but not necessarily for platform authentication.

Existing

UserResource.java
social.properties

Requirements (what)

  • Add a new flag to social.properties (e.g., enable_connection) for each OAuth provider to control whether that provider is enabled for connecting resources, independently of enable_login.
  • Update backend logic so that:
    • Providers with enable_login=true behave as platform SSO options as before.
    • Providers with enable_connection=true but enable_login=false are hidden from the login page, but can be added as a resource connection once the user is logged into the platform.
  • Update endpoints like /auth/logins and /auth/loginsAllowed so the frontend can distinguish and separately display login options vs. resource connection options.
  • Validate that changes are covered by new/updated unit tests and integration tests (including different combinations of the flags).
  • Edit the user / access token objects to validate that once tokens for login providers are removed/expired, the user is logged out - even if resource login providers remain
  • Document the new configuration options in supporting docs and in codebase READMEs, including migration guidelines.

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions