Skip to content

Releases

v2.16.0-rc2

v2.16.0-rc2 Pre-release
Pre-release

Choose a tag to compare

@stonezdj stonezdj released this 06 Nov 12:30
08cbdd0

What's Changed

Exciting New Features ๐ŸŽ‰

  • Update artifact_accessory to add source column to identify accessory by @stonezdj in #23144
  • feat: replace redis with valkey as cache backend by @chlins in #23157
  • Full Multi-Architecture Enablement for Harbor (amd64 + arm64) by @ranimandepudi in #22311
  • Add ListReferrers API to registry client and update parseScopes by @stonezdj in #23170
  • Proxy the referrer API to upstream registry with paging and local merge by @stonezdj in #23237
  • feat(ui): support advanced proxy cache configurations in UI by @stonezdj in #23536
  • feat(backend): implement proxy cache repository filter API by @stonezdj in #23527
  • Custom project roles โ€” frontend UI by @maxgraustenzel-create in #23970
  • feat(task): aggregate execution error messages and surface task failure details by @stonezdj in #24028

Enhancement ๐Ÿš€

  • Fix Last Pull time on parent/child artifacts and on creation by @BojanZelic in #22402
  • fix(proxy): preserve URL path prefix during registry auth discovery by @mco69 in #22989
  • Add UI option to enable proxy cache referrer API by @stonezdj in #23151
  • ci: add API schema drift check for v2.0 swagger spec by @infracore in #23089
  • refactor(task): use Redis SET with SPOP for outdate execution status โ€ฆ by @chlins in #23183
  • test(cosign): disable tlog for signing checks by @chlins in #23279
  • perf(replication): filter event policies in query by @chlins in #23283
  • fix: enable chunked blob upload for Azure ACR replication by @xrkolovos in #23016
  • feat(audit): add member create/update/delete audit events by @Mauraza in #23228
  • fix: add registry component to proxy configuration support by @Kibakus in #23437
  • fix: set MaxIdleConnsPerHost on internal HTTP transports by @chlins in #23591
  • Add proxy cache hit/miss metrics by @Jason-Lee3 in #23578
  • fix: implement signature inheritance for OCI index children by @Aloui-Ikram in #23540
  • fix(api): return 404 when listing artifacts of a non-existing repository by @tpoxa in #17618

Component updates โฌ†๏ธ

Read more

v2.16.0-rc1

v2.16.0-rc1 Pre-release
Pre-release

Choose a tag to compare

@stonezdj stonezdj released this 27 Oct 07:25
e0cbb8e

What's Changed

Exciting New Features ๐ŸŽ‰

  • Update artifact_accessory to add source column to identify accessory by @stonezdj in #23144
  • feat: replace redis with valkey as cache backend by @chlins in #23157
  • Full Multi-Architecture Enablement for Harbor (amd64 + arm64) by @ranimandepudi in #22311
  • Add ListReferrers API to registry client and update parseScopes by @stonezdj in #23170
  • Proxy the referrer API to upstream registry with paging and local merge by @stonezdj in #23237
  • feat(ui): support advanced proxy cache configurations in UI by @stonezdj in #23536
  • feat(backend): implement proxy cache repository filter API by @stonezdj in #23527
  • test: add api and ui integration tests for proxy cache repository filter by @fiona-xie in #23744
  • Custom project roles โ€” frontend UI by @maxgraustenzel-create in #23970
  • feat(task): aggregate execution error messages and surface task failure details by @stonezdj in #24028

Enhancement ๐Ÿš€

  • Fix Last Pull time on parent/child artifacts and on creation by @BojanZelic in #22402
  • fix(proxy): preserve URL path prefix during registry auth discovery by @mco69 in #22989
  • Add UI option to enable proxy cache referrer API by @stonezdj in #23151
  • ci: add API schema drift check for v2.0 swagger spec by @infracore in #23089
  • refactor(task): use Redis SET with SPOP for outdate execution status โ€ฆ by @chlins in #23183
  • test(cosign): disable tlog for signing checks by @chlins in #23279
  • perf(replication): filter event policies in query by @chlins in #23283
  • fix: enable chunked blob upload for Azure ACR replication by @xrkolovos in #23016
  • feat(audit): add member create/update/delete audit events by @Mauraza in #23228
  • fix: add registry component to proxy configuration support by @Kibakus in #23437
  • fix: set MaxIdleConnsPerHost on internal HTTP transports by @chlins in #23591
  • Add proxy cache hit/miss metrics by @Jason-Lee3 in #23578
  • fix: implement signature inheritance for OCI index children by @Aloui-Ikram in #23540
  • fix(api): return 404 when listing artifacts of a non-existing repository by @tpoxa in #17618

Component updates โฌ†๏ธ

Read more

v2.14.6

Choose a tag to compare

@stonezdj stonezdj released this 23 Oct 07:04
f435c95

What's Changed

Component updates โฌ†๏ธ

  • bump base version for v2.14.6 by @wy65701436 in #24115
  • Release 2.14 bump go trivy distribution by @wy65701436 in #24122
  • fix(webhook): allow private network access by default (#24082) by @wy65701436 in #24129
  • fix(prepare): expose the legacy signer pull switch in harbor.yml (#24โ€ฆ by @wy65701436 in #24130
  • Cherry pick upload location origin 2.14 (#24114) by @wy65701436 in #24131
  • fix(contenttrust): allow legacy signer pull by default to avoid regreโ€ฆ by @wy65701436 in #24132
  • (cherry-pick) support configurable PIP_INDEX_URL for swagger client build and make openapi-generator-cli download URL configurable by @stonezdj in #24150
  • [release-2.14] fix(cnai-parser): enforce actual byte limit to prevent decompression (#23497) by @Vad1mo in #24143
  • [release-2.14] fix: avoid panic in user audit event resolver on nil event data (#23461) by @Vad1mo in #24152
  • chore(deps): upgrade Go dependencies to fix High and Critical CVEs by @stonezdj in #24190
  • bump: bump Go to 1.26.10 for release-2.14.0 by @stonezdj in #24199

Full Changelog: v2.14.5...v2.14.6

v2.14.6-rc2

v2.14.6-rc2 Pre-release
Pre-release

Choose a tag to compare

@stonezdj stonezdj released this 22 Oct 09:28
f435c95

What's Changed

Component updates โฌ†๏ธ

  • bump base version for v2.14.6 by @wy65701436 in #24115
  • Release 2.14 bump go trivy distribution by @wy65701436 in #24122
  • fix(webhook): allow private network access by default (#24082) by @wy65701436 in #24129
  • fix(prepare): expose the legacy signer pull switch in harbor.yml (#24โ€ฆ by @wy65701436 in #24130
  • Cherry pick upload location origin 2.14 (#24114) by @wy65701436 in #24131
  • fix(contenttrust): allow legacy signer pull by default to avoid regreโ€ฆ by @wy65701436 in #24132
  • (cherry-pick) support configurable PIP_INDEX_URL for swagger client build and make openapi-generator-cli download URL configurable by @stonezdj in #24150
  • [release-2.14] fix(cnai-parser): enforce actual byte limit to prevent decompression (#23497) by @Vad1mo in #24143
  • [release-2.14] fix: avoid panic in user audit event resolver on nil event data (#23461) by @Vad1mo in #24152
  • chore(deps): upgrade Go dependencies to fix High and Critical CVEs by @stonezdj in #24190
  • bump: bump Go to 1.26.10 for release-2.14.0 by @stonezdj in #24199

Full Changelog: v2.14.5...v2.14.6-rc2

v2.14.6-rc1

v2.14.6-rc1 Pre-release
Pre-release

Choose a tag to compare

@wy65701436 wy65701436 released this 13 Oct 05:53
68d2b1a

What's Changed

Component updates โฌ†๏ธ

Full Changelog: v2.14.5...v2.14.6-rc1

v2.15.4

Choose a tag to compare

@stonezdj stonezdj released this 09 Oct 03:28
0a6bf30

What's Changed

Component updates โฌ†๏ธ

  • fix(webhook): allow private network access by default by @Vad1mo in #24082
  • fix(contenttrust): allow legacy signer pull by default to avoid regreโ€ฆ by @wy65701436 in #24086
  • fix(prepare): expose the legacy signer pull switch in harbor.yml by @bupd in #24101
  • Cherry pick upload location origin 2.15 by @wy65701436 in #24114

Bump Component Version ๐Ÿค–

Other Changes

  • Bump trivy adapter to v0.39.1 and distribution to v2.8.3-harbor.2 by @stonezdj in #24117

Full Changelog: v2.15.3...v2.15.4

v2.15.4-rc1

v2.15.4-rc1 Pre-release
Pre-release

Choose a tag to compare

@stonezdj stonezdj released this 08 Oct 12:46
d884174

What's Changed

Component updates โฌ†๏ธ

  • fix(webhook): allow private network access by default by @Vad1mo in #24082
  • fix(contenttrust): allow legacy signer pull by default to avoid regreโ€ฆ by @wy65701436 in #24086
  • fix(prepare): expose the legacy signer pull switch in harbor.yml by @bupd in #24101
  • Cherry pick upload location origin 2.15 by @wy65701436 in #24114

Bump Component Version ๐Ÿค–

Full Changelog: v2.15.3...v2.15.4-rc1

v2.15.3

Choose a tag to compare

@Vad1mo Vad1mo released this 06 Oct 13:11

Warning

Breaking change: webhooks to internal addresses are blocked by default

The fix for GHSA-2phj-cp9f-qq6w blocks webhook and Slack delivery to private, loopback, link-local and other non-public addresses. That includes hostnames that resolve to them, such as *.svc.cluster.local. After you upgrade, existing webhooks to internal endpoints fail to deliver, and new ones are rejected.

To allow them again, set the opt-out on both core and jobservice:

  • harbor.yml: network.allow_private_network_access: true, then ./prepare and restart
  • Helm: add {name: HARBOR_ALLOW_PRIVATE_NETWORK_ACCESS, value: "true"} to both core.extraEnvVars and jobservice.extraEnvVars

This disables the protection entirely. Only use it if you trust all project admins, and block 169.254.169.254 at the network level.

Warning

Breaking change: signing unsigned images fails when content trust is enforced

The fix for GHSA-wrw5-gmvj-gf23 removes the User-Agent based exemption that let cosign and notation pull unsigned images. In projects that only allow signed images, cosign sign and notation sign on a new, unsigned image now fail with 412 Precondition Failed. Images that already have a signature are not affected.

To allow signing clients again, set CONTENT_TRUST_LEGACY_SIGNER_PULL_ENABLED=true on core. The value must be exactly true.

  • Helm: add it to core.extraEnvVars
  • harbor.yml installs: there is no harbor.yml option. Add it to common/config/core/env and restart. Re-running ./prepare overwrites that file.

The exemption still trusts the client's User-Agent, but only for users or robots with push permission on the project. Projects that block vulnerable images have no opt-out: a signing client can no longer pull an image that the vulnerability policy blocks.

Warning

Known Issue: Push Replication Fails for Specific Registries such as AWS ECR (GHSA-wjpm-hv5w-gxr6 Regression)

The security fix for GHSA-wjpm-hv5w-gxr6 strictly validated upload Location headers against the statically configured registry endpoint (c.url). Because the AWS ECR adapter configures the API control-plane endpoint (https://api.ecr..amazonaws.com) while requests are rewritten to the data-plane host (.dkr.ecr..amazonaws.com), ECR's response Location header is rejected as a cross-origin target.

Workaround / Resolution:

A fix has been provided in PR #24113 and will be released in the upcoming patch release.
If your environment depends on push replication, we recommend postponing the upgrade until the next patch release or applying the patch directly.

What's Changed

Security Advisories ๐Ÿ”’

Component updates โฌ†๏ธ

  • (cherry-pick) fix: avoid panic in user audit event resolver on nil event data (#23461) by @Aloui-Ikram in #23501
  • (cherry-pick) fix: Constrain /registries/ping to the saved URL for existing registries (#23463) by @Aloui-Ikram in #23502
  • (cherry-pick) Add a size limit for manifest uploads by @Aloui-Ikram in #23503
  • cherry-pick: fix(ui): use dark login background in dark mode by @bupd in #23539
  • ci: remove third-party docker action by @stonezdj in #23693
  • (cherry-pick) neutralize CSV formula in scan export by @stonezdj in #23696
  • (cherry-pick): prevent proxy-cache poisoning via robot-name prefix by @stonezdj in #23695
  • (cherry-pick) Exclude replication from dockerhub in github action by @stonezdj in #23715
  • (cherry-pick) fix: convert setup_timestamp, status_revision, and revision columns to bigint to avoid Y2K38 overflow (#23711) by @stonezdj in #23719
  • (cherry-pick) add size limit for audit log payload by @stonezdj in #23758
  • (cherry-pick) Refine utils function IsLocalPath by @stonezdj in #23757
  • [Backport] test(api): enhance stability of test_copy_disability in tag immutability by @fiona-xie in #23775
  • (cherry-pick): query robot account to validate proxy session and fix UT by @stonezdj in #23780
  • [cherry-pick]fix: correct grammar and typos in user-facing error messages by @wy65701436 in #23822
  • [cherry pick] Remove hardcoded credentials and prevernt passwords in logs by @jUDASmILE in #23865
  • make hostname comparisons case-insensitive by @stonezdj in #23833
  • [cherry pick] improve HTTP client request logging and credential strโ€ฆ by @jUDASmILE in #23876
  • [cherry pick]refactor: sanitize connection details in logs and enhance error messaโ€ฆ by @jUDASmILE in #23886
  • (cherry-pick) make endpoint handling and validation case-insensitive by @stonezdj in #23887
  • [cherry pick] cherry pick 23974 changes to release-2.15.0 branch by @jUDASmILE in #23982
  • [CHERRY-PICK] fix(gc): do not count blobs missing from storage as freed space by @velmoga in #23980

Bump C...

Read more

v2.14.5

Choose a tag to compare

@Vad1mo Vad1mo released this 06 Oct 15:47
c83198c

Warning

Breaking change: webhooks to internal addresses are blocked by default

The fix for GHSA-2phj-cp9f-qq6w blocks webhook and Slack delivery to private, loopback, link-local and other non-public addresses. That includes hostnames that resolve to them, such as *.svc.cluster.local. After you upgrade, existing webhooks to internal endpoints fail to deliver, and new ones are rejected.

To allow them again, set the opt-out on both core and jobservice:

  • harbor.yml: network.allow_private_network_access: true, then ./prepare and restart
  • Helm: add {name: HARBOR_ALLOW_PRIVATE_NETWORK_ACCESS, value: "true"} to both core.extraEnvVars and jobservice.extraEnvVars

This disables the protection entirely. Only use it if you trust all project admins, and block 169.254.169.254 at the network level.

Warning

Breaking change: signing unsigned images fails when content trust is enforced

The fix for GHSA-wrw5-gmvj-gf23 removes the User-Agent based exemption that let cosign and notation pull unsigned images. In projects that only allow signed images, cosign sign and notation sign on a new, unsigned image now fail with 412 Precondition Failed. Images that already have a signature are not affected.

To allow signing clients again, set CONTENT_TRUST_LEGACY_SIGNER_PULL_ENABLED=true on core. The value must be exactly true.

  • Helm: add it to core.extraEnvVars
  • harbor.yml installs: there is no harbor.yml option. Add it to common/config/core/env and restart. Re-running ./prepare overwrites that file.

The exemption still trusts the client's User-Agent, but only for users or robots with push permission on the project. Projects that block vulnerable images have no opt-out: a signing client can no longer pull an image that the vulnerability policy blocks.

Warning

Known Issue: Push Replication Fails for Specific Registries such as AWS ECR (GHSA-wjpm-hv5w-gxr6 Regression)

The security fix for GHSA-wjpm-hv5w-gxr6 strictly validated upload Location headers against the statically configured registry endpoint (c.url). Because the AWS ECR adapter configures the API control-plane endpoint (https://api.ecr..amazonaws.com) while requests are rewritten to the data-plane host (.dkr.ecr..amazonaws.com), ECR's response Location header is rejected as a cross-origin target.

Workaround / Resolution:

A fix has been provided in PR #24113 and will be released in the upcoming patch release.
If your environment depends on push replication, we recommend postponing the upgrade until the next patch release or applying the patch directly.

What's Changed

Security Advisories ๐Ÿ”’

Component updates โฌ†๏ธ

  • [CHERRY-PICK] Make openapi-generator-cli download URL configurable (#23186) by @chlins in #23222
  • [cherry-pick] Rebuild goharbor/photon image before create new harbor base images by @jUDASmILE in #23252
  • [cherry-pick]remove install net-tools from db dockerfile as photon removed it by @jUDASmILE in #23268
  • [CHERRY-PICK] test(cosign): disable tlog for signing checks by @chlins in #23281
  • [CHERRY-PICK] fix(cosign): ignore tlog during verification by @chlins in #23285

Other Changes

  • [cherry-pick] support configurable PIP_INDEX_URL for swagger client build by @stonezdj in #23243
  • fix: pin redis 7.2.11 instead of 7.2.6 in the redis base image by @bupd in #24065
  • fix: stop release-2.14 builds from overwriting goharbor/photon:5.0 by @bupd in #24063

Full Changelog: v2.14.4...v2.14.5

v2.13.6

Choose a tag to compare

@Vad1mo Vad1mo released this 06 Oct 15:48
4efe985

Warning

Breaking change: webhooks to internal addresses are blocked by default

The fix for GHSA-2phj-cp9f-qq6w blocks webhook and Slack delivery to private, loopback, link-local and other non-public addresses. That includes hostnames that resolve to them, such as *.svc.cluster.local. After you upgrade, existing webhooks to internal endpoints fail to deliver, and new ones are rejected.

To allow them again, set the opt-out on both core and jobservice:

  • harbor.yml: network.allow_private_network_access: true, then ./prepare and restart
  • Helm: add {name: HARBOR_ALLOW_PRIVATE_NETWORK_ACCESS, value: "true"} to both core.extraEnvVars and jobservice.extraEnvVars

This disables the protection entirely. Only use it if you trust all project admins, and block 169.254.169.254 at the network level.

Warning

Breaking change: signing unsigned images fails when content trust is enforced

The fix for GHSA-wrw5-gmvj-gf23 removes the User-Agent based exemption that let cosign and notation pull unsigned images. In projects that only allow signed images, cosign sign and notation sign on a new, unsigned image now fail with 412 Precondition Failed. Images that already have a signature are not affected.

To allow signing clients again, set CONTENT_TRUST_LEGACY_SIGNER_PULL_ENABLED=true on core. The value must be exactly true.

  • Helm: add it to core.extraEnvVars
  • harbor.yml installs: there is no harbor.yml option. Add it to common/config/core/env and restart. Re-running ./prepare overwrites that file.

The exemption still trusts the client's User-Agent, but only for users or robots with push permission on the project. Projects that block vulnerable images have no opt-out: a signing client can no longer pull an image that the vulnerability policy blocks.

Warning

Known Issue: Push Replication Fails for Specific Registries such as AWS ECR (GHSA-wjpm-hv5w-gxr6 Regression)

The security fix for GHSA-wjpm-hv5w-gxr6 strictly validated upload Location headers against the statically configured registry endpoint (c.url). Because the AWS ECR adapter configures the API control-plane endpoint (https://api.ecr..amazonaws.com) while requests are rewritten to the data-plane host (.dkr.ecr..amazonaws.com), ECR's response Location header is rejected as a cross-origin target.

Workaround / Resolution:

A fix has been provided in PR #24113 and will be released in the upcoming patch release.
If your environment depends on push replication, we recommend postponing the upgrade until the next patch release or applying the patch directly.

What's Changed

Security Advisories ๐Ÿ”’

Other Changes

  • fix: pin redis 7.2.11 instead of 7.2.6 in the redis base image by @bupd in #24066

Full Changelog: v2.13.5...v2.13.6