Commit f08e92a
committed
feat(all): add OAuth re-authentication for MCP installations
Allow users to recover from expired OAuth tokens by re-authenticating existing installations without reinstalling.
Backend:
- Add database migration for installation_id field in oauthPendingFlows table
- Add POST /teams/:teamId/mcp/installations/:installationId/reauth endpoint
- Modify OAuth callback to detect re-auth flows and update tokens in-place
- Fix non-existent permission check (use mcp.installations.view)
Frontend:
- Add re-authenticate button on installation detail page (requires_reauth status)
- Add OAuth popup flow with postMessage handling and status updates
- Add McpInstallationService.startReAuth() method
- Add i18n translations for re-auth UI
- Fix button visibility for all team members (OAuth is per-user)
- Fix props usage for team/installation IDs
When OAuth tokens fail to refresh, users can now click "Re-authenticate" to restart OAuth flow and update credentials without losing their installation configuration.1 parent 69ace9d commit f08e92a
File tree
13 files changed
+7396
-9
lines changed- services
- backend
- drizzle/migrations
- meta
- src
- db/schema-tables
- routes/mcp/installations
- frontend/src
- components/mcp-server/installation
- i18n/locales/en
- services
- types
13 files changed
+7396
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27861 | 27861 | | |
27862 | 27862 | | |
27863 | 27863 | | |
| 27864 | + | |
| 27865 | + | |
| 27866 | + | |
| 27867 | + | |
| 27868 | + | |
| 27869 | + | |
| 27870 | + | |
| 27871 | + | |
| 27872 | + | |
| 27873 | + | |
| 27874 | + | |
| 27875 | + | |
| 27876 | + | |
| 27877 | + | |
| 27878 | + | |
| 27879 | + | |
| 27880 | + | |
| 27881 | + | |
| 27882 | + | |
| 27883 | + | |
| 27884 | + | |
| 27885 | + | |
| 27886 | + | |
| 27887 | + | |
| 27888 | + | |
| 27889 | + | |
| 27890 | + | |
| 27891 | + | |
| 27892 | + | |
| 27893 | + | |
| 27894 | + | |
| 27895 | + | |
| 27896 | + | |
| 27897 | + | |
| 27898 | + | |
| 27899 | + | |
| 27900 | + | |
| 27901 | + | |
| 27902 | + | |
| 27903 | + | |
| 27904 | + | |
| 27905 | + | |
| 27906 | + | |
| 27907 | + | |
| 27908 | + | |
| 27909 | + | |
| 27910 | + | |
| 27911 | + | |
| 27912 | + | |
| 27913 | + | |
| 27914 | + | |
| 27915 | + | |
| 27916 | + | |
| 27917 | + | |
| 27918 | + | |
| 27919 | + | |
| 27920 | + | |
| 27921 | + | |
| 27922 | + | |
| 27923 | + | |
| 27924 | + | |
| 27925 | + | |
| 27926 | + | |
| 27927 | + | |
| 27928 | + | |
| 27929 | + | |
| 27930 | + | |
| 27931 | + | |
| 27932 | + | |
| 27933 | + | |
| 27934 | + | |
| 27935 | + | |
| 27936 | + | |
| 27937 | + | |
| 27938 | + | |
| 27939 | + | |
| 27940 | + | |
| 27941 | + | |
| 27942 | + | |
| 27943 | + | |
| 27944 | + | |
| 27945 | + | |
| 27946 | + | |
| 27947 | + | |
| 27948 | + | |
| 27949 | + | |
| 27950 | + | |
| 27951 | + | |
| 27952 | + | |
| 27953 | + | |
| 27954 | + | |
| 27955 | + | |
| 27956 | + | |
| 27957 | + | |
| 27958 | + | |
| 27959 | + | |
| 27960 | + | |
| 27961 | + | |
| 27962 | + | |
| 27963 | + | |
| 27964 | + | |
| 27965 | + | |
| 27966 | + | |
| 27967 | + | |
| 27968 | + | |
| 27969 | + | |
| 27970 | + | |
| 27971 | + | |
| 27972 | + | |
| 27973 | + | |
| 27974 | + | |
| 27975 | + | |
| 27976 | + | |
| 27977 | + | |
| 27978 | + | |
| 27979 | + | |
| 27980 | + | |
| 27981 | + | |
| 27982 | + | |
| 27983 | + | |
| 27984 | + | |
| 27985 | + | |
| 27986 | + | |
| 27987 | + | |
| 27988 | + | |
| 27989 | + | |
| 27990 | + | |
| 27991 | + | |
| 27992 | + | |
| 27993 | + | |
| 27994 | + | |
| 27995 | + | |
| 27996 | + | |
| 27997 | + | |
| 27998 | + | |
| 27999 | + | |
| 28000 | + | |
| 28001 | + | |
| 28002 | + | |
| 28003 | + | |
| 28004 | + | |
| 28005 | + | |
| 28006 | + | |
| 28007 | + | |
| 28008 | + | |
| 28009 | + | |
| 28010 | + | |
| 28011 | + | |
| 28012 | + | |
| 28013 | + | |
| 28014 | + | |
| 28015 | + | |
| 28016 | + | |
| 28017 | + | |
| 28018 | + | |
| 28019 | + | |
| 28020 | + | |
| 28021 | + | |
| 28022 | + | |
| 28023 | + | |
| 28024 | + | |
| 28025 | + | |
| 28026 | + | |
| 28027 | + | |
| 28028 | + | |
| 28029 | + | |
| 28030 | + | |
| 28031 | + | |
| 28032 | + | |
| 28033 | + | |
| 28034 | + | |
| 28035 | + | |
| 28036 | + | |
| 28037 | + | |
| 28038 | + | |
| 28039 | + | |
| 28040 | + | |
| 28041 | + | |
| 28042 | + | |
| 28043 | + | |
| 28044 | + | |
| 28045 | + | |
| 28046 | + | |
| 28047 | + | |
| 28048 | + | |
| 28049 | + | |
| 28050 | + | |
| 28051 | + | |
| 28052 | + | |
| 28053 | + | |
| 28054 | + | |
| 28055 | + | |
| 28056 | + | |
| 28057 | + | |
| 28058 | + | |
| 28059 | + | |
| 28060 | + | |
| 28061 | + | |
| 28062 | + | |
| 28063 | + | |
| 28064 | + | |
| 28065 | + | |
| 28066 | + | |
| 28067 | + | |
| 28068 | + | |
| 28069 | + | |
| 28070 | + | |
| 28071 | + | |
| 28072 | + | |
27864 | 28073 | | |
27865 | 28074 | | |
27866 | 28075 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19751 | 19751 | | |
19752 | 19752 | | |
19753 | 19753 | | |
| 19754 | + | |
| 19755 | + | |
| 19756 | + | |
| 19757 | + | |
| 19758 | + | |
| 19759 | + | |
| 19760 | + | |
| 19761 | + | |
| 19762 | + | |
| 19763 | + | |
| 19764 | + | |
| 19765 | + | |
| 19766 | + | |
| 19767 | + | |
| 19768 | + | |
| 19769 | + | |
| 19770 | + | |
| 19771 | + | |
| 19772 | + | |
| 19773 | + | |
| 19774 | + | |
| 19775 | + | |
| 19776 | + | |
| 19777 | + | |
| 19778 | + | |
| 19779 | + | |
| 19780 | + | |
| 19781 | + | |
| 19782 | + | |
| 19783 | + | |
| 19784 | + | |
| 19785 | + | |
| 19786 | + | |
| 19787 | + | |
| 19788 | + | |
| 19789 | + | |
| 19790 | + | |
| 19791 | + | |
| 19792 | + | |
| 19793 | + | |
| 19794 | + | |
| 19795 | + | |
| 19796 | + | |
| 19797 | + | |
| 19798 | + | |
| 19799 | + | |
| 19800 | + | |
| 19801 | + | |
| 19802 | + | |
| 19803 | + | |
| 19804 | + | |
| 19805 | + | |
| 19806 | + | |
| 19807 | + | |
| 19808 | + | |
| 19809 | + | |
| 19810 | + | |
| 19811 | + | |
| 19812 | + | |
| 19813 | + | |
| 19814 | + | |
| 19815 | + | |
| 19816 | + | |
| 19817 | + | |
| 19818 | + | |
| 19819 | + | |
| 19820 | + | |
| 19821 | + | |
| 19822 | + | |
| 19823 | + | |
| 19824 | + | |
| 19825 | + | |
| 19826 | + | |
| 19827 | + | |
| 19828 | + | |
| 19829 | + | |
| 19830 | + | |
| 19831 | + | |
| 19832 | + | |
| 19833 | + | |
| 19834 | + | |
| 19835 | + | |
| 19836 | + | |
| 19837 | + | |
| 19838 | + | |
| 19839 | + | |
| 19840 | + | |
| 19841 | + | |
| 19842 | + | |
| 19843 | + | |
| 19844 | + | |
| 19845 | + | |
| 19846 | + | |
| 19847 | + | |
| 19848 | + | |
| 19849 | + | |
| 19850 | + | |
| 19851 | + | |
| 19852 | + | |
| 19853 | + | |
| 19854 | + | |
| 19855 | + | |
| 19856 | + | |
| 19857 | + | |
| 19858 | + | |
| 19859 | + | |
| 19860 | + | |
| 19861 | + | |
| 19862 | + | |
| 19863 | + | |
| 19864 | + | |
| 19865 | + | |
| 19866 | + | |
| 19867 | + | |
| 19868 | + | |
| 19869 | + | |
| 19870 | + | |
| 19871 | + | |
| 19872 | + | |
| 19873 | + | |
| 19874 | + | |
| 19875 | + | |
| 19876 | + | |
| 19877 | + | |
| 19878 | + | |
| 19879 | + | |
| 19880 | + | |
| 19881 | + | |
| 19882 | + | |
| 19883 | + | |
| 19884 | + | |
| 19885 | + | |
| 19886 | + | |
| 19887 | + | |
| 19888 | + | |
| 19889 | + | |
| 19890 | + | |
| 19891 | + | |
| 19892 | + | |
| 19893 | + | |
| 19894 | + | |
| 19895 | + | |
| 19896 | + | |
| 19897 | + | |
| 19898 | + | |
| 19899 | + | |
| 19900 | + | |
| 19901 | + | |
19754 | 19902 | | |
19755 | 19903 | | |
19756 | 19904 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
0 commit comments