data-sourcerer 0.8.0__tar.gz → 0.8.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/PKG-INFO +1 -1
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/__init__.py +1 -1
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/settings/entities.py +3 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage_provider/services/azure.py +3 -1
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage_provider/services/gcp.py +3 -1
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage_provider/services/s3.py +3 -1
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/main.py +5 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/settings/main.py +19 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/utils.py +5 -1
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/settings.py +1 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/.gitignore +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/LICENSE +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/README.md +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/pyproject.toml +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/access_credentials/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/access_credentials/entities.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/access_credentials/exceptions.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/access_credentials/repositories.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/access_credentials/services.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/file_system/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/file_system/entities.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/file_system/exceptions.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/file_system/services.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/package_meta/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/package_meta/entities.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/package_meta/services.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/settings/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/settings/repositories.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/settings/services.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/shared/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/shared/entities.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/storage/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/storage/entities.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/storage/repositories.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/storage_provider/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/storage_provider/entities.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/storage_provider/exceptions.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/storage_provider/services.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/access_credentials/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/access_credentials/exceptions.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/access_credentials/registry.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/access_credentials/repositories.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/access_credentials/services.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/db/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/db/config.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/db/models.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/file_system/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/file_system/exceptions.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/file_system/services.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/package_meta/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/package_meta/services.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/settings/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/settings/repositories.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/settings/services.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage/repositories.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage/services.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage_provider/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage_provider/exceptions.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage_provider/registry.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage_provider/services/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/utils.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/app.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/di_container.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/about/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/about/main.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/about/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/critical_error/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/critical_error/main.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/critical_error/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/file_system_finder/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/file_system_finder/main.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/file_system_finder/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/file_system_finder/widgets/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/file_system_finder/widgets/file_system_navigator.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/messages/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/messages/delete_request.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/messages/download_request.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/messages/presign_url_request.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/messages/preview_request.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/messages/refresh_storages_list_request.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/messages/resizing_rule.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/messages/select_storage_item.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/messages/uncheck_files_request.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/messages/upload_request.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/mixins/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/mixins/resize_containers_watcher_mixin.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/widgets/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/widgets/gradient.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/widgets/resizing_rule.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/widgets/storage_content.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/widgets/storage_list_sidebar.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/preview_content/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/preview_content/main.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/preview_content/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/preview_content/text_area_style.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/provider_creds_list/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/provider_creds_list/main.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/provider_creds_list/messages/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/provider_creds_list/messages/reload_credentials_request.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/provider_creds_list/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/provider_creds_registration/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/provider_creds_registration/main.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/provider_creds_registration/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/question/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/question/main.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/question/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/settings/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/settings/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/shared/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/shared/containers.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/shared/modal_screens.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/shared/widgets/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/shared/widgets/button.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/shared/widgets/labeled_input.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/shared/widgets/spinner.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storage_action_progress/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storage_action_progress/main.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storage_action_progress/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storages_list/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storages_list/main.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storages_list/messages/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storages_list/messages/reload_storages_request.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storages_list/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storages_registration/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storages_registration/main.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storages_registration/styles.tcss +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/settings.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/themes/__init__.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/themes/github_dark.py +0 -0
- {data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/utils.py +0 -0
|
@@ -2,6 +2,7 @@ from msgspec._core import Struct
|
|
|
2
2
|
|
|
3
3
|
from sourcerer.settings import (
|
|
4
4
|
DEFAULT_DOWNLOAD_CHUNK_SIZE_MB,
|
|
5
|
+
DEFAULT_PRESIGNED_URL_TTL_SECONDS,
|
|
5
6
|
DEFAULT_UPLOAD_CHUNK_SIZE_MB,
|
|
6
7
|
)
|
|
7
8
|
|
|
@@ -11,6 +12,7 @@ class Settings(Struct):
|
|
|
11
12
|
group_by_access_credentials: bool = False
|
|
12
13
|
upload_chunk_size: int = DEFAULT_UPLOAD_CHUNK_SIZE_MB
|
|
13
14
|
download_chunk_size: int = DEFAULT_DOWNLOAD_CHUNK_SIZE_MB
|
|
15
|
+
presigned_url_ttl_seconds: int = DEFAULT_PRESIGNED_URL_TTL_SECONDS
|
|
14
16
|
|
|
15
17
|
|
|
16
18
|
class SettingsFields:
|
|
@@ -18,3 +20,4 @@ class SettingsFields:
|
|
|
18
20
|
group_by_access_credentials = "group_by_access_credentials"
|
|
19
21
|
upload_chunk_size = "upload_chunk_size"
|
|
20
22
|
download_chunk_size = "download_chunk_size"
|
|
23
|
+
presigned_url_ttl_seconds = "presigned_url_ttl_seconds"
|
|
@@ -48,6 +48,7 @@ from sourcerer.infrastructure.storage_provider.registry import storage_provider
|
|
|
48
48
|
from sourcerer.infrastructure.utils import generate_uuid, is_text_file, join_non_empty
|
|
49
49
|
from sourcerer.settings import (
|
|
50
50
|
DEFAULT_DOWNLOAD_CHUNK_SIZE_MB,
|
|
51
|
+
DEFAULT_PRESIGNED_URL_TTL_SECONDS,
|
|
51
52
|
DEFAULT_UPLOAD_CHUNK_SIZE_MB,
|
|
52
53
|
)
|
|
53
54
|
|
|
@@ -61,6 +62,7 @@ class AzureStorageProviderService(BaseStorageProviderService):
|
|
|
61
62
|
credentials: Any,
|
|
62
63
|
upload_chunk_size=DEFAULT_UPLOAD_CHUNK_SIZE_MB,
|
|
63
64
|
download_chunk_size=DEFAULT_DOWNLOAD_CHUNK_SIZE_MB,
|
|
65
|
+
presigned_url_ttl_seconds=DEFAULT_PRESIGNED_URL_TTL_SECONDS,
|
|
64
66
|
):
|
|
65
67
|
"""
|
|
66
68
|
Initialize the service with Azure credentials.
|
|
@@ -83,7 +85,7 @@ class AzureStorageProviderService(BaseStorageProviderService):
|
|
|
83
85
|
|
|
84
86
|
self.upload_chunk_size = upload_chunk_size * 1024 * 1024
|
|
85
87
|
self.download_chunk_size = download_chunk_size * 1024 * 1024
|
|
86
|
-
self.presigned_url_expiration_period =
|
|
88
|
+
self.presigned_url_expiration_period = presigned_url_ttl_seconds
|
|
87
89
|
|
|
88
90
|
def get_accounts_client(self) -> StorageManagementClient:
|
|
89
91
|
"""
|
|
@@ -37,6 +37,7 @@ from sourcerer.infrastructure.storage_provider.registry import storage_provider
|
|
|
37
37
|
from sourcerer.infrastructure.utils import generate_uuid, is_text_file
|
|
38
38
|
from sourcerer.settings import (
|
|
39
39
|
DEFAULT_DOWNLOAD_CHUNK_SIZE_MB,
|
|
40
|
+
DEFAULT_PRESIGNED_URL_TTL_SECONDS,
|
|
40
41
|
DEFAULT_UPLOAD_CHUNK_SIZE_MB,
|
|
41
42
|
PAGE_SIZE,
|
|
42
43
|
PATH_DELIMITER,
|
|
@@ -57,6 +58,7 @@ class GCPStorageProviderService(BaseStorageProviderService):
|
|
|
57
58
|
credentials: Any,
|
|
58
59
|
upload_chunk_size=DEFAULT_UPLOAD_CHUNK_SIZE_MB,
|
|
59
60
|
download_chunk_size=DEFAULT_DOWNLOAD_CHUNK_SIZE_MB,
|
|
61
|
+
presigned_url_ttl_seconds=DEFAULT_PRESIGNED_URL_TTL_SECONDS,
|
|
60
62
|
):
|
|
61
63
|
"""
|
|
62
64
|
Initialize the service with GCP credentials.
|
|
@@ -69,7 +71,7 @@ class GCPStorageProviderService(BaseStorageProviderService):
|
|
|
69
71
|
self.client = credentials
|
|
70
72
|
self.upload_chunk_size = upload_chunk_size * 1024 * 1024
|
|
71
73
|
self.download_chunk_size = download_chunk_size * 1024 * 1024
|
|
72
|
-
self.presigned_url_expiration_period =
|
|
74
|
+
self.presigned_url_expiration_period = presigned_url_ttl_seconds
|
|
73
75
|
|
|
74
76
|
def list_storages(self) -> list[Storage]:
|
|
75
77
|
"""
|
|
@@ -37,6 +37,7 @@ from sourcerer.infrastructure.storage_provider.registry import storage_provider
|
|
|
37
37
|
from sourcerer.infrastructure.utils import generate_uuid, is_text_file
|
|
38
38
|
from sourcerer.settings import (
|
|
39
39
|
DEFAULT_DOWNLOAD_CHUNK_SIZE_MB,
|
|
40
|
+
DEFAULT_PRESIGNED_URL_TTL_SECONDS,
|
|
40
41
|
DEFAULT_UPLOAD_CHUNK_SIZE_MB,
|
|
41
42
|
PAGE_SIZE,
|
|
42
43
|
PATH_DELIMITER,
|
|
@@ -57,6 +58,7 @@ class S3ProviderService(BaseStorageProviderService):
|
|
|
57
58
|
credentials: Any,
|
|
58
59
|
upload_chunk_size=DEFAULT_UPLOAD_CHUNK_SIZE_MB,
|
|
59
60
|
download_chunk_size=DEFAULT_DOWNLOAD_CHUNK_SIZE_MB,
|
|
61
|
+
presigned_url_ttl_seconds=DEFAULT_PRESIGNED_URL_TTL_SECONDS,
|
|
60
62
|
):
|
|
61
63
|
"""
|
|
62
64
|
Initialize the service with AWS credentials.
|
|
@@ -69,7 +71,7 @@ class S3ProviderService(BaseStorageProviderService):
|
|
|
69
71
|
self.credentials = credentials
|
|
70
72
|
self.upload_chunk_size = upload_chunk_size * 1024 * 1024
|
|
71
73
|
self.download_chunk_size = download_chunk_size * 1024 * 1024
|
|
72
|
-
self.presigned_url_expiration_period =
|
|
74
|
+
self.presigned_url_expiration_period = presigned_url_ttl_seconds
|
|
73
75
|
|
|
74
76
|
@property
|
|
75
77
|
def client(self):
|
|
@@ -289,6 +289,11 @@ class Sourcerer(App, ResizeContainersWatcherMixin):
|
|
|
289
289
|
SettingsFields.download_chunk_size, download_chunk_size
|
|
290
290
|
)
|
|
291
291
|
|
|
292
|
+
if presigned_url_ttl := settings.get(SettingsFields.presigned_url_ttl_seconds):
|
|
293
|
+
self.settings_service.set_setting(
|
|
294
|
+
SettingsFields.presigned_url_ttl_seconds, presigned_url_ttl
|
|
295
|
+
)
|
|
296
|
+
|
|
292
297
|
self.settings = self.settings_service.load_settings()
|
|
293
298
|
|
|
294
299
|
def modal_screen_callback(self, requires_storage_refresh: bool | None = True):
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/settings/main.py
RENAMED
|
@@ -57,6 +57,16 @@ class SettingsScreen(ExitBoundModalScreen):
|
|
|
57
57
|
Number(minimum=1, maximum=1000),
|
|
58
58
|
],
|
|
59
59
|
)
|
|
60
|
+
with Horizontal():
|
|
61
|
+
yield Static("Presigned url ttl (sec):")
|
|
62
|
+
yield Input(
|
|
63
|
+
type="integer",
|
|
64
|
+
id="presigned_url_ttl_seconds",
|
|
65
|
+
value=str(self.settings.presigned_url_ttl_seconds),
|
|
66
|
+
validators=[
|
|
67
|
+
Number(minimum=1, maximum=604800),
|
|
68
|
+
],
|
|
69
|
+
)
|
|
60
70
|
|
|
61
71
|
yield Rule()
|
|
62
72
|
with Horizontal(id="controls"):
|
|
@@ -73,6 +83,9 @@ class SettingsScreen(ExitBoundModalScreen):
|
|
|
73
83
|
download_chunk_size = self.query_one(
|
|
74
84
|
"Input#download_chunk_size", Input
|
|
75
85
|
).value
|
|
86
|
+
presigned_url_ttl_seconds = self.query_one(
|
|
87
|
+
"Input#presigned_url_ttl_seconds", Input
|
|
88
|
+
).value
|
|
76
89
|
|
|
77
90
|
if not upload_chunk_size.isdigit():
|
|
78
91
|
self.notify("Invalid upload chunk size", severity="error")
|
|
@@ -80,6 +93,9 @@ class SettingsScreen(ExitBoundModalScreen):
|
|
|
80
93
|
if not download_chunk_size.isdigit():
|
|
81
94
|
self.notify("Invalid download chunk size", severity="error")
|
|
82
95
|
return
|
|
96
|
+
if not presigned_url_ttl_seconds.isdigit():
|
|
97
|
+
self.notify("Invalid presigned url ttl", severity="error")
|
|
98
|
+
return
|
|
83
99
|
|
|
84
100
|
self.dismiss(
|
|
85
101
|
{
|
|
@@ -89,6 +105,9 @@ class SettingsScreen(ExitBoundModalScreen):
|
|
|
89
105
|
).value,
|
|
90
106
|
SettingsFields.upload_chunk_size: int(upload_chunk_size),
|
|
91
107
|
SettingsFields.download_chunk_size: int(download_chunk_size),
|
|
108
|
+
SettingsFields.presigned_url_ttl_seconds: int(
|
|
109
|
+
presigned_url_ttl_seconds
|
|
110
|
+
),
|
|
92
111
|
}
|
|
93
112
|
)
|
|
94
113
|
|
|
@@ -48,6 +48,7 @@ def _provider_service_cache_lru_key(credentials, settings: Settings):
|
|
|
48
48
|
credentials.uuid,
|
|
49
49
|
str(settings.upload_chunk_size),
|
|
50
50
|
str(settings.download_chunk_size),
|
|
51
|
+
str(settings.presigned_url_ttl_seconds),
|
|
51
52
|
]
|
|
52
53
|
)
|
|
53
54
|
|
|
@@ -106,7 +107,10 @@ def get_provider_service_by_access_credentials(
|
|
|
106
107
|
except CredentialsAuthError:
|
|
107
108
|
return None
|
|
108
109
|
service = provider_service_class(
|
|
109
|
-
auth_credentials,
|
|
110
|
+
auth_credentials,
|
|
111
|
+
settings.upload_chunk_size,
|
|
112
|
+
settings.download_chunk_size,
|
|
113
|
+
settings.presigned_url_ttl_seconds,
|
|
110
114
|
)
|
|
111
115
|
with _provider_service_cache_lock:
|
|
112
116
|
_provider_service_cache[cache_key] = service
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/access_credentials/__init__.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/access_credentials/entities.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/access_credentials/exceptions.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/access_credentials/repositories.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/access_credentials/services.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/domain/storage_provider/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/file_system/__init__.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/file_system/exceptions.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/file_system/services.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/package_meta/__init__.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/package_meta/services.py
RENAMED
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/settings/repositories.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage/repositories.py
RENAMED
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage_provider/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/infrastructure/storage_provider/registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/about/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/about/styles.tcss
RENAMED
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/critical_error/main.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/mixins/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/main/styles.tcss
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/preview_content/main.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/question/__init__.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/question/main.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/question/styles.tcss
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/settings/__init__.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/settings/styles.tcss
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/shared/__init__.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/shared/containers.py
RENAMED
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/shared/modal_screens.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_sourcerer-0.8.0 → data_sourcerer-0.8.1}/sourcerer/presentation/screens/storages_list/main.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|