Commit Graph

334 Commits

Author SHA1 Message Date
Ramkumar Chinchani 0cac8a7ee8 chore: fix dependabot alerts (#3707)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2026-01-15 20:42:39 +02:00
Ramkumar Chinchani bc9f270e96 ci: fix nightly due to outdated kind (#3676)
ci: update kind version

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2026-01-12 10:14:23 -08:00
Ramkumar Chinchani 800a545fbe chore: fix dependabot alerts (#3677)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-12-29 09:59:57 +02:00
Ramkumar Chinchani 3a349dccec chore: fix dependabot alerts (#3657)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-12-15 23:34:32 -08:00
Andrei Aaron 08fae9104d feat: support mTLS-only authn/authz with AccessControl and allow combining mTLS with other auth mechanisms (#3624)
* feat: support mTLS-only authn/authz with AccessControl and allow combining mTLS with other auth mechanisms

Signed-off-by: Ivan Arkhipov <me@endevir.ru>

* refactor: improve authentication logic and TLS certificate generation

- Fix mTLS authentication to use only leaf certificate instead of iterating
  through all certificates in the chain
- Reject Authorization headers when corresponding auth method is disabled,
  regardless of mTLS status (security improvement)
- Simplify authentication switch statement ordering and logic
- Move ErrUserDataNotFound error handling into sessionAuthn method
- Refactor TLS certificate generation to use Options pattern with
  CertificateOptions struct for better extensibility
- Consolidate duplicate certificate generation code into helper functions
  (generateCertificate, parseCA, initializeTemplate, applyOptions)
- Rename certificate generation functions for clarity:
  - GenerateCertWithCN -> GenerateClientCert
  - GenerateSelfSignedCertWithCN -> GenerateClientSelfSignedCert
- Add support for SAN settings including email addresses in certificates
- Update tests to reflect new authentication behavior and certificate API

This commit improves both the security posture (rejecting disabled auth
methods) and code maintainability (consolidated certificate generation).

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>

* fix: guard against multiple Authorization headers

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>

---------

Signed-off-by: Ivan Arkhipov <me@endevir.ru>
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
Co-authored-by: Ivan Arkhipov <me@endevir.ru>
2025-12-11 20:08:32 +02:00
Ramkumar Chinchani e7b73b6c2d chore: fix dependabot alerts (#3636)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-12-09 10:49:45 +02:00
Andrei Aaron ba8ab49502 ci: save unified coverage as build artifact (#3626)
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
2025-12-06 21:58:37 +02:00
Andrei Aaron 667ecfa40e ci: split needsprivileges tests from devmode tests (#3625)
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
2025-12-06 20:36:32 +02:00
Ramkumar Chinchani 92aee8ebce chore: Fix deps (#3620)
* chore: fix dependabot alerts

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* chore: update zui

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-12-04 11:43:24 +02:00
Andrei Aaron e068b8dc9f chore: Enable Go jsonv2 experiment and update the trivy dependency (v0.67.2) (#3572)
It requires the encoding/json/jsontext
package which is only available when the goexperiment.jsonv2 build
tag is enabled. This was causing build constraint errors during
tests and builds.

Changes:
- Add GOEXPERIMENT=jsonv2 to Makefile export and all go build/test
  commands that use env (since env creates a fresh environment)
- Add GOEXPERIMENT=jsonv2 to GitHub workflows that use direct go
  commands (workflows using make inherit it from Makefile)

Fix other dependabot alerts.

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
2025-11-27 09:58:37 +02:00
Ramkumar Chinchani 6452bec403 chore: fix dependabot alerts (#3595)
* chore: fix dependabot alerts

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* ci: bump up golang to 1.25.x

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: linter errors

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: stacker and docker build files to use golang 1.25

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-11-26 11:21:36 +02:00
Ramkumar Chinchani 05e9b8cdf8 chore: sync golang 1.25 (#3596)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-11-25 09:29:01 +02:00
Andrei Aaron 7bc6637380 ci: use minio==7.2.18 (#3581)
Looks like they broke the public API in a minor version: https://github.com/minio/minio-py/releases/tag/7.2.19
It was probably not intetional, until they figure it out, let's use the older working version.

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
2025-11-24 14:10:35 +02:00
Andrei Aaron da426850e7 chore: update golangci-lint and fix all issues (#3575)
* chore: Update golangci-lint

Signed-off-by: Lars Francke <git@lars-francke.de>

* chore: fix all golangci-lint issues

- Remove deprecated `// +build` tags
- Fix godoclint, modernize, wsl_v5, govet, lll, gci, noctx issues
- Update linter configuration
- Modernize code to use Go 1.22+ features (for range N, slices.Contains, etc.)
- Update make check lint the privileged tests

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>

---------

Signed-off-by: Lars Francke <git@lars-francke.de>
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
Co-authored-by: Lars Francke <git@lars-francke.de>
2025-11-22 23:36:48 +02:00
Ramkumar Chinchani 64829f9502 feat: allow claim mapping for user name with oidc (#3540)
* feat: allow claim mapping for user name with oidc

* feat: bats test for claim mapping

* test: fix dex config in openid mapping test

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* test: add panva idp

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: address copilot comments

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
Co-authored-by: Sky Moore <i@msky.me>
2025-11-20 08:54:56 -08:00
Ramkumar Chinchani 49c15abf06 chore: fix dependabot alerts (#3555)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-11-18 08:46:51 +02:00
Ramkumar Chinchani 2b6fba7059 chore: fix dependabot alerts (#3534)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-11-10 23:45:17 -08:00
Andrei Aaron a8a6d3be9e fix: separate cipher suites and curve preferences into FIPS and non FIPS, and use them accordingly (#3523)
See: https://github.com/project-zot/zot/actions/runs/19209741002/job/54910194536

`failed to ping registry localhost:11448: Get "https://localhost:11448/v2/": crypto/ecdh: use of X25519 is not allowed in FIPS 140-only mode`

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
2025-11-10 23:24:59 +02:00
Ramkumar Chinchani 04ae0a9409 fix: add support for sha256 and sha512 in htpasswd (#3497)
feat: add support for sha256 and sha512 htpasswd formats

Fixes issue #3495

We currently support only bcrypt htpasswd hashes, however bcrypt is not
FIPS-140 approved since it uses Blowfish.

This PR adds support for sha256 and sha512 formats and enforces that
bcrypt be disabled when fips140 mode is enabled.

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-11-09 15:28:29 +02:00
Ramkumar Chinchani 33c466e007 chore: fix dependabot alerts (#3514)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-11-04 14:11:27 +02:00
Ramkumar Chinchani a0943eccfe chore: fix dependabot alerts (#3496)
* chore: fix dependabot alerts

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: initialize logger in ut

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-10-30 14:21:53 -07:00
Ramkumar Chinchani 559d9cf2fc chore: fix dependabot alerts (#3477)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-10-22 09:46:03 +03:00
Ramkumar Chinchani b2bbbb27f2 chore: fix dependabot alerts (#3461)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-10-14 08:07:24 +03:00
Andrei Aaron f724107c8f ci: fix values in stale comment messages (#3448)
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
2025-10-11 10:57:07 +03:00
Andrei Aaron 466cbc36fd ci: update stale checks (#3446)
Since the job for triaging stale issues started running last week, it has been mainly running for recent issues.
Also 30 days of issue inactivity is too low at this moment.

Update to 90 days, and force it to start processing older issues/PRs first.
Increase the number of operations per execution, processing more issues/PRs per run.

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
2025-10-10 09:16:02 -07:00
Ramkumar Chinchani 1d9c9aeacf chore: fix dependabot alerts (#3444)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-10-07 14:14:34 +03:00
Vishwas Rajashekar 86af38abfc feat(sessions): add support for remote redis session store (#3345)
Description
====================
zot currently stores session cookies in memory or in a local directory.
For cases where the session cookies should be independent of the
instance where they were created such as multiple instances of zot, or a
fully stateless zot instance, there is a need to support a remote
session storage.
This change adds support for using Redis and Redis-compatible services as a
remote session driver as well as introduces a new configuration option
for it.

What has changed
=======================
- New config added under Auth config to specify configuration for
  the session driver.
- Examples README updated with details of the new Auth config.
- The config supports only 2 drivers in this change - local and redis
- Using the local driver is backwards compatible and behaves the same
  way that zot currently works for local session storage.
- Omitting this config does not result in an error. In this case, zot
  behaves as it normally does for local session storage.
- When configured, zot can use redis for persisting cookie
  information for zot UI.
- The cookie in the store is deleted on logout or after the max
  expiry time for the cookie.
- Configuration for the redis session driver accepts the same configuration
  values as that of the remote meta cache.
- A separate connection is established for the session driver. An
  existing connection for meta cache will not be re-used for the
  session driver.
- A key prefix is configurable for the redis session driver. The value will be
  converted into a string for use. If no value is provided, a default
  prefix of "zotsession" will be used.
- Redis sessions does not support hash key or encryption in this change.
- New BATS test added to verify zot behavior with Redis session store.
- Github workflow updated to install valkey-tools dependency for BATS.

Signed-off-by: Vishwas Rajashekar <dev@vrajashkr.com>
2025-10-05 10:13:38 +03:00
Ramkumar Chinchani d5779cfec8 ci: move workflow to oci runner (#3426)
* ci: move workflow to oci runner

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: some changes on top

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-10-03 11:51:12 -07:00
Ramkumar Chinchani 799496b7d3 ci: fix stale check (#3427)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-10-03 00:32:07 -07:00
Ramkumar Chinchani 5e5bd1e33c chore: fix dependabot alerts (#3422)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-09-30 09:56:53 +03:00
Ramkumar Chinchani e49048958d chore: fix dependabot alerts (#3397)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-09-18 11:49:04 -07:00
Ramkumar Chinchani 97ab0e2568 chore: fix dependabot alerts (#3380)
* chore: fix dependabot alerts

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* ci: bump up golang version to 1.24.x

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-09-11 11:11:38 +03:00
Ramkumar Chinchani 9bb73d43b4 chore: fix dependabot alerts (#3365)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-09-07 00:04:16 -07:00
Ramkumar Chinchani cb520aa9e4 Fix deps (#3343)
* chore(ci): fix sync images workflow

golang image is sync'ed from dockerhub and it appears certs have expired
that is breaking 'docker trust inspect ...'

* chore: fix dependabot alerts

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-08-28 09:05:59 -07:00
Ramkumar Chinchani f689c13f2e chore: fix dependabot alerts (#3328)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-08-19 01:49:36 -07:00
Ramkumar Chinchani 69e58b092d chore: fix dependabot alerts (#3312)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-08-16 00:23:35 -07:00
Ramkumar Chinchani e8b530ad9d ci: selectively revert this runner (#3297)
This workflow is failing. We will revisit once the default username
includes the docker group.

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-08-14 12:38:45 -07:00
Koray Oksay deb0e4a71b chore(ci): update github runners to oci gh arc runners (#3293)
ci: update github runners to oci gh arc runners

Signed-off-by: Koray Oksay <koray.oksay@gmail.com>
2025-08-06 21:01:12 -07:00
Ramkumar Chinchani a13c917b73 chore: fix dependabot alerts (#3292)
* chore: fix dependabot alerts

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: update trivy api call

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-08-06 10:09:53 -07:00
Ramkumar Chinchani 41183693b0 feat(freebsd): add support native freebsd container images (#3256)
* feat(freebsd): add support native freebsd container images

Fixes issue #1663

freebsd is now building and releasing official freebsd OCI container
images

https://hub.docker.com/r/freebsd/freebsd-runtime/tags
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: add freebsd support in publish workflow

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: bump stacker version

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: disable non-functional darwin OCI image builds

darwin OCI images are non-functional until we get a usable base image.
Remove them.

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

* fix: set freebsd-static as base image for FreeBSD images

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-08-03 08:58:30 -07:00
Ramkumar Chinchani e775f41edc chore: fix dependabot alerts (#3274)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-07-25 09:33:23 -07:00
Ramkumar Chinchani 2c7e8fd33e chore: fix dependabot alerts (#3245)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-07-05 00:06:32 +03:00
Ramkumar Chinchani 100dfec142 chore: fix dependabot alerts (#3213)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-06-17 10:09:19 -07:00
Andrei Aaron 6a22640bfa Fix dependabot alerts (#3188)
* chore: update github.com/redis/go-redis/v9 to v9.9.0

Signed-off-by: Andrei Aaron <aaaron@luxoft.com>

* chore: update trivy to v0.63.0

Signed-off-by: Andrei Aaron <aaaron@luxoft.com>

* chore: update github.com/spf13/cast to v1.9.2

Signed-off-by: Andrei Aaron <aaaron@luxoft.com>

* chore: update ossf/scorecard-action from 2.4.1 to 2.4.2

Signed-off-by: Andrei Aaron <aaaron@luxoft.com>

* chore: fix multiple dependabot alerts

Signed-off-by: Andrei Aaron <aaaron@luxoft.com>

---------

Signed-off-by: Andrei Aaron <aaaron@luxoft.com>
2025-06-09 10:40:13 -07:00
Ramkumar Chinchani 167f7e34cd chore: fix dependabot alerts (#3155)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-05-27 18:58:50 +03:00
Ramkumar Chinchani 32a5eee521 chore: fix dependabot alerts (#3141)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-05-05 22:06:22 -07:00
Ramkumar Chinchani 06a0cd5220 chore: fix dependabot alerts (#3127)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-04-30 21:47:54 +03:00
peusebiu 0e2aa81439 feat(sync): use regclient for sync extension (#2903)
* feat(sync): use regclient for sync extension

replaced containers/image package with regclient/regclient package

Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com>

* fix(sync): fixed converting innner docker list mediatype

Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com>

* feat(sync): added option to preserve digest

Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com>

* fix(sync): added coverage and various fixes

Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com>

* fix(metadb): fixed converting manifest list not setting platform and annotations

Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com>

* fix(sync): remove read lock on storage, not used concurrently

Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com>

* feat(sync): added cache for repo tags

Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com>

* fix(sync): fixed Makefile
removed opengpg tag

Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com>

* fix(sync): add test for on demand referrer

Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com>

---------

Signed-off-by: Eusebiu Petu <petu.eusebiu@gmail.com>
2025-04-15 16:58:15 -07:00
Ramkumar Chinchani 2592d4c784 chore: fix dependabot alerts (#3099)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-04-14 22:43:56 -07:00
Ramkumar Chinchani 62af65b07d chore: fix dependabot alerts (#3084)
Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
2025-04-08 22:57:22 -07:00