Support the new API GetObjectAttributes#6060
Conversation
Hello maeldonn,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Incorrect fix versionThe
Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:
Please check the |
❌ 1 Tests Failed:
View the full list of 1 ❄️ flaky test(s)
To view more test analytics, go to the Test Analytics Dashboard |
a7ad5b2 to
023e610
Compare
There was a problem hiding this comment.
Pull request overview
This pull request adds support for the AWS S3 GetObjectAttributes API, which allows clients to retrieve object metadata without downloading the object itself. The implementation includes comprehensive unit and functional tests, a new API endpoint, header parsing utilities, and updates the Arsenal dependency to include the required support for this feature.
Changes:
- Implements the GetObjectAttributes API endpoint with support for retrieving ETag, StorageClass, ObjectSize, ObjectParts, and Checksum attributes
- Adds header parsing utility to validate and parse the x-amz-object-attributes header
- Includes comprehensive unit and functional tests covering success cases, error conditions, and versioning scenarios
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| package.json | Updates Arsenal dependency to feature branch and increments version to 9.2.22 |
| yarn.lock | Updates Arsenal lockfile entry to match feature branch reference |
| lib/api/objectGetAttributes.js | New API implementation for GetObjectAttributes with versioning and delete marker support |
| lib/api/apiUtils/object/parseAttributesHeader.js | New utility to parse and validate x-amz-object-attributes header |
| lib/api/api.js | Registers the new objectGetAttributes API method |
| constants.js | Adds allowedObjectAttributes Set defining valid attribute names |
| tests/unit/api/objectGetAttributes.js | Unit tests covering API functionality, error cases, and versioning |
| tests/unit/api/apiUtils/object/parseAttributesHeader.js | Unit tests for header parsing utility |
| tests/functional/aws-node-sdk/test/object/objectGetAttributes.js | Functional tests using AWS SDK |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
package.json
Outdated
| "@azure/storage-blob": "^12.28.0", | ||
| "@hapi/joi": "^17.1.1", | ||
| "arsenal": "git+https://github.com/scality/Arsenal#8.2.43", | ||
| "arsenal": "git+https://github.com/scality/Arsenal#feature/ARSN-549/get-object-attributes", |
There was a problem hiding this comment.
Arsenal dependency points to a feature branch instead of a released version. The package.json and yarn.lock reference 'git+https://github.com/scality/Arsenal#feature/ARSN-549/get-object-attributes' rather than a stable release tag. Before merging this PR, the Arsenal dependency should be updated to point to a proper release version to avoid dependency management issues and ensure stability in production environments.
| "arsenal": "git+https://github.com/scality/Arsenal#feature/ARSN-549/get-object-attributes", | |
| "arsenal": "git+https://github.com/scality/Arsenal#8.2.0", |
There was a problem hiding this comment.
I'm waiting for all the reviews first. I will do it just before merging the PR. That's why I haven't resolved this comment 😉
tests/functional/aws-node-sdk/test/object/objectGetAttributes.js
Outdated
Show resolved
Hide resolved
tests/functional/aws-node-sdk/test/object/objectGetAttributes.js
Outdated
Show resolved
Hide resolved
tests/functional/aws-node-sdk/test/object/objectGetAttributes.js
Outdated
Show resolved
Hide resolved
tests/functional/aws-node-sdk/test/object/objectGetAttributes.js
Outdated
Show resolved
Hide resolved
d9b4211 to
3b7dddd
Compare
5a3c013 to
23f1c1c
Compare
Incorrect fix versionThe
Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:
Please check the |
tests/functional/aws-node-sdk/test/object/objectGetAttributes.js
Outdated
Show resolved
Hide resolved
tests/functional/aws-node-sdk/test/object/objectGetAttributes.js
Outdated
Show resolved
Hide resolved
tests/functional/aws-node-sdk/test/versioning/objectGetAttributes.js
Outdated
Show resolved
Hide resolved
Incorrect fix versionThe
Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:
Please check the |
Incorrect fix versionThe
Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:
Please check the |
c45c894 to
838227a
Compare
c762cd8 to
bef8034
Compare
Incorrect fix versionThe
Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:
Please check the |
Incorrect fix versionThe
Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:
Please check the |
3ebd2ab to
e118699
Compare
caf1848 to
ddde8bf
Compare
ddde8bf to
fd17bad
Compare
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
The following reviewers are expecting changes from the author, or must review again: |
|
/approve |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
The following reviewers are expecting changes from the author, or must review again: The following options are set: approve |
| @@ -0,0 +1,170 @@ | |||
| const { promisify } = require('util'); | |||
There was a problem hiding this comment.
nit: just noticed this is indented with 2 spaces only, while we use 4-space indent overall...
There was a problem hiding this comment.
Yes used 2 space indentation on new files as it described here https://scality.atlassian.net/wiki/spaces/OS/pages/3726508042/Formatting+baseline+for+our+JS+TS+projects
|
I have successfully merged the changeset of this pull request
The following branches have NOT changed:
Please check the status of the associated issue CLDSRV-817. Goodbye maeldonn. The following options are set: approve |
Issue: CLDSRV-817