You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[synapseclient.models.StorageLocation]| The model representing a storage location setting in Synapse |
171
171
|[synapseclient.models.StorageLocationType]| Enumeration defining the supported storage backend types |
172
172
|[synapseclient.models.UploadType]| Enumeration defining the upload protocol for each storage type |
173
-
|[synapseclient.models.mixins.StorageLocationConfigurable]| Mixin providing storage management methods to entities|
174
-
|[synapseclient.models.mixins.UploadDestinationListSetting]|Dataclass defining the upload destination list setting containing storage location IDs|
175
-
|[synapseclient.models.mixins.ProjectSetting]| Dataclass defining the base project setting structure|
173
+
|[synapseclient.models.mixins.StorageLocationConfigurable]| Mixin providing STS token and file migration methods|
174
+
|[synapseclient.models.mixins.ProjectSettingsMixin]|Mixin extending `StorageLocationConfigurable` with storage location and project settings management|
175
+
|[synapseclient.models.ProjectSetting]| Dataclass representing a project's upload destination configuration, backed by `UploadDestinationListSetting` in the REST API|
176
176
177
177
---
178
178
@@ -305,24 +305,29 @@ flowchart TB
305
305
306
306
## Entity Inheritance Hierarchy
307
307
308
-
Projects and Folders inherit storage configuration capabilities through the
309
-
`StorageLocation` mixin. This pattern allows consistent storage
310
-
management across container entities.
308
+
Projects and Folders inherit storage configuration capabilities through two
309
+
cooperating mixins: `StorageLocationConfigurable` (STS tokens and file migration)
310
+
and `ProjectSettingsMixin` (storage location and project settings management).
311
+
This pattern allows consistent storage management across container entities.
The mixin pattern allows `Project` and `Folder` to share storage location
345
-
functionality without code duplication. Both classes inherit the same
346
-
methods from `StorageLocation`.
351
+
functionality without code duplication. Both classes inherit all methods
352
+
from `ProjectSettingsMixin`, which itself extends `StorageLocationConfigurable`.
347
353
348
354
---
349
355
@@ -416,8 +422,6 @@ When a Synapse client is constructed (`Synapse.__init__`), it creates an in-memo
416
422
417
423
-`self._sts_token_store = sts_transfer.StsTokenStore()` (see `synapseclient/client.py`)
418
424
419
-
The store caches STS tokens per entity and permission so repeated access to the same storage location can reuse credentials without a round-trip to the REST API.
420
-
421
425
```mermaid
422
426
sequenceDiagram
423
427
participant User
@@ -682,116 +686,47 @@ File migration is a two-phase process that first indexes all candidate files and
682
686
```mermaid
683
687
sequenceDiagram
684
688
participant User
685
-
participant Entity as Project/Folder
686
689
participant IndexFn as index_files_for_migration
687
690
participant DB as SQLite Database
688
691
participant MigrateFn as migrate_indexed_files
689
692
participant Synapse as Synapse REST API
690
693
691
-
Note over User,Synapse: === Phase 1: Index Files ===
0 commit comments