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"50µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"45µs
And I refer to "{result}" as "storage"28µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-write"54µs
And "{result}" is not an error41µs
And I refer to "{result}" as "userStorage"26µs
When I call "{userStorage}" with "CreateObject" using arguments "{resource-name}", "protected-object={timestamp}.txt", and "immutable data"51ms
Then "{result}" is not an error
57µsexpected {result} to not be an error, but got: failed to upload blob protected-object=1781627654006.txt: PUT https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/protected-object=1781627654006.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:d3a0efea-501e-0009-1dad-fde848000000
Time:2026-06-16T16:34:14.0330667Z
--------------------------------------------------------------------------------
And I attach "{result}" to the test output as "protected-object.json"23µs
When I call "{userStorage}" with "DeleteObject" using arguments "{resource-name}" and "protected-object={timestamp}.txt"23µs
Then "{result}" is an error28µs
And I attach "{result}" to the test output as "delete-protected-error.txt"21µs
And "{result}" should contain one of "retention, locked, immutable, protected"37µ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"51µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"41µs
And I refer to "{result}" as "storage"28µs
When I call "{storage}" with "CreateObject" using arguments "{resource-name}", "admin-protected-object={timestamp}.txt", and "compliance data"425ms
Then "{result}" is not an error29µs
When I call "{storage}" with "DeleteObject" using arguments "{resource-name}" and "admin-protected-object={timestamp}.txt"420ms
Then "{result}" is an error36µs
And I attach "{result}" to the test output as "admin-delete-protected-error.txt"51µs
📎 Attachments:admin-delete-protected-error.txt
View Content (842 bytes)
failed to delete blob admin-protected-object=1781627654058.txt: DELETE https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/admin-protected-object=1781627654058.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:d3a0f25a-501e-0009-21ad-fde848000000
Time:2026-06-16T16:34:14.8801501Z
--------------------------------------------------------------------------------
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"50µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"45µs
And I refer to "{result}" as "storage"24µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-write"51µs
And "{result}" is not an error26µs
And I refer to "{result}" as "userStorage"16µs
When I call "{userStorage}" with "CreateObject" using arguments "{resource-name}", "modify-test-object={timestamp}.txt", and "original content"52ms
Then "{result}" is not an error
56µsexpected {result} to not be an error, but got: failed to upload blob modify-test-object=1781627654905.txt: PUT https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/modify-test-object=1781627654905.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:d3a0f27d-501e-0009-40ad-fde848000000
Time:2026-06-16T16:34:14.9331924Z
--------------------------------------------------------------------------------
And I attach "{result}" to the test output as "original-object.json"36µs
When I call "{userStorage}" with "CreateObject" using arguments "{resource-name}", "modify-test-object={timestamp}.txt", and "modified content"77µs
Then "{result}" is an error37µs
And I attach "{result}" to the test output as "modify-protected-error.txt"29µs
And "{result}" should contain one of "retention, locked, immutable, protected, exists"42µ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"47µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"39µs
And I refer to "{result}" as "storage"25µs
When I call "{storage}" with "CreateObject" using arguments "{resource-name}", "readable-protected-object={timestamp}.txt", and "readable data"429ms
Then "{result}" is not an error46µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-read"64µs
And "{result}" is not an error33µs
And I refer to "{result}" as "userStorage"50µs
When I call "{userStorage}" with "ReadObject" using arguments "{resource-name}" and "readable-protected-object={timestamp}.txt"52ms
Then "{result}" is not an error
85µsexpected {result} to not be an error, but got: failed to download blob readable-protected-object=1781627654959.txt: GET https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/readable-protected-object=1781627654959.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:d3a0f3ef-501e-0009-05ad-fde848000000
Time:2026-06-16T16:34:15.4164090Z
--------------------------------------------------------------------------------
And I refer to "{result}" as "readResult"317µs
And I attach "{result}" to the test output as "read-protected-object.json"57µs
And "{readResult.Name}" is "readable-protected-object={timestamp}.txt"60µs