Is there an existing issue for this?
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)
Is there an existing issue for this?
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)
social.properties(e.g.,enable_connection) for each OAuth provider to control whether that provider is enabled for connecting resources, independently ofenable_login.enable_login=truebehave as platform SSO options as before.enable_connection=truebutenable_login=falseare hidden from the login page, but can be added as a resource connection once the user is logged into the platform./auth/loginsand/auth/loginsAllowedso the frontend can distinguish and separately display login options vs. resource connection options.