-
Notifications
You must be signed in to change notification settings - Fork 796
fix: support BYOT OAuth mode without requiring service URLs #699
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Fixes: "com.atlassian.confluence.api.service.exceptions.GoneException: This deprecated endpoint has been removed." error when using ATLASSIAN_OAUTH_ENABLE (BYOT) + Atlassian Cloud. **Changes:** - Allow missing CONFLUENCE_URL/JIRA_URL when ATLASSIAN_OAUTH_ENABLE is set - Mark services as available in environment detection for BYOT mode - Preserve original is_cloud behavior based on oauth_config.cloud_id presence **Configuration behavior:** - ATLASSIAN_OAUTH_ENABLE=true + no URLs → creates minimal OAuth config - is_cloud determination depends on ATLASSIAN_OAUTH_CLOUD_ID presence: - With ATLASSIAN_OAUTH_CLOUD_ID → is_cloud = True (Cloud API) - Without ATLASSIAN_OAUTH_CLOUD_ID → is_cloud = False (Server API) - When URLs are provided, they override cloud detection as before **Files modified:** - src/mcp_atlassian/confluence/config.py - src/mcp_atlassian/jira/config.py - src/mcp_atlassian/utils/environment.py **Tests added:** - BYOT OAuth scenarios with/without URLs and cloud_id - Environment service detection for minimal OAuth mode - Various ATLASSIAN_OAUTH_ENABLE value format validation This enables BYOT (Bring Your Own Token) OAuth deployments where user tokens are provided via HTTP headers without requiring static service URL configuration, while maintaining backward compatibility.
|
Does this also fix the depricated Confluence v1 REST calls ? |
|
Assuming that you're running Confluence Cloud with BYOT then yes this should solve it. |
|
@sooperset , I am supportive for this PR Currently if we create API Token, we are forced to use v1 API (unscoped) which may get deprecated Scope vs Unscoped PATH
|
|
Duplicate PR raised in alternative project SharkyND/mcp-atlassian#13 since the maintainer of this one doesn't appear to be active any longer. |
|
In my current approach I'm not creating an API token (unscoped as you have mentioned), instead I'm using an Oauth2 app with granular and classic scoped to get a token and a refresh token, then these tokens are used along the MCP function tool calls. |
|
This pull request has been automatically marked as stale because it has not had recent activity for 14 days. It will be closed if no further activity occurs. Please leave a comment or remove the 'stale' label if you believe this PR is still relevant. Thank you for your contributions! |
Description
Fixes: #698
Changes
Testing
Checklist