curo1305
88a62da4c4
feat(13-03): extend cloud contract with mutable adapter and provider implementations
- Add MutableCloudResourceAdapter abstract class to cloud_base.py with Phase 13
mutable-operation vocabulary (MUT_KIND_* / MUT_REASON_* constants, PreviewSupport)
- Add abstract methods: create_folder, rename, move, delete, upload_file + _normalize_error
- Update GoogleDriveBackend to implement MutableCloudResourceAdapter with Drive-scope
methods; prefer trash() for delete (D-11); update SCOPES to drive (D-17)
- Update OneDriveBackend to implement MutableCloudResourceAdapter; use
PublicClientApplication for refresh_token flow; Graph DELETE is always permanent (D-11)
- Update WebDAVBackend to implement MutableCloudResourceAdapter; SSRF guard via __init__
(not per-call) for mutable methods; _validate_destination for MOVE SSRF (T-13-04)
- NextcloudBackend inherits all mutable methods from WebDAVBackend (no changes needed)
- Add build_mutable_cloud_adapter() to cloud_backend_factory.py
- All 184 tests pass (test_cloud_backends.py + test_cloud_provider_contract.py)
2026-06-22 18:31:53 +02:00
..
2026-06-05 00:00:26 +02:00
2026-06-22 08:29:41 +02:00
2026-06-18 23:10:30 +02:00
2026-06-06 21:55:13 +02:00
2026-06-05 14:44:59 +02:00
2026-06-18 22:37:28 +02:00
2026-06-22 08:29:41 +02:00
2026-06-22 18:31:53 +02:00
2026-06-22 08:29:41 +02:00
2026-06-22 18:01:15 +02:00
2026-05-24 11:30:56 +02:00
2026-06-18 23:17:34 +02:00
2026-06-06 17:19:50 +02:00
2026-06-04 19:13:05 +02:00
2026-06-22 09:46:25 +02:00
2026-06-22 09:02:42 +02:00
2026-06-03 18:47:43 +02:00
2026-06-12 10:54:34 +02:00