Skip to content

feat(storage): support copying CSEK-encrypted files to non-CSEK destinations - #26

Open
thiyaguk09 wants to merge 10 commits into
mainfrom
feat/7351-copy-csek-to-unencrypted
Open

feat(storage): support copying CSEK-encrypted files to non-CSEK destinations#26
thiyaguk09 wants to merge 10 commits into
mainfrom
feat/7351-copy-csek-to-unencrypted

Conversation

@thiyaguk09

Copy link
Copy Markdown
Owner

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

  • Make sure to open an issue as a bug/issue before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea
  • Ensure the tests and linter pass
  • Code coverage does not decrease (if any source code was changed)
  • Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds support for null encryption keys to allow copying CSEK-encrypted files to standard non-CSEK destinations. The review identifies a critical bug in the copy logic where the source file's encryption key is mutated and the destination file is left in an inconsistent state by bypassing setEncryptionKey. Feedback also suggests correcting the corresponding unit tests to avoid asserting on this buggy behavior and to use the proper setter method instead of manually assigning dummy properties.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread handwritten/storage/src/file.ts Outdated
Comment thread handwritten/storage/test/file.ts Outdated
Comment thread handwritten/storage/test/file.ts Outdated
@thiyaguk09
thiyaguk09 force-pushed the feat/7351-copy-csek-to-unencrypted branch 2 times, most recently from 76c3932 to ea8daaa Compare July 10, 2026 12:30
@thiyaguk09
thiyaguk09 force-pushed the feat/7351-copy-csek-to-unencrypted branch 5 times, most recently from a74b4bf to 657755f Compare July 27, 2026 06:48
@thiyaguk09
thiyaguk09 force-pushed the feat/7351-copy-csek-to-unencrypted branch 2 times, most recently from 5a02dda to c298f2e Compare July 28, 2026 13:51
danieljbruce and others added 10 commits July 28, 2026 15:39
…8987)

## Description

Upgrade the Node version from 18 to 22.

Towards googleapis#8985
Fixes googleapis#8969 🦕

I verified via grep that rimraf is not imported or required anywhere in
the src/ or build/ directories. I also ran the full test suite (npm
test) after removing the dependency to ensure no runtime or build
failures occur.
…cessing to 0.1.11 (googleapis#8980)

Update librarian to v0.30.1 and gapic-node-processing to 0.1.11 in
librarian.yaml, and regenerate all client libraries across the
workspace.

- Toolchain: Update librarian to v0.30.1 and gapic-node-processing to
0.1.11.
- Multi-API Barrel Exports: Restore previously missing client exports
across multi-service libraries (such as WorkflowsClient in
google-cloud-workflows and FirestoreAdminClient in
google-cloud-firestore-api) using TypeScript AST declaration merging.
- Protobuf Bundles: Minify runtime protobuf bundles (protos/protos.js),
reducing generated JavaScript file sizes by up to 75%.
- Workflows Custom Script: Empty the filesToDelete array in
packages/google-cloud-workflows/librarian.js. Previously, this script
deleted generated WorkflowsClient files as a workaround for generator
limitations. With multi-service AST merging
enabled in gapic-node-processing, index.ts automatically exports
WorkflowsClient, requiring the target files to be preserved on disk.

For googleapis/librarian#6969
…leapis#8992)

Add minified protobuf runtime scripts (protos/protos.js) to ignoreFiles
in .github/header-checker-lint.yml.

Copyright headers do not need to be validated in minified protobuf
scripts because these files are automatically generated during the build
process. The compilation step strips comments and whitespace to reduce
bundle size, which removes the copyright header and causes false
positives in CI validation.
🤖 I have created a release *beep* *boop*
---


<details><summary>jsdoc-region-tag: 5.0.0</summary>

##
[5.0.0](googleapis/google-cloud-node@jsdoc-region-tag-v4.0.3...jsdoc-region-tag-v5.0.0)
(2026-07-29)


### ⚠ BREAKING CHANGES

* Update jsdoc-region-tag to minimum Node version of 22.
([googleapis#8984](googleapis#8984))

### Features

* Update jsdoc-region-tag to minimum Node version of 22.
([googleapis#8984](googleapis#8984))
([9c26691](googleapis@9c26691)),
refs
[googleapis#8985](googleapis#8985)
</details>

<details><summary>pack-n-play: 5.0.0</summary>

##
[5.0.0](googleapis/google-cloud-node@pack-n-play-v4.2.3...pack-n-play-v5.0.0)
(2026-07-29)


### ⚠ BREAKING CHANGES

* Update pack-n-play to minimum Node version of 22.
([googleapis#8987](googleapis#8987))

### Features

* Update pack-n-play to minimum Node version of 22.
([googleapis#8987](googleapis#8987))
([b61e3d7](googleapis@b61e3d7)),
refs
[googleapis#8985](googleapis#8985)
</details>

<details><summary>admanager: 0.8.0</summary>

##
[0.8.0](googleapis/google-cloud-node@admanager-v0.7.0...admanager-v0.8.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>cloudquotas: 2.4.0</summary>

##
[2.4.0](googleapis/google-cloud-node@cloudquotas-v2.3.1...cloudquotas-v2.4.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>chat: 0.27.0</summary>

##
[0.27.0](googleapis/google-cloud-node@chat-v0.26.0...chat-v0.27.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>aiplatform: 6.11.0</summary>

##
[6.11.0](googleapis/google-cloud-node@aiplatform-v6.10.0...aiplatform-v6.11.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>batch: 2.5.0</summary>

##
[2.5.0](googleapis/google-cloud-node@batch-v2.4.0...batch-v2.5.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>commerceproducer: 0.2.0</summary>

##
[0.2.0](googleapis/google-cloud-node@commerceproducer-v0.1.0...commerceproducer-v0.2.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>compute: 6.15.0</summary>

##
[6.15.0](googleapis/google-cloud-node@compute-v6.14.0...compute-v6.15.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>google-cloud-firestore-api: 0.3.0</summary>

##
[0.3.0](googleapis/google-cloud-node@google-cloud-firestore-api-v0.2.0...google-cloud-firestore-api-v0.3.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>network-connectivity: 4.7.0</summary>

##
[4.7.0](googleapis/google-cloud-node@network-connectivity-v4.6.1...network-connectivity-v4.7.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>networkservices: 0.14.0</summary>

##
[0.14.0](googleapis/google-cloud-node@networkservices-v0.13.0...networkservices-v0.14.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>sql: 0.26.0</summary>

##
[0.26.0](googleapis/google-cloud-node@sql-v0.25.0...sql-v0.26.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>support: 2.6.0</summary>

##
[2.6.0](googleapis/google-cloud-node@support-v2.5.0...support-v2.6.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>tasks: 6.3.0</summary>

##
[6.3.0](googleapis/google-cloud-node@tasks-v6.2.3...tasks-v6.3.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>developer-knowledge: 0.3.0</summary>

##
[0.3.0](googleapis/google-cloud-node@developer-knowledge-v0.2.0...developer-knowledge-v0.3.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>containeranalysis: 6.9.0</summary>

##
[6.9.0](googleapis/google-cloud-node@containeranalysis-v6.8.0...containeranalysis-v6.9.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>navconnect: 0.2.0</summary>

##
[0.2.0](googleapis/google-cloud-node@navconnect-v0.1.1...navconnect-v0.2.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

<details><summary>grafeas: 6.3.0</summary>

##
[6.3.0](googleapis/google-cloud-node@grafeas-v6.2.0...grafeas-v6.3.0)
(2026-07-29)


### Features

* Update API sources and regenerate
([googleapis#8999](googleapis#8999))
([5c36365](googleapis@5c36365))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
…SEK and fix copy behavior for non-encrypted destinations
@thiyaguk09
thiyaguk09 force-pushed the feat/7351-copy-csek-to-unencrypted branch from c298f2e to 2e98b7c Compare July 29, 2026 06:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants