Scenario: Service prevents object deletion by write user during retention period
@CCC.ObjStor @CCC.ObjStor.CN04 @PerService @object-storage @tlp-amber @tlp-clear @tlp-green @tlp-red @BehaviouralGiven a cloud api for "{config}" in "api"101µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"82µs
And I refer to "{result}" as "storage"44µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-write"68µs
And "{result}" is not an error79µs
And I refer to "{result}" as "userStorage"66µs
When I call "{userStorage}" with "CreateObject" using arguments "{resource-name}", "protected-object={timestamp}.txt", and "immutable data"40ms
Then "{result}" is not an error
38µsexpected {result} to not be an error, but got: failed to upload blob protected-object=1784277850338.txt: PUT https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/protected-object=1784277850338.txt
--------------------------------------------------------------------------------
RESPONSE 403: 403 This request is not authorized to perform this operation using this permission.
ERROR CODE: AuthorizationPermissionMismatch
--------------------------------------------------------------------------------
AuthorizationPermissionMismatchThis request is not authorized to perform this operation using this permission.
RequestId:3a514c11-301e-0020-06c8-15d63c000000
Time:2026-07-17T08:44:10.3573521Z
--------------------------------------------------------------------------------
And I attach "{result}" to the test output as "protected-object.json"22µs
When I call "{userStorage}" with "DeleteObject" using arguments "{resource-name}" and "protected-object={timestamp}.txt"24µs
Then "{result}" is an error19µs
And I attach "{result}" to the test output as "delete-protected-error.txt"22µs
And "{result}" should contain one of "retention, locked, immutable, protected"58µs
Scenario: Service prevents object deletion by admin user during retention period
@CCC.ObjStor @CCC.ObjStor.CN04 @PerService @object-storage @tlp-amber @tlp-clear @tlp-green @tlp-red @BehaviouralGiven a cloud api for "{config}" in "api"60µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"38µs
And I refer to "{result}" as "storage"26µs
When I call "{storage}" with "CreateObject" using arguments "{resource-name}", "admin-protected-object={timestamp}.txt", and "compliance data"459ms
Then "{result}" is not an error41µs
When I call "{storage}" with "DeleteObject" using arguments "{resource-name}" and "admin-protected-object={timestamp}.txt"470ms
Then "{result}" is an error33µs
And I attach "{result}" to the test output as "admin-delete-protected-error.txt"52µs
📎 Attachments:admin-delete-protected-error.txt
View Content (842 bytes)
failed to delete blob admin-protected-object=1784277850380.txt: DELETE https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/admin-protected-object=1784277850380.txt
--------------------------------------------------------------------------------
RESPONSE 409: 409 This operation is not permitted as the blob is immutable due to a policy.
ERROR CODE: BlobImmutableDueToPolicy
--------------------------------------------------------------------------------
BlobImmutableDueToPolicyThis operation is not permitted as the blob is immutable due to a policy.
RequestId:3a514e0f-301e-0020-3ac8-15d63c000000
Time:2026-07-17T08:44:11.2881859Z
--------------------------------------------------------------------------------
Scenario: Service prevents object modification during retention period
@CCC.ObjStor @CCC.ObjStor.CN04 @PerService @object-storage @tlp-amber @tlp-clear @tlp-green @tlp-red @BehaviouralGiven a cloud api for "{config}" in "api"51µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"44µs
And I refer to "{result}" as "storage"20µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-write"58µs
And "{result}" is not an error31µs
And I refer to "{result}" as "userStorage"18µs
When I call "{userStorage}" with "CreateObject" using arguments "{resource-name}", "modify-test-object={timestamp}.txt", and "original content"39ms
Then "{result}" is not an error
32µsexpected {result} to not be an error, but got: failed to upload blob modify-test-object=1784277851311.txt: PUT https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/modify-test-object=1784277851311.txt
--------------------------------------------------------------------------------
RESPONSE 403: 403 This request is not authorized to perform this operation using this permission.
ERROR CODE: AuthorizationPermissionMismatch
--------------------------------------------------------------------------------
AuthorizationPermissionMismatchThis request is not authorized to perform this operation using this permission.
RequestId:3a514e1f-301e-0020-49c8-15d63c000000
Time:2026-07-17T08:44:11.3292583Z
--------------------------------------------------------------------------------
And I attach "{result}" to the test output as "original-object.json"22µs
When I call "{userStorage}" with "CreateObject" using arguments "{resource-name}", "modify-test-object={timestamp}.txt", and "modified content"24µs
Then "{result}" is an error19µs
And I attach "{result}" to the test output as "modify-protected-error.txt"17µs
And "{result}" should contain one of "retention, locked, immutable, protected, exists"24µs
Scenario: Service allows object read access during retention period
@CCC.ObjStor @CCC.ObjStor.CN04 @PerService @object-storage @tlp-amber @tlp-clear @tlp-green @tlp-red @BehaviouralGiven a cloud api for "{config}" in "api"38µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"48µs
And I refer to "{result}" as "storage"26µs
When I call "{storage}" with "CreateObject" using arguments "{resource-name}", "readable-protected-object={timestamp}.txt", and "readable data"453ms
Then "{result}" is not an error42µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-read"65µs
And "{result}" is not an error28µs
And I refer to "{result}" as "userStorage"29µs
When I call "{userStorage}" with "ReadObject" using arguments "{resource-name}" and "readable-protected-object={timestamp}.txt"39ms
Then "{result}" is not an error
58µsexpected {result} to not be an error, but got: failed to download blob readable-protected-object=1784277851352.txt: GET https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/readable-protected-object=1784277851352.txt
--------------------------------------------------------------------------------
RESPONSE 403: 403 This request is not authorized to perform this operation using this permission.
ERROR CODE: AuthorizationPermissionMismatch
--------------------------------------------------------------------------------
AuthorizationPermissionMismatchThis request is not authorized to perform this operation using this permission.
RequestId:3a514f5e-301e-0020-63c8-15d63c000000
Time:2026-07-17T08:44:11.8223877Z
--------------------------------------------------------------------------------
And I refer to "{result}" as "readResult"22µs
And I attach "{result}" to the test output as "read-protected-object.json"19µs
And "{readResult.Name}" is "readable-protected-object={timestamp}.txt"26µs