Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
184 commits
Select commit Hold shift + click to select a range
7cd5eb0
feat: add admin role under split-key ceremony
Manuthor Jun 7, 2026
8425083
fix: threat model fixes
Manuthor Aug 14, 2026
f0c40ff
fix(clippy): fix unseparated literal suffixes and add test module allows
Manuthor Aug 14, 2026
2e47d36
fix(co-ceremony): add target_user to disable endpoint for peer revoca…
Manuthor Aug 17, 2026
9299e50
feat(ui): brand theme + configurable split key ID + peer CO revocatio…
Manuthor Aug 17, 2026
9c9c9b7
feat(co-ceremony): add create-split-key subcommand to crypto-officer CLI
Manuthor Aug 17, 2026
c295490
fix: ensure the split key ceremony distribute correctly shares among CO
Manuthor Aug 17, 2026
030cb2f
fix(e2e): retry on transient 'Failed to fetch' in key creation helpers
Manuthor Aug 17, 2026
c2c4da5
ci: fix errors
Manuthor Aug 17, 2026
2bf34d7
feat(kmip-1.4): implement CreateSplitKey and JoinSplitKey for KMIP 1.4
Manuthor Aug 17, 2026
a2abbfb
fix(wizard): remove dead fields from AuthWizardResult and wire auth_v…
Manuthor Aug 17, 2026
39f5d24
fix(ui): gate CO revoke UI on is_crypto_officer + sync log-reference.md
Manuthor Aug 17, 2026
5efc2de
docs(get-attrs): fix stale comment about SplitKey stored Attributes
Manuthor Aug 17, 2026
f73e990
ci: fix wasm
Manuthor Aug 17, 2026
b02c8f7
fix: KMIP SplitKey compliance
Manuthor Aug 18, 2026
8c1461d
fix: stick to UserId
Manuthor Aug 18, 2026
0dc8bd4
docs: key_ceremony update
Manuthor Aug 18, 2026
2469e0d
refactor: simplify dispatch.rs
Manuthor Aug 18, 2026
30e2eae
docs: fix server_cli.md generation to satisfy MD041 (prepend H1 heading)
Manuthor Aug 18, 2026
baf6f11
fix(db): reuse SQL statements, factorize locate_query.rs functions
Manuthor Aug 18, 2026
1abb67f
fix: remove useless crypto_sensor doc + code
Manuthor Aug 18, 2026
a094330
fix: ignore RUSTSEC-2026-0258 since actix-http only ships h2 0.3.x
Manuthor Aug 18, 2026
03ed9be
ci(lychee): do not block CI
Manuthor Aug 18, 2026
6260626
fix(security): address security review findings on PR #991
Manuthor Aug 19, 2026
84dff31
fix(permissions): replace stale 'privileged_users' terminology in err…
Manuthor Aug 19, 2026
c941b57
docs(ceremony): correct dual-control description to match actual serv…
Manuthor Aug 19, 2026
c1f7753
docs(adr): correct CO role matrix — remove GrantAccess/RevokeAccess f…
Manuthor Aug 19, 2026
87e3cdb
docs(destroy): clarify CO bypass and silent-skip semantics vs Revoke
Manuthor Aug 19, 2026
8d9a0af
docs(permissions): document PM-2 and PM-3 design intent in enforce_cr…
Manuthor Aug 19, 2026
4886139
fix(dispatch): route CO lifecycle ops through enforce_create_permissi…
Manuthor Aug 19, 2026
ae2cb45
docs(locate): clarify CO ownership bypass behavior for Locate (PM-6)
Manuthor Aug 19, 2026
3d43735
fix(access): correct CryptoOfficerConfig doc — CO has no crypto-use b…
Manuthor Aug 19, 2026
de9a0c4
fix(ceremony): elevate split-key share audit logs to ERROR, add sessi…
Manuthor Aug 20, 2026
7c61957
fix(ceremony): F-2 + F-3 + F-9 security fixes for CO split-key ceremony
Manuthor Aug 20, 2026
9266a47
docs(changelog): record F-2/F-3/F-6/F-7/F-8/F-9 security improvements
Manuthor Aug 20, 2026
e23b6e1
chore: remove internal plan references (F-x, PM-x) from source and docs
Manuthor Aug 20, 2026
9853f97
docs(ceremony): correct dual-control wording — assembler can own shar…
Manuthor Aug 20, 2026
33e25d4
fix(ceremony): surface wrapping-key-not-found as 422 so operator rece…
Manuthor Aug 20, 2026
dc02baf
fix(ceremony): destroy orphaned source key when CreateSplitKey fails …
Manuthor Aug 20, 2026
1600229
fix: on KMS startup, using default_username + CO role fails
Manuthor Aug 21, 2026
21cef28
docs: log-ref update
Manuthor Aug 21, 2026
b9c18e9
fix(ui): bug in minimized left menu where tooltips were invisible + f…
Manuthor Aug 21, 2026
c9d6617
fix(i18n): still non-conformed strings
Manuthor Aug 21, 2026
9e73988
fix: update old ref to OpenSSL 3.6.0 to 3.6.2
Manuthor Aug 21, 2026
2e15ace
fix: fix AI skill
HatemMn Aug 21, 2026
673d6b4
fix: doc fix
HatemMn Aug 21, 2026
041ea56
docs: address docs review comments on PR #991
Manuthor Aug 22, 2026
df27ffe
fix(ui): address PR #991 UI review comments
Manuthor Aug 22, 2026
b32e7c2
docs: enable MathJax rendering in mdBook for key_ceremony.md
Manuthor Aug 22, 2026
1f95777
fix: move hardcoded allowed ops from dispatch
Manuthor Aug 23, 2026
37a6871
test: c2p still unavailable
Manuthor Aug 23, 2026
bcf32eb
feat: support CRL generation
Manuthor Jun 7, 2026
ac58b0c
fix(ui): rebase issue
Manuthor Aug 14, 2026
1c28bad
fix: rebase
Manuthor Aug 17, 2026
7a44f32
fix: GHSA-rwc8-xwm6-52xc
Manuthor Aug 17, 2026
7fe727b
fix(test): use temp file in sr_crl_10 instead of test_data submodule
Manuthor Aug 17, 2026
41bd944
feat: implement auto CRL refresh and persist CRLs in DB
Manuthor Aug 19, 2026
75e8825
fix: redis tests
Manuthor Aug 19, 2026
59d418a
feat(crl): configurable validity, Cache-Control headers, background r…
Manuthor Aug 20, 2026
9a16ef2
fix: follow RFC 5280 for RemoveFromCRL reason mapping
Manuthor Aug 20, 2026
c16c793
test(crl): verify CRL generation when CO role is disabled
Manuthor Aug 20, 2026
1fe5472
fix(ui): use public CRL endpoint to include certs from all users
Manuthor Aug 20, 2026
dd54125
fix(crl): remove CO guard — CRL is public information (RFC 5280 §3)
Manuthor Aug 20, 2026
4aa5550
chore: remove accidentally committed yo.der test file
Manuthor Aug 20, 2026
5308357
fix(test): eliminate TOCTOU race in test server port allocation
Manuthor Aug 20, 2026
1fd68d0
fix(test): bind dynamic port to configured hostname not 127.0.0.1
Manuthor Aug 20, 2026
3515514
docs(crl): clarify two-endpoint design in OpenAPI and Rust doc comments
Manuthor Aug 20, 2026
a2e4641
fix: CRLs RFCs compliance review
Manuthor Aug 23, 2026
40e95c6
test: comprehensive CRL test suite (unit, functional, security, non-r…
Manuthor Aug 23, 2026
4c66f45
test: CRL completeness with and without Crypto Officer role
Manuthor Aug 23, 2026
3e03472
test: counting-revoked-certificates tests for CRL with and without CO…
Manuthor Aug 23, 2026
1a5ca3a
fix: MySQL get_max_crl_number panics on NULL when crls table is empty
Manuthor Aug 23, 2026
5c65bea
refactor(config): extract CRL lifecycle settings into CrlConfig struct
Manuthor Aug 23, 2026
081daae
fix: rust-review + standards findings in generate_crl.rs and validate.rs
Manuthor Aug 23, 2026
43ce3e6
feat(i18n): make CertificateGenerateCrl fully i18n-compliant (en + zh…
Manuthor Aug 23, 2026
e3e3697
fix(test): update test_toml expected string for CrlConfig TOML section
Manuthor Aug 23, 2026
eaf5427
docs(pki): split revocation on dedicated page
Manuthor Aug 23, 2026
9e22500
fix(test_kms_server): update config paths to match test_data feature/…
Manuthor Aug 23, 2026
ebeb5f4
feat: add admin role under split-key ceremony
Manuthor Jun 7, 2026
c198170
fix: threat model fixes
Manuthor Aug 14, 2026
f5d236e
fix(clippy): fix unseparated literal suffixes and add test module allows
Manuthor Aug 14, 2026
9aecbaa
fix(co-ceremony): add target_user to disable endpoint for peer revoca…
Manuthor Aug 17, 2026
5f07ec8
feat(ui): brand theme + configurable split key ID + peer CO revocatio…
Manuthor Aug 17, 2026
16af528
feat(co-ceremony): add create-split-key subcommand to crypto-officer CLI
Manuthor Aug 17, 2026
ea87e3c
fix: ensure the split key ceremony distribute correctly shares among CO
Manuthor Aug 17, 2026
cf44607
fix(e2e): retry on transient 'Failed to fetch' in key creation helpers
Manuthor Aug 17, 2026
068147f
ci: fix errors
Manuthor Aug 17, 2026
738dbac
feat(kmip-1.4): implement CreateSplitKey and JoinSplitKey for KMIP 1.4
Manuthor Aug 17, 2026
b9a751f
fix(wizard): remove dead fields from AuthWizardResult and wire auth_v…
Manuthor Aug 17, 2026
f384111
fix(ui): gate CO revoke UI on is_crypto_officer + sync log-reference.md
Manuthor Aug 17, 2026
c49775c
docs(get-attrs): fix stale comment about SplitKey stored Attributes
Manuthor Aug 17, 2026
f2069b5
ci: fix wasm
Manuthor Aug 17, 2026
4973a89
fix: KMIP SplitKey compliance
Manuthor Aug 18, 2026
c591aa7
fix: stick to UserId
Manuthor Aug 18, 2026
617cf2e
docs: key_ceremony update
Manuthor Aug 18, 2026
6c8b5f1
refactor: simplify dispatch.rs
Manuthor Aug 18, 2026
309e4c3
docs: fix server_cli.md generation to satisfy MD041 (prepend H1 heading)
Manuthor Aug 18, 2026
6f6e07c
fix(db): reuse SQL statements, factorize locate_query.rs functions
Manuthor Aug 18, 2026
bf974c5
fix: remove useless crypto_sensor doc + code
Manuthor Aug 18, 2026
89b6a3e
fix(security): address security review findings on PR #991
Manuthor Aug 19, 2026
6b370ec
fix(permissions): replace stale 'privileged_users' terminology in err…
Manuthor Aug 19, 2026
5bc8c18
docs(ceremony): correct dual-control description to match actual serv…
Manuthor Aug 19, 2026
a23ab19
docs(adr): correct CO role matrix — remove GrantAccess/RevokeAccess f…
Manuthor Aug 19, 2026
a44d0f3
docs(permissions): document PM-2 and PM-3 design intent in enforce_cr…
Manuthor Aug 19, 2026
98b25b2
fix(dispatch): route CO lifecycle ops through enforce_create_permissi…
Manuthor Aug 19, 2026
c78b76e
docs(locate): clarify CO ownership bypass behavior for Locate (PM-6)
Manuthor Aug 19, 2026
487bdd1
fix(access): correct CryptoOfficerConfig doc — CO has no crypto-use b…
Manuthor Aug 19, 2026
f8ff30e
fix(ceremony): elevate split-key share audit logs to ERROR, add sessi…
Manuthor Aug 20, 2026
ecb81d8
fix(ceremony): F-2 + F-3 + F-9 security fixes for CO split-key ceremony
Manuthor Aug 20, 2026
ccd130a
docs(changelog): record F-2/F-3/F-6/F-7/F-8/F-9 security improvements
Manuthor Aug 20, 2026
30e7288
chore: remove internal plan references (F-x, PM-x) from source and docs
Manuthor Aug 20, 2026
79f0ff6
docs(ceremony): correct dual-control wording — assembler can own shar…
Manuthor Aug 20, 2026
04e27e5
fix(ceremony): surface wrapping-key-not-found as 422 so operator rece…
Manuthor Aug 20, 2026
2be8754
fix(ceremony): destroy orphaned source key when CreateSplitKey fails …
Manuthor Aug 20, 2026
896b5e1
fix: on KMS startup, using default_username + CO role fails
Manuthor Aug 21, 2026
8de51cd
docs: log-ref update
Manuthor Aug 21, 2026
5661ea9
fix(ui): bug in minimized left menu where tooltips were invisible + f…
Manuthor Aug 21, 2026
7dff8b1
fix(i18n): still non-conformed strings
Manuthor Aug 21, 2026
ca8eb79
fix: fix AI skill
HatemMn Aug 21, 2026
7ac3fbf
fix: doc fix
HatemMn Aug 21, 2026
d9ff8fa
docs: address docs review comments on PR #991
Manuthor Aug 22, 2026
a6f27f2
fix(ui): address PR #991 UI review comments
Manuthor Aug 22, 2026
49e976b
fix: move hardcoded allowed ops from dispatch
Manuthor Aug 23, 2026
11bcc23
test: c2p still unavailable
Manuthor Aug 23, 2026
871d6b4
feat: support CRL generation
Manuthor Jun 7, 2026
835952f
fix(ui): rebase issue
Manuthor Aug 14, 2026
62f1dd6
fix: rebase
Manuthor Aug 17, 2026
a1abedd
fix: GHSA-rwc8-xwm6-52xc
Manuthor Aug 17, 2026
64c7b39
fix(test): use temp file in sr_crl_10 instead of test_data submodule
Manuthor Aug 17, 2026
0937d49
feat: implement auto CRL refresh and persist CRLs in DB
Manuthor Aug 19, 2026
a435ca1
fix: redis tests
Manuthor Aug 19, 2026
53ecb8a
feat(crl): configurable validity, Cache-Control headers, background r…
Manuthor Aug 20, 2026
d591217
fix: follow RFC 5280 for RemoveFromCRL reason mapping
Manuthor Aug 20, 2026
8db0ebe
test(crl): verify CRL generation when CO role is disabled
Manuthor Aug 20, 2026
d13d8e4
fix(ui): use public CRL endpoint to include certs from all users
Manuthor Aug 20, 2026
c61ca33
fix(crl): remove CO guard — CRL is public information (RFC 5280 §3)
Manuthor Aug 20, 2026
ceb73dc
chore: remove accidentally committed yo.der test file
Manuthor Aug 20, 2026
c67f7a0
fix(test): eliminate TOCTOU race in test server port allocation
Manuthor Aug 20, 2026
4733283
fix(test): bind dynamic port to configured hostname not 127.0.0.1
Manuthor Aug 20, 2026
514bd6d
docs(crl): clarify two-endpoint design in OpenAPI and Rust doc comments
Manuthor Aug 20, 2026
42a82f3
fix: CRLs RFCs compliance review
Manuthor Aug 23, 2026
3075c59
test: comprehensive CRL test suite (unit, functional, security, non-r…
Manuthor Aug 23, 2026
c1d578f
test: CRL completeness with and without Crypto Officer role
Manuthor Aug 23, 2026
478fcf8
test: counting-revoked-certificates tests for CRL with and without CO…
Manuthor Aug 23, 2026
46fa458
fix: MySQL get_max_crl_number panics on NULL when crls table is empty
Manuthor Aug 23, 2026
c6fe5ef
refactor(config): extract CRL lifecycle settings into CrlConfig struct
Manuthor Aug 23, 2026
ad67638
fix: rust-review + standards findings in generate_crl.rs and validate.rs
Manuthor Aug 23, 2026
a0e2178
feat(i18n): make CertificateGenerateCrl fully i18n-compliant (en + zh…
Manuthor Aug 23, 2026
8d76e94
fix(test): update test_toml expected string for CrlConfig TOML section
Manuthor Aug 23, 2026
98cf4de
docs(pki): split revocation on dedicated page
Manuthor Aug 23, 2026
fe06529
fix(test_kms_server): update config paths to match test_data feature/…
Manuthor Aug 23, 2026
b6bd371
feat: implement auto CRL refresh and persist CRLs in DB
Manuthor Aug 19, 2026
a03fa63
feat: support CRL generation
Manuthor Jun 7, 2026
9b8686c
fix(test): use temp file in sr_crl_10 instead of test_data submodule
Manuthor Aug 17, 2026
681f66d
feat: support CRL generation
Manuthor Jun 7, 2026
5acb707
fix: GHSA-rwc8-xwm6-52xc
Manuthor Aug 17, 2026
4d86c59
feat: support CRL generation
Manuthor Jun 7, 2026
cf98e29
fix: GHSA-rwc8-xwm6-52xc
Manuthor Aug 17, 2026
f36d15c
feat: support OPA access control delegation
Manuthor Jun 7, 2026
1ad25c6
fix: resolve WASM/UI and Windows CI failures
Manuthor Aug 18, 2026
7b93cca
test: simplify auth-verifier provisioning, add OPA RBAC vector tests …
Manuthor Aug 18, 2026
5ab35cb
fix(test): inline auth_verifier TOML in unit test (test_data submodul…
Manuthor Aug 18, 2026
50e4099
fix(test): skip login-page matrix tests when PLAYWRIGHT_CERT_DIR is s…
Manuthor Aug 19, 2026
e396040
fix(test): properly mock all auth bootstrap endpoints in matrix tests
Manuthor Aug 19, 2026
49aa971
fix(test): opt-in matrix tests via PLAYWRIGHT_AUTH_MATRIX_TESTS env var
Manuthor Aug 19, 2026
b61a88f
test: add new OPA test scenarios
Manuthor Aug 19, 2026
929c4b7
fix(server_database): execute create_crls table in SQLite init transa…
Manuthor Aug 19, 2026
298ee74
fix: clarify --opa-url requirement
Manuthor Aug 20, 2026
90590ab
fix: allow CO key ceremony when OPA enforcing mode is enabled
Manuthor Aug 20, 2026
57d26ba
fix: toml test
Manuthor Aug 20, 2026
17c6352
fix: tests
Manuthor Aug 20, 2026
fea8d8b
fix(server): use find_active_co in auto-CRL trigger after revocation
Manuthor Aug 21, 2026
64c79c3
docs: log-ref update
Manuthor Aug 22, 2026
f0d0323
test(opa): exhaustive unit tests for all OPA modules + middleware dom…
Manuthor Aug 23, 2026
1efc6e9
chore: rebase
Manuthor Aug 23, 2026
8cb45cc
fix(certify): CSR-based Certify with TTL — regression tests + CHANGELOG
Manuthor Aug 23, 2026
24a853f
fix(server): align crypto officer ceremony handling
Aug 27, 2026
958d1c9
Merge PR base to resolve conflicts
Aug 27, 2026
1d4a56d
fix(docs): update log reference index
Aug 27, 2026
d82cebb
feat: add admin role under split-key ceremony
Manuthor Jun 7, 2026
b62c3bb
fix: rebase
Manuthor Aug 29, 2026
586f651
test: fix rebase
Manuthor Aug 29, 2026
f475e04
merge: resolve conflicts from fix/put_kms_public_url_in_allowed_cors_…
Aug 31, 2026
01de50e
merge: resolve conflicts with develop
Sep 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ agents when editing matching file types (`applyTo` in each file's YAML frontmatt
| `rust-database.instructions.md` | `crate/server_database/**/*.rs` |
| `database-tables.instructions.md` | `crate/server_database/src/stores/sql/*.sql` |
| `ui-routes.instructions.md` | `ui/src/App.tsx`, `ui/src/menuItems.tsx`, `ui/src/actions/**/*.tsx`, `ui/src/pages/**/*.tsx` |
| `routes.instructions.md` | `crate/server/src/routes/**/*.rs`, `crate/server/documentation/openapi.yaml` |
| `routes.instructions.md` | `crate/server/src/routes/**/*.rs` |
| `kmip-operations.instructions.md` | `crate/kmip/src/**/*.rs`, `crate/server/src/core/operations/**/*.rs` |
| `cli-ui-sync.instructions.md` | `crate/clients/clap/**/*.rs`, `crate/clients/ckms/**/*.rs`, `ui/src/actions/**/*.ts`, `ui/src/actions/**/*.tsx` |
| `wasm.instructions.md` | `crate/clients/wasm/**/*.rs` |
Expand Down
2 changes: 1 addition & 1 deletion .github/instructions/routes.instructions.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: 'REST Routes & OpenAPI'
description: 'Keep handlers, route registration, middleware, and the OpenAPI spec in sync when adding a REST endpoint'
applyTo: 'crate/server/src/routes/**/*.rs, crate/server/documentation/openapi.yaml'
applyTo: 'crate/server/src/routes/**/*.rs'
---

# REST endpoint sync
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/test_all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:
- secret_cosmian_kms
- spire
- kmip-go
- opa_rbac
- ocsp
- pki-revocation
features: [fips, non-fips]
Expand Down Expand Up @@ -84,6 +85,8 @@ jobs:
# spire relies on the Vault API which is non-fips only
- type: spire
features: fips
- type: opa_rbac
features: fips
include:
# Docker services required per test type (types without an entry need no containers)
- type: psql
Expand Down
3 changes: 2 additions & 1 deletion .mise/scripts/docs/generate_docs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ if [[ $# -gt 0 && "$1" != --* ]]; then
fi

case "$TASK" in
all) ;;
all)
;;
server-docs)
SKIP_CKMS=true
SKIP_KMIP=true
Expand Down
Empty file modified .mise/scripts/docs/update_log_index.py
100644 → 100755
Empty file.
23 changes: 21 additions & 2 deletions .mise/scripts/nix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ usage() {
pykmip Run all PyKMIP operations + Synology DSM simulation (non-FIPS)
openssh Run OpenSSH PKCS#11 integration tests (non-FIPS)
luks Run LUKS disk-encryption PKCS#11 integration tests
opa_rbac Run OPA RBAC end-to-end tests (requires Docker for OPA)
otel_export Run OTEL export tests (requires Docker)
Alias: 'otel' (backward-compatible)
iris Run IRIS ↔ KMS mTLS integration tests (requires Docker + IRIS image)
Expand Down Expand Up @@ -491,6 +492,9 @@ test_command() {
jose)
SCRIPT="$REPO_ROOT/.mise/scripts/test/test_jose.sh"
;;
opa_rbac)
SCRIPT="$REPO_ROOT/.mise/scripts/test/test_opa_rbac.sh"
;;
iris)
SCRIPT="$REPO_ROOT/.mise/scripts/test/test_iris.sh"
;;
Expand Down Expand Up @@ -587,7 +591,7 @@ test_command() {
;;
*)
echo "Error: Unknown test type '$TEST_TYPE'" >&2
echo "Valid types: aws_xks, sqlite, mysql, percona, mariadb, psql, redis, google_cse, gcp_cmek, pykmip, openssh, luks, otel_export, iris, jose, hsm [softhsm2|utimaco|proteccio|all], ui, secret_vault, secret_aws, secret_azure, secret_cosmian_kms" >&2
echo "Valid types: aws_xks, sqlite, mysql, percona, mariadb, psql, redis, google_cse, gcp_cmek, pykmip, openssh, luks, otel_export, iris, opa_rbac, jose, hsm [softhsm2|utimaco|proteccio|all], ui, secret_vault, secret_aws, secret_azure, secret_cosmian_kms" >&2
usage
;;
esac
Expand Down Expand Up @@ -632,7 +636,7 @@ test_command() {
fi
# Ensure curl is present for test types that use HTTP readiness probes
# or curl-based integration helpers inside the nix-shell.
if [ "$TEST_TYPE" = "azure_ekm" ] || [ "$TEST_TYPE" = "ui" ] || [ "$TEST_TYPE" = "all" ] || [ "$TEST_TYPE" = "gcp_cmek" ] || [ "$TEST_TYPE" = "openssh" ] || [ "$TEST_TYPE" = "luks" ] || [ "$TEST_TYPE" = "jose" ]; then
if [ "$TEST_TYPE" = "azure_ekm" ] || [ "$TEST_TYPE" = "ui" ] || [ "$TEST_TYPE" = "all" ] || [ "$TEST_TYPE" = "gcp_cmek" ] || [ "$TEST_TYPE" = "openssh" ] || [ "$TEST_TYPE" = "luks" ] || [ "$TEST_TYPE" = "jose" ] || [ "$TEST_TYPE" = "opa_rbac" ]; then
export WITH_CURL=1
fi

Expand Down Expand Up @@ -1307,6 +1311,21 @@ run_in_nix_shell() {

CMD="export VARIANT='$VARIANT' LINK='$LINK' RELEASE_FLAG='$RELEASE_FLAG' BUILD_PROFILE='$BUILD_PROFILE'; bash '$SCRIPT' --variant '$VARIANT' --link '$LINK'"

# opa_rbac runs inside a pure nix-shell but needs the system docker binary to
# start the OPA container and system curl (for plain HTTP OPA queries). Resolve
# docker's parent directory here (before entering the pure shell that strips
# system PATH), then APPEND it AFTER the Nix PATH. Appending keeps all Nix
# binaries (cargo, rustc, gcc, …) at higher priority while still making docker
# and curl available as fallbacks — avoiding the shadow problem where a prepended
# /usr/bin/cargo (system Rust 1.85) would override the Nix cargo (1.93.1).
if [ "${TEST_TYPE:-}" = "opa_rbac" ]; then
DOCKER_BIN="$(command -v docker 2>/dev/null || true)"
if [ -n "$DOCKER_BIN" ]; then
DOCKER_DIR="$(dirname "$DOCKER_BIN")"
CMD="export PATH=\"\${PATH}:${DOCKER_DIR}\"; ${CMD}"
fi
fi

ARGSTR_VARIANT=""
if [ "$SHELL_PATH" = "$REPO_ROOT/shell.nix" ]; then
ARGSTR_VARIANT="--argstr variant $VARIANT"
Expand Down
Loading
Loading