@@ -54,8 +54,10 @@ func (r *Revproxy) RegisterHandlers(e *echo.Echo, commonMiddlewares ...echo.Midd
5454 sk := e .Group ("/api/data/user/secret_key" , commonMiddlewares ... )
5555 sk .GET ("/" , echo .NotFoundHandler )
5656
57- // Middlewares and routing is configured depending on `EnableV1Services`
57+ // Middlewares and routing is configured depending on `EnableV1Services` and `EnableInternalGitlab`
5858 if r .config .EnableV1Services {
59+ // Means that the V1Services and the internal Gitlab are enabled
60+ // This whole branch of else-if should be removed when the Gitlab is retired.
5961 // Initialize common authentication middleware
6062 coreSvcIdToken := r .coreSvcIdTokenAuth .Middleware ()
6163 dataGitlabAccessToken := r .dataGitlabAccessTokenAuth .Middleware ()
@@ -107,7 +109,26 @@ func (r *Revproxy) RegisterHandlers(e *echo.Echo, commonMiddlewares ...echo.Midd
107109 e .Group ("/ui-server/api/last-projects/:length" , append (commonMiddlewares , renkuAccessToken , uiServerProxy )... )
108110 e .Group ("/ui-server/api/renku/cache.files_upload" , uiServerUpstreamCoreLocation (r .config .RenkuServices .Core .ServiceNames [0 ]), uiServerProxy )
109111 e .Group ("/ui-server/api/kg/entities" , append (commonMiddlewares , uiServerUpstreamKgLocation (r .config .RenkuServices .KG .Host ), renkuAccessToken , dataGitlabAccessToken , uiServerProxy )... )
112+ } else if r .config .EnableInternalGitlab {
113+ // This whole branch of else-if should be removed when the Gitlab is retired.
114+ // Initialize common authentication middleware
115+ notebooksRenkuRefreshToken := r .notebooksRenkuRefreshTokenAuth .Middleware ()
116+ renkuAccessToken := r .renkuAccessTokenAuth .Middleware ()
117+ dataGitlabAccessToken := r .dataGitlabAccessTokenAuth .Middleware ()
118+
119+ // Routing for Renku services
120+ // Notebooks is being routed to data service now
121+ e .Group ("/api/notebooks" , append (commonMiddlewares , renkuAccessToken , dataGitlabAccessToken , notebooksRenkuRefreshToken , notebooksAnonymousID (r .sessions ), regexRewrite ("^/api/notebooks(.*)" , "/api/data/notebooks$1" ), dataServiceProxy )... )
122+ e .Group ("/api/data" , append (commonMiddlewares , renkuAccessToken , dataGitlabAccessToken , notebooksRenkuRefreshToken , notebooksAnonymousID (r .sessions ), dataServiceProxy )... )
123+ // /api/kc is used only by the ui and no one else, will be removed when the gateway is in charge of user sessions
124+ e .Group ("/api/kc" , append (commonMiddlewares , stripPrefix ("/api/kc" ), renkuAccessToken , keycloakProxyHost , keycloakProxy )... )
125+
126+ // UI server webssockets
127+ e .Group ("/ui-server/ws" , append (commonMiddlewares , ensureSession (r .sessions ), renkuAccessToken , uiServerProxy )... )
128+ // Some routes need to go to the UI server before they go to the specific Renku service
129+ e .Group ("/ui-server/api/allows-iframe" , append (commonMiddlewares , uiServerProxy )... )
110130 } else {
131+ // Both the v1 services and internal gitlab are disabled
111132 // Initialize common authentication middleware
112133 notebooksRenkuRefreshToken := r .notebooksRenkuRefreshTokenAuth .Middleware ()
113134 renkuAccessToken := r .renkuAccessTokenAuth .Middleware ()
@@ -142,6 +163,13 @@ func (r *Revproxy) initializeAuth() error {
142163 return err
143164 }
144165
166+ if ! r .config .EnableV1Services && r .config .EnableInternalGitlab {
167+ r .dataGitlabAccessTokenAuth , err = NewAuth (AuthWithSessionStore (r .sessions ), WithTokenType (models .AccessTokenType ), WithProviderID ("gitlab" ), WithTokenInjector (dataServiceGitlabAccessTokenInjector ))
168+ if err != nil {
169+ return err
170+ }
171+ }
172+
145173 // Initialize auth for v1 services if needed
146174 if r .config .EnableV1Services {
147175 r .coreSvcIdTokenAuth , err = NewAuth (AuthWithSessionStore (r .sessions ), WithTokenType (models .IDTokenType ), WithProviderID ("renku" ), WithTokenInjector (coreSvcRenkuIdTokenInjector ))
0 commit comments