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"44µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"39µs
And I refer to "{result}" as "storage"22µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-write"47µs
And "{result}" is not an error29µs
And I refer to "{result}" as "userStorage"20µs
When I call "{userStorage}" with "CreateObject" using arguments "{resource-name}", "protected-object={timestamp}.txt", and "immutable data"69ms
Then "{result}" is not an error
33µsexpected {result} to not be an error, but got: failed to upload blob protected-object=1782150555094.txt: PUT https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/protected-object=1782150555094.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:c795e5f2-601e-0070-416f-02146c000000
Time:2026-06-22T17:49:15.1312588Z
--------------------------------------------------------------------------------
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"20µs
Then "{result}" is an error15µs
And I attach "{result}" to the test output as "delete-protected-error.txt"20µs
And "{result}" should contain one of "retention, locked, immutable, protected"22µ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"35µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"43µs
And I refer to "{result}" as "storage"23µs
When I call "{storage}" with "CreateObject" using arguments "{resource-name}", "admin-protected-object={timestamp}.txt", and "compliance data"432ms
Then "{result}" is not an error42µs
When I call "{storage}" with "DeleteObject" using arguments "{resource-name}" and "admin-protected-object={timestamp}.txt"437ms
Then "{result}" is an error31µs
And I attach "{result}" to the test output as "admin-delete-protected-error.txt"34µs
📎 Attachments:admin-delete-protected-error.txt
View Content (842 bytes)
failed to delete blob admin-protected-object=1782150555164.txt: DELETE https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/admin-protected-object=1782150555164.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:c795e8cc-601e-0070-706f-02146c000000
Time:2026-06-22T17:49:16.0009298Z
--------------------------------------------------------------------------------
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"36µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"32µs
And I refer to "{result}" as "storage"15µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-write"44µs
And "{result}" is not an error18µs
And I refer to "{result}" as "userStorage"23µs
When I call "{userStorage}" with "CreateObject" using arguments "{resource-name}", "modify-test-object={timestamp}.txt", and "original content"69ms
Then "{result}" is not an error
37µsexpected {result} to not be an error, but got: failed to upload blob modify-test-object=1782150556034.txt: PUT https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/modify-test-object=1782150556034.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:c795e902-601e-0070-1c6f-02146c000000
Time:2026-06-22T17:49:16.0714645Z
--------------------------------------------------------------------------------
And I attach "{result}" to the test output as "original-object.json"16µ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 error16µ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"21µ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"42µs
And I call "{api}" with "GetServiceAPI" using argument "object-storage"34µs
And I refer to "{result}" as "storage"23µ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 error29µs
And I call "{api}" with "GetServiceAPIWithIdentity" using arguments "object-storage" and "test-user-read"50µs
And "{result}" is not an error19µs
And I refer to "{result}" as "userStorage"16µs
When I call "{userStorage}" with "ReadObject" using arguments "{resource-name}" and "readable-protected-object={timestamp}.txt"69ms
Then "{result}" is not an error
47µsexpected {result} to not be an error, but got: failed to download blob readable-protected-object=1782150556104.txt: GET https://finoscccintegrationmain.blob.core.windows.net/finos-ccc-integration-container-main/readable-protected-object=1782150556104.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:c795ea2f-601e-0070-136f-02146c000000
Time:2026-06-22T17:49:16.5710447Z
--------------------------------------------------------------------------------
And I refer to "{result}" as "readResult"16µs
And I attach "{result}" to the test output as "read-protected-object.json"17µs
And "{readResult.Name}" is "readable-protected-object={timestamp}.txt"23µs