2525import renku_data_services .base_models as base_models
2626import renku_data_services .connected_services
2727import renku_data_services .crc
28+ import renku_data_services .data_connectors
2829import renku_data_services .platform
2930import renku_data_services .repositories
3031import renku_data_services .storage
4344 ServerOptionsDefaults ,
4445 generate_default_resource_pool ,
4546)
47+ from renku_data_services .data_connectors .db import (
48+ DataConnectorProjectLinkRepository ,
49+ DataConnectorRepository ,
50+ DataConnectorSecretRepository ,
51+ )
4652from renku_data_services .db_config import DBConfig
4753from renku_data_services .git .gitlab import DummyGitlabAPI , GitlabAPI
4854from renku_data_services .k8s .clients import DummyCoreClient , DummySchedulingClient , K8sCoreClient , K8sSchedulingClient
5763from renku_data_services .repositories .db import GitRepositoriesRepository
5864from renku_data_services .secrets .db import UserSecretsRepo
5965from renku_data_services .session .db import SessionRepository
60- from renku_data_services .storage .db import StorageRepository , StorageV2Repository
66+ from renku_data_services .storage .db import StorageRepository
6167from renku_data_services .users .config import UserPreferencesConfig
6268from renku_data_services .users .db import UserPreferencesRepository
6369from renku_data_services .users .db import UserRepo as KcUserRepo
@@ -162,7 +168,6 @@ class Config:
162168 _user_repo : UserRepository | None = field (default = None , repr = False , init = False )
163169 _rp_repo : ResourcePoolRepository | None = field (default = None , repr = False , init = False )
164170 _storage_repo : StorageRepository | None = field (default = None , repr = False , init = False )
165- _storage_v2_repo : StorageV2Repository | None = field (default = None , repr = False , init = False )
166171 _project_repo : ProjectRepository | None = field (default = None , repr = False , init = False )
167172 _group_repo : GroupRepository | None = field (default = None , repr = False , init = False )
168173 _event_repo : EventRepository | None = field (default = None , repr = False , init = False )
@@ -175,6 +180,11 @@ class Config:
175180 _connected_services_repo : ConnectedServicesRepository | None = field (default = None , repr = False , init = False )
176181 _git_repositories_repo : GitRepositoriesRepository | None = field (default = None , repr = False , init = False )
177182 _platform_repo : PlatformRepository | None = field (default = None , repr = False , init = False )
183+ _data_connector_repo : DataConnectorRepository | None = field (default = None , repr = False , init = False )
184+ _data_connector_to_project_link_repo : DataConnectorProjectLinkRepository | None = field (
185+ default = None , repr = False , init = False
186+ )
187+ _data_connector_secret_repo : DataConnectorSecretRepository | None = field (default = None , repr = False , init = False )
178188
179189 def __post_init__ (self ) -> None :
180190 # NOTE: Read spec files required for Swagger
@@ -218,6 +228,10 @@ def __post_init__(self) -> None:
218228 with open (spec_file ) as f :
219229 search = safe_load (f )
220230
231+ spec_file = Path (renku_data_services .data_connectors .__file__ ).resolve ().parent / "api.spec.yaml"
232+ with open (spec_file ) as f :
233+ data_connectors = safe_load (f )
234+
221235 self .spec = merge_api_specs (
222236 crc_spec ,
223237 storage_spec ,
@@ -229,6 +243,7 @@ def __post_init__(self) -> None:
229243 repositories ,
230244 platform ,
231245 search ,
246+ data_connectors ,
232247 )
233248
234249 if self .default_resource_pool_file is not None :
@@ -273,18 +288,6 @@ def storage_repo(self) -> StorageRepository:
273288 )
274289 return self ._storage_repo
275290
276- @property
277- def storage_v2_repo (self ) -> StorageV2Repository :
278- """The DB adapter for V2 cloud storage configs."""
279- if not self ._storage_v2_repo :
280- self ._storage_v2_repo = StorageV2Repository (
281- session_maker = self .db .async_session_maker ,
282- project_authz = self .authz ,
283- user_repo = self .kc_user_repo ,
284- secret_service_public_key = self .secrets_service_public_key ,
285- )
286- return self ._storage_v2_repo
287-
288291 @property
289292 def event_repo (self ) -> EventRepository :
290293 """The DB adapter for cloud event configs."""
@@ -412,6 +415,36 @@ def platform_repo(self) -> PlatformRepository:
412415 )
413416 return self ._platform_repo
414417
418+ @property
419+ def data_connector_repo (self ) -> DataConnectorRepository :
420+ """The DB adapter for data connectors."""
421+ if not self ._data_connector_repo :
422+ self ._data_connector_repo = DataConnectorRepository (
423+ session_maker = self .db .async_session_maker , authz = self .authz
424+ )
425+ return self ._data_connector_repo
426+
427+ @property
428+ def data_connector_to_project_link_repo (self ) -> DataConnectorProjectLinkRepository :
429+ """The DB adapter for data connector to project links."""
430+ if not self ._data_connector_to_project_link_repo :
431+ self ._data_connector_to_project_link_repo = DataConnectorProjectLinkRepository (
432+ session_maker = self .db .async_session_maker , authz = self .authz
433+ )
434+ return self ._data_connector_to_project_link_repo
435+
436+ @property
437+ def data_connector_secret_repo (self ) -> DataConnectorSecretRepository :
438+ """The DB adapter for data connector secrets."""
439+ if not self ._data_connector_secret_repo :
440+ self ._data_connector_secret_repo = DataConnectorSecretRepository (
441+ session_maker = self .db .async_session_maker ,
442+ data_connector_repo = self .data_connector_repo ,
443+ user_repo = self .kc_user_repo ,
444+ secret_service_public_key = self .secrets_service_public_key ,
445+ )
446+ return self ._data_connector_secret_repo
447+
415448 @classmethod
416449 def from_env (cls , prefix : str = "" ) -> "Config" :
417450 """Create a config from environment variables."""
0 commit comments