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"76µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"57µs
And I refer to "{result}" as "storage"290µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-write"75µs
And "{result}" is not an error44µs
And I refer to "{result}" as "userStorage"40µs
When I call "{userStorage}" with "CreateObject" using arguments "{resource-name}", "protected-object={timestamp}.txt", and "immutable data"75ms
Then "{result}" is not an error
39µsexpected {result} to not be an error, but got: failed to upload blob protected-object=1781625063935.txt: PUT https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/protected-object=1781625063935.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:ff4e8119-601e-0070-7aa7-fd146c000000
Time:2026-06-16T15:51:03.9766456Z
--------------------------------------------------------------------------------
And I attach "{result}" to the test output as "protected-object.json"17µs
When I call "{userStorage}" with "DeleteObject" using arguments "{resource-name}" and "protected-object={timestamp}.txt"18µs
Then "{result}" is an error17µs
And I attach "{result}" to the test output as "delete-protected-error.txt"16µs
And "{result}" should contain one of "retention, locked, immutable, protected"20µ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"32µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"44µs
And I refer to "{result}" as "storage"21µs
When I call "{storage}" with "CreateObject" using arguments "{resource-name}", "admin-protected-object={timestamp}.txt", and "compliance data"455ms
Then "{result}" is not an error28µs
When I call "{storage}" with "DeleteObject" using arguments "{resource-name}" and "admin-protected-object={timestamp}.txt"455ms
Then "{result}" is an error29µs
And I attach "{result}" to the test output as "admin-delete-protected-error.txt"32µs
📎 Attachments:admin-delete-protected-error.txt
View Content (842 bytes)
failed to delete blob admin-protected-object=1781625064012.txt: DELETE https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/admin-protected-object=1781625064012.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:ff4e843d-601e-0070-2ca7-fd146c000000
Time:2026-06-16T15:51:04.8875674Z
--------------------------------------------------------------------------------
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"46µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"44µs
And I refer to "{result}" as "storage"25µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-write"51µs
And "{result}" is not an error32µ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"73ms
Then "{result}" is not an error
36µsexpected {result} to not be an error, but got: failed to upload blob modify-test-object=1781625064923.txt: PUT https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/modify-test-object=1781625064923.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:ff4e847b-601e-0070-60a7-fd146c000000
Time:2026-06-16T15:51:04.9622031Z
--------------------------------------------------------------------------------
And I attach "{result}" to the test output as "original-object.json"19µs
When I call "{userStorage}" with "CreateObject" using arguments "{resource-name}", "modify-test-object={timestamp}.txt", and "modified content"20µs
Then "{result}" is an error17µs
And I attach "{result}" to the test output as "modify-protected-error.txt"15µs
And "{result}" should contain one of "retention, locked, immutable, protected, exists"22µ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"26µs
When I call "{storage}" with "CreateObject" using arguments "{resource-name}", "readable-protected-object={timestamp}.txt", and "readable data"456ms
Then "{result}" is not an error41µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-read"62µs
And "{result}" is not an error24µs
And I refer to "{result}" as "userStorage"25µs
When I call "{userStorage}" with "ReadObject" using arguments "{resource-name}" and "readable-protected-object={timestamp}.txt"74ms
Then "{result}" is not an error
36µsexpected {result} to not be an error, but got: failed to download blob readable-protected-object=1781625064997.txt: GET https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/readable-protected-object=1781625064997.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:ff4e8604-601e-0070-29a7-fd146c000000
Time:2026-06-16T15:51:05.4938957Z
--------------------------------------------------------------------------------
And I refer to "{result}" as "readResult"43µ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"23µs