Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
316 commits
Select commit Hold shift + click to select a range
448e606
Update simulator configs
kvinwang Dec 24, 2025
5f05fbb
Fix unit tests
kvinwang Dec 24, 2025
fb232ee
Add nitro TPM support (step 1)
kvinwang Dec 24, 2025
a153bc0
Add nsm-attest
kvinwang Dec 25, 2025
c2849c4
attestation: Use enum rather than option
kvinwang Dec 25, 2025
440d592
Add nsm-qvl
kvinwang Dec 26, 2025
349595a
Add nitro enclave attestation
kvinwang Dec 26, 2025
0fc0fde
Put crates in workspace
kvinwang Dec 26, 2025
7e3fb1a
Fix REUSE warn
kvinwang Dec 26, 2025
e7d5a94
nsm-qvl: More restriction verification
kvinwang Dec 26, 2025
1e5159d
nsm-qvl: Add optional crl check
kvinwang Dec 26, 2025
013be17
Align workspace deps
kvinwang Dec 26, 2025
ffb41d9
Add attestation doc for gpc and nitro
kvinwang Jan 4, 2026
cec804b
Update comment
kvinwang Jan 14, 2026
db8356a
Update dcap-qvl to 0.3.8
kvinwang Jan 14, 2026
23ccf00
Update docs for agent.Attest
kvinwang Jan 15, 2026
841ff6e
Merge branch 'nitro-dev' into nitro
kvinwang Jan 15, 2026
709339c
Fix unit tests
kvinwang Jan 15, 2026
9df8aa1
Merge branch 'refactor-for-cloud-providers' into nitro
kvinwang Jan 15, 2026
0605259
dstack-util: Add --root-ca to get-key
kvinwang Jan 15, 2026
68558a9
kms: Fix the quote display in onboard page
kvinwang Jan 15, 2026
425ae9c
Switch LICENSE to BUSL-1.1
kvinwang Jan 19, 2026
8fae522
Replace some links
kvinwang Jan 19, 2026
4c9d2a8
Remove sdk from this repo
kvinwang Jan 19, 2026
84163fa
Fix more links
kvinwang Jan 19, 2026
4854ccc
Remove foundry submodules
kvinwang Jan 19, 2026
271d998
Fix vm_config reading
kvinwang Jan 20, 2026
a30e298
Update LICENSE
kvinwang Jan 20, 2026
0f47221
Remove useless mkdir -p /sys/kernel/config
kvinwang Jan 20, 2026
00999f0
vmm: default to 9p shared
kvinwang Jan 20, 2026
2eb5264
Set custom CI runners
kvinwang Jan 20, 2026
01e2684
Update dcap-qvl to 0.3.10
kvinwang Jan 21, 2026
fbbc049
Merge remote-tracking branch 'ds/master' into pha-master
kvinwang Jan 21, 2026
6ed539c
Add back simulator
kvinwang Jan 21, 2026
90dcdd0
Fix unit test
kvinwang Jan 21, 2026
590b8f3
Update console_v1.html
kvinwang Jan 21, 2026
6e211f6
Merge branch 'master' into cloud
kvinwang Jan 22, 2026
e95a1e6
Merge remote-tracking branch 'ds/master'
kvinwang Jan 23, 2026
d317906
Merge remote-tracking branch 'origin/master'
kvinwang Jan 23, 2026
7d02e11
Merge remote-tracking branch 'ds/master'
kvinwang Jan 23, 2026
702740d
Merge remote-tracking branch 'ds/master'
kvinwang Jan 24, 2026
8cdae66
Merge remote-tracking branch 'ds/master'
kvinwang Jan 26, 2026
460ee17
Add Apache-2.0 license text for REUSE compliance (#6)
kvinwang Jan 26, 2026
969b5dd
Merge remote-tracking branch 'ds/master'
kvinwang Jan 27, 2026
5b3fa9a
Merge remote-tracking branch 'origin/master'
kvinwang Jan 27, 2026
cd158f1
Merge remote-tracking branch 'ds/master'
kvinwang Jan 27, 2026
f4f7800
docs: separate cloud and self-hosted documentation
h4x3rotab Jan 27, 2026
be54dd7
Merge pull request #7 from Phala-Network/docs/separate-cloud-and-self…
h4x3rotab Jan 27, 2026
e3fa971
Merge remote-tracking branch 'ds/master'
kvinwang Jan 29, 2026
a046ae9
Merge remote-tracking branch 'origin/master'
kvinwang Jan 29, 2026
17c23e2
Merge remote-tracking branch 'ds/master'
kvinwang Feb 5, 2026
135346b
Merge remote-tracking branch 'ds/master'
kvinwang Feb 8, 2026
489136f
Merge remote-tracking branch 'ds/master'
kvinwang Feb 10, 2026
7e0260e
Fix dir in kms Dockerfile
kvinwang Feb 11, 2026
fc6a43f
Merge remote-tracking branch 'ds/master'
kvinwang Feb 12, 2026
ecbc9e0
fix(kms): auto-append /prpc to onboard source_url if missing
kvinwang Feb 13, 2026
6054b84
Merge remote-tracking branch 'ds/master'
kvinwang Feb 13, 2026
76a1993
Merge remote-tracking branch 'ds/master'
kvinwang Feb 13, 2026
14963a2
Merge upstream/master (nonce race fix)
kvinwang Feb 13, 2026
b3e2026
Merge remote-tracking branch 'upstream/master'
kvinwang Apr 7, 2026
6bdf7bc
fix: remove duplicate --key-provider arg from merge
kvinwang Apr 7, 2026
d52a09e
fix: clone into explicit 'dstack' dir, fix ruff formatting
kvinwang Apr 7, 2026
6d96560
fix: adapt PlatformEvidence for GcpTdx/NitroEnclave data and fix to_s…
kvinwang Apr 8, 2026
5d93eb2
Merge remote-tracking branch 'upstream/master'
kvinwang Apr 9, 2026
2083e43
fix: adapt nitro_verify test to upstream V1 attestation refactor
kvinwang Apr 10, 2026
603c6ee
fix: implement GcpTdx and NitroEnclave support in V1 attestation (#10)
kvinwang Apr 13, 2026
b051018
Merge remote-tracking branch 'upstream/master'
kvinwang Apr 30, 2026
6c27e4f
feat(ci): add trusted publisher release workflows for JS and Python SDKs
Leechael May 19, 2026
151d384
chore(sdk/js): bump to 0.5.8-beta.0 for release workflow testing
Leechael May 19, 2026
4520abf
chore(sdk/python): bump to 0.5.4b0 for release workflow testing
Leechael May 19, 2026
1b1d070
build(deps-dev): bump tmp from 0.2.5 to 0.2.7 in /vmm/ui
dependabot[bot] May 28, 2026
296be78
feat(kms/auth-eth): migrate from Hardhat to Foundry
h4x3rotab May 18, 2026
d671cce
Merge pull request #252 from Dstack-TEE/foundry
h4x3rotab May 31, 2026
8d6b91a
feat(kms/auth-eth): add Slither + Halmos formal verification
h4x3rotab May 19, 2026
80c4368
docs(kms/auth-eth): add formal specification
h4x3rotab May 19, 2026
2af9ac2
Merge pull request #689 from Dstack-TEE/feat/auth-eth-formal-verifica…
h4x3rotab May 31, 2026
2f96ed2
merge: bring dstack-cloud (GCP TDX + AWS Nitro attestation) into main…
kvinwang May 31, 2026
1929bf3
license: revert BUSL-1.1 back to Apache-2.0
kvinwang May 31, 2026
b5602c3
fix(sdk): address code review feedback for release workflows
Leechael May 31, 2026
7162285
review: point KMS app build + README at Dstack-TEE/dstack; fix prek
kvinwang Jun 1, 2026
ec18d6a
review: harden attestation verification (nsm freshness, tpm async + P…
kvinwang Jun 1, 2026
5c37b25
Merge pull request #686 from Dstack-TEE/feat/sdk-release-workflows
Leechael Jun 1, 2026
fe971cd
feat(sdk/js): make getKey path argument optional
Leechael May 19, 2026
45a38fc
feat(sdk/js): surface cloud_vendor and cloud_product on InfoResponse
Leechael May 19, 2026
1704954
feat(sdk/js): add notBefore/notAfter/withAppInfo TLS key options
Leechael May 19, 2026
8de088e
refactor(sdk/js): use @noble/hashes instead of node crypto
Leechael May 19, 2026
9cb8640
chore(sdk/js): drop crypto-browserify dependency
Leechael May 19, 2026
3711e28
chore(sdk/js): regenerate lockfile to fix bn.js vulnerability
Leechael May 19, 2026
ef7a9f5
chore(sdk/js)!: make solana/viem/curves peers truly opt-in
Leechael May 19, 2026
50958e7
chore(sdk/js): bump to 0.5.8-beta.1 for API parity beta
Leechael May 19, 2026
033c580
chore(sdk/js): restrict published package to dist/ only
Leechael May 20, 2026
5a36489
docs(sdk/js): rewrite README for 0.5.8-beta.1 API surface
Leechael May 20, 2026
d37680f
chore(sdk/python): read __version__ from package metadata
Leechael May 20, 2026
13ca08c
feat(sdk/python): surface cloud_vendor and cloud_product on InfoResponse
Leechael May 20, 2026
a3b4e4c
feat(sdk/python): add not_before/not_after/with_app_info TLS key options
Leechael May 20, 2026
e1f5532
feat(sdk/python)!: real ECDSA recovery for verify_env_encrypt_public_key
Leechael May 20, 2026
c8a9dd1
chore(sdk/python): trim ethereum extras from web3 to eth-account
Leechael May 20, 2026
83cb6eb
docs(sdk/python): rewrite README for 0.5.4b1 API surface
Leechael May 20, 2026
84006de
chore(sdk/python): bump to 0.5.4b1 for API parity beta
Leechael May 20, 2026
148d9c0
docs(sdk/python): fix README review feedback from Copilot
Leechael May 31, 2026
721ca95
refactor(sdk/js): unify browser and node sources
Leechael May 20, 2026
f5885eb
build(sdk/js): switch to tsup for dual CJS+ESM publish, drop sourcemaps
Leechael May 20, 2026
85afdc1
chore(sdk/js): bump to 0.5.8-beta.2 for slim dual-format build
Leechael May 20, 2026
8cd9f32
fix(sdk/js): handle invalid hex in appId and remove stale browser-com…
Leechael May 31, 2026
240326e
style(sdk/python): apply ruff formatting
Leechael Jun 2, 2026
fa8104d
fix(sdk/js): add SPDX header to tsup.config, fix EOF newlines, remove…
Leechael Jun 2, 2026
67fad0c
Merge pull request #690 from Dstack-TEE/feat/sdk-js-api-parity
Leechael Jun 2, 2026
cb8a8e1
Merge pull request #695 from Dstack-TEE/feat/sdk-python-api-parity
Leechael Jun 2, 2026
9016b3d
chore(sdk/js): bump version to 0.5.8
Leechael Jun 2, 2026
4312268
chore(sdk/python): bump version to 0.5.4
Leechael Jun 2, 2026
bed5c61
fix(ci): upgrade npm for trusted publishers OIDC support
Leechael Jun 2, 2026
e351c16
chore(ci): upgrade actions to Node.js 24 compatible versions
Leechael Jun 2, 2026
8770b37
fix(ci): fix trailing whitespace and missing newline in spdx-check.yml
Leechael Jun 2, 2026
0e7c4a8
Merge pull request #704 from Dstack-TEE/chore/sdk-version-bump
Leechael Jun 2, 2026
2f87b68
review: serialize runtime event emission; document RTMR3/TCB verifica…
kvinwang Jun 3, 2026
dd8cd53
Potential fix for pull request finding
kvinwang Jun 4, 2026
c5046ab
Merge pull request #706 from Dstack-TEE/harden/emit-event-serialize
kvinwang Jun 4, 2026
2e47b66
fix: vendor dstack-cloud CLI into scripts/bin; fix prek checks
kvinwang Jun 4, 2026
48da24c
review: use verified nitro PCRs and reject debug-mode enclaves
kvinwang Jun 4, 2026
bde0d03
merge: resolve spdx-check.yml conflict (keep CI_RUNNER override + che…
kvinwang Jun 4, 2026
8f86e43
Merge pull request #701 from Dstack-TEE/merge/cloud-into-mainline
kvinwang Jun 4, 2026
cff9f65
build(deps-dev): bump vitest from 1.6.1 to 4.1.0 in /kms/auth-mock
dependabot[bot] Jun 4, 2026
1b1b505
dstack-cloud: honor gcp_config.private_ip (bind static internal IP)
kvinwang Jun 4, 2026
b086a7c
Merge pull request #709 from kvinwang/fix/dstack-cloud-private-ip
kvinwang Jun 4, 2026
8a3f150
build(deps): bump hono from 4.12.18 to 4.12.21 in /kms/auth-mock
dependabot[bot] Jun 4, 2026
e11c4b0
build(deps): bump hono from 4.12.18 to 4.12.21 in /kms/auth-simple
dependabot[bot] Jun 4, 2026
400622e
build(deps): bump hono from 4.12.18 to 4.12.21 in /kms/auth-eth-bun
dependabot[bot] Jun 4, 2026
c8ed2a2
dstack-util: allow non-KMS deployments to pin an explicit app_id
kvinwang Jun 5, 2026
7be76af
Potential fix for pull request finding
kvinwang Jun 5, 2026
6f492d8
docs: app_id is the deploy-time value (defaults to compose hash), hon…
kvinwang Jun 5, 2026
952595a
Merge pull request #714 from kvinwang/feat/app-id-without-kms
kvinwang Jun 5, 2026
5321099
raise host-shared file size limits to 50MB
kvinwang Jun 5, 2026
e6c8154
stream vhd shared disk to a file-backed image
kvinwang Jun 5, 2026
115fbd9
Merge pull request #715 from Dstack-TEE/raise-host-shared-size-limits
kvinwang Jun 5, 2026
b25fae3
add sca: self-contained dstack app builder
kvinwang Jun 5, 2026
1ca99f9
sca: pack a rootfs/ tree instead of listing files; use JSON config
kvinwang Jun 5, 2026
602ee1e
sca: fix codex review findings (determinism + safety)
kvinwang Jun 5, 2026
bbc7797
sca: make compose options CLI-configurable; use key_provider enum
kvinwang Jun 5, 2026
4ef1511
sca: add tool README and examples (hello-c, heartbeat)
kvinwang Jun 5, 2026
2adea05
sca: harden compose validation (copilot review)
kvinwang Jun 6, 2026
20c443c
sca: satisfy CI (reuse SPDX headers + ruff docstrings/format)
kvinwang Jun 6, 2026
a4213c8
sca: enforce regular/dir/symlink-only rootfs (copilot review)
kvinwang Jun 6, 2026
7a541ad
Merge pull request #716 from Dstack-TEE/sca-tool
kvinwang Jun 6, 2026
b2e4eab
dstack-cloud: size the shared FAT disk to fit app-compose.json
kvinwang Jun 6, 2026
f771fee
dstack-cloud: support deploying a verbatim app-compose.json
kvinwang Jun 6, 2026
762164a
docs: restore Dstack-TEE GitHub URLs
kvinwang Jun 6, 2026
7657298
fix(dstack-cloud): point pull at Dstack-TEE/meta-dstack with dstack-*…
kvinwang Jun 6, 2026
1274609
Merge pull request #718 from Dstack-TEE/docs/restore-dstack-tee-urls
kvinwang Jun 6, 2026
880f4ec
dstack-cloud: allow DSTACK_CLOUD_CONFIG to override the global config…
kvinwang Jun 7, 2026
2656560
Merge pull request #719 from kvinwang/feat/dstack-cloud-config-env
kvinwang Jun 7, 2026
1a4942e
Merge pull request #717 from kvinwang/chore/dstack-cloud-large-app-co…
kvinwang Jun 7, 2026
99c7312
build(deps-dev): bump vitest from 1.6.1 to 3.2.6 in /kms/auth-eth-bun
dependabot[bot] Jun 8, 2026
3718829
dstack-cloud: add no_public_ip (--no-address) for network-isolated VMs
kvinwang Jun 10, 2026
7bf2b00
Merge pull request #721 from kvinwang/feat/dstack-cloud-no-public-ip
kvinwang Jun 10, 2026
703ac39
fix(verifier): make VerificationRequest fields optional (#722)
kvinwang Jun 10, 2026
245201b
ci(verifier): also tag and push :latest on release (#723)
kvinwang Jun 10, 2026
e68f843
build(deps-dev): bump vitest from 1.6.1 to 3.2.6 in /kms/auth-simple
dependabot[bot] Jun 10, 2026
93327f6
Merge pull request #724 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
kvinwang Jun 10, 2026
5b2c7bc
Merge pull request #720 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
kvinwang Jun 10, 2026
44698a2
Merge pull request #712 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
kvinwang Jun 10, 2026
852b629
Merge pull request #711 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
kvinwang Jun 10, 2026
dbaaeb2
Merge pull request #710 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
kvinwang Jun 10, 2026
579e8fc
Merge pull request #708 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
kvinwang Jun 10, 2026
ea78cec
Merge pull request #698 from Dstack-TEE/dependabot/npm_and_yarn/vmm/u…
kvinwang Jun 10, 2026
f4462bc
docs: de-cloud README, restore dstack open-framework framing (#725)
kvinwang Jun 10, 2026
f1ba0a2
feat(dstack-util): mix gcp vTPM AK pubkey into instance_id
kvinwang Jun 11, 2026
56151e3
Merge pull request #726 from Dstack-TEE/feat/gcp-instance-id-binding
kvinwang Jun 11, 2026
9813355
feat(verifier): report dev/prod OS image and deployment identity in r…
h4x3rotab Jun 11, 2026
9c50e19
Merge pull request #727 from Dstack-TEE/feat/os-image-dev-prod-indicator
h4x3rotab Jun 12, 2026
77aa2c2
feat: add amd sev-snp attestation support
May 26, 2026
87c78d7
fix: harden sev-snp report data binding
May 26, 2026
0701e63
fix: address sev-snp draft review findings
May 26, 2026
ce4aa6d
feat: add sev-snp verifier core
May 26, 2026
c0b442b
fix: normalize sev-snp cert collateral
May 26, 2026
1adfa2b
fix: add fail-closed sev-snp measurement binding
May 26, 2026
0e9f586
fix: recompute sev-snp launch measurement
May 26, 2026
5755441
fix: add sev-snp boot info helper
May 26, 2026
4b31c97
test: add sev-snp measurement golden vector
May 26, 2026
7dda8ff
fix: add sev-snp auth policy helper
May 26, 2026
6c2d817
fix: bind sev-snp app id into measurement
May 29, 2026
be054d8
fix: connect sev-snp verified attestation to boot info
May 29, 2026
ace8753
fix: parse sev-snp measurement inputs from vm config
May 29, 2026
2b73095
fix: route kms snp attestation through dry-run auth
May 29, 2026
922afd7
fix: report sev-snp onboarding attestation info
May 29, 2026
5b36b4c
fix: use sev-snp boot info for kms self auth
May 29, 2026
a8f0e88
fix: make auth-simple tcb policy explicit
May 29, 2026
058fd29
fix: block sev-snp temp ca release
Jun 1, 2026
73d857b
fix: derive sev-snp tcb policy from report
Jun 1, 2026
52d3fac
chore: satisfy sev-snp workspace clippy
Jun 1, 2026
0077ec9
docs: add sev-snp review readiness note
Jun 2, 2026
3792eb1
feat: enable guarded sev-snp key release
Jun 2, 2026
027077b
fix: bind sev-snp vm launch inputs
Jun 3, 2026
cfe476b
fix: complete sev-snp key release smoke path
Jun 3, 2026
40396b7
fix: satisfy ci lint checks
Jun 3, 2026
5cb4566
fix: satisfy prek shellcheck
Jun 3, 2026
409c4c5
test: add sev-snp e2e smoke script
Jun 3, 2026
2aa70e8
test: harden sev-snp smoke script
Jun 4, 2026
fc22673
docs: document sev-snp smoke host matrix
Jun 4, 2026
0303256
docs: clarify sev-snp smoke image requirements
Jun 4, 2026
1850e37
docs: clarify sev-snp fresh-box smoke
Jun 4, 2026
2e88b58
docs: record sev-snp smoke gate boundary
Jun 4, 2026
ac5fbf5
fix: complete sev-snp smoke proxy path
Jun 5, 2026
1660d98
docs: clarify sev-snp proxy smoke state
Jun 5, 2026
e00bdd4
Remove fallback DNS override in prepare script
kvinwang Jun 15, 2026
91267dc
Remove AMD KDS proxy from CVM boot path
kvinwang Jun 15, 2026
57d0f02
Keep SEV-SNP attestation variants last
kvinwang Jun 15, 2026
93d07ea
Use imported AMD SNP report type
kvinwang Jun 15, 2026
6361168
Split SEV-SNP attestation crates
kvinwang Jun 15, 2026
8bbade4
Bind SNP app config via HOST_DATA
kvinwang Jun 15, 2026
3f71e7d
Select SEV-SNP KDS product from report
kvinwang Jun 16, 2026
c5d4910
Use self-contained SNP measurement input
kvinwang Jun 16, 2026
48fa211
Detect SEV-SNP C-bit position from CPUID
kvinwang Jun 16, 2026
02865d0
Detect SEV-SNP launch params from QEMU
kvinwang Jun 16, 2026
74dbd0c
vmm: select SEV firmware (bios-sev) for AMD SEV-SNP guests
kvinwang Jun 17, 2026
b3b8390
vmm: auto-detect host TEE platform from /proc/cpuinfo
kvinwang Jun 17, 2026
59a33fd
kms: make SEV-SNP os_image_hash independent of per-deployment params
kvinwang Jun 17, 2026
1d907c4
vmm/kms: shared SevOsImageMeasurement + sev-os-image-hash tool
kvinwang Jun 17, 2026
9830dce
dstack-types: return [u8; 32] from SevOsImageMeasurement::os_image_hash
kvinwang Jun 17, 2026
4b412d3
fix rust-checks CI: drop expect_used, satisfy clippy gates
kvinwang Jun 17, 2026
9d808d7
kms: fix SNP tests for image-invariant os_image_hash
kvinwang Jun 17, 2026
2553ab9
dstack-types: single source of truth for host-shared dir & mr_config
kvinwang Jun 18, 2026
8413966
guest: read SEV mr_config from the real host-shared copy dir
kvinwang Jun 18, 2026
e0f1fe4
vmm: use launch-measurement os_image_hash for SEV-SNP
kvinwang Jun 18, 2026
b085a52
dstack-util: report real mr_system/mr_aggregated for SEV in show-mrs
kvinwang Jun 18, 2026
3642d08
kms: drop SNP key-release self-authorization config gate
kvinwang Jun 18, 2026
ae5f561
dstack-attest: offline SEV-SNP attestation verification test
kvinwang Jun 18, 2026
2e3aca5
dstack-mr: add shared AMD SEV-SNP launch-measurement module
kvinwang Jun 18, 2026
81379af
kms: source SEV-SNP measurement from dstack-mr::sev
kvinwang Jun 18, 2026
678bb8a
verifier: verify AMD SEV-SNP os_image_hash
kvinwang Jun 18, 2026
59b7220
guest, dstack-util: platform-adaptive quote (incl. AMD SEV-SNP)
kvinwang Jun 18, 2026
b2dc95a
dstack-attest: offline end-to-end SEV-SNP os_image_hash test
kvinwang Jun 18, 2026
d80daeb
reuse: license SEV-SNP test fixtures (CC0-1.0)
kvinwang Jun 18, 2026
719370a
test: AMD SEV-SNP forged-quote / tampered-input coverage
kvinwang Jun 18, 2026
776f2ab
dstack-mr: own SEV os_image_hash CLI; vmm reads digest.sev.txt
kvinwang Jun 18, 2026
a9f4b36
vmm: reuse dstack-mr OVMF measurement for sev_snp_measurement
kvinwang Jun 18, 2026
52f277f
vmm: drop TeePlatform::Auto, model auto as Option<TeePlatform>
kvinwang Jun 18, 2026
fe7972c
docs(snp): reconcile review-readiness doc with current implementation
kvinwang Jun 20, 2026
d13546f
refactor(attest): make app info source explicit
kvinwang Jun 22, 2026
bc37540
refactor(attest): simplify app info source flow
kvinwang Jun 22, 2026
c736247
refactor(attest): derive app info directly from platform
kvinwang Jun 22, 2026
58210db
fix(vmm): share effective vcpu count
kvinwang Jun 22, 2026
485cbac
refactor(kms): leave snp tcb policy to auth api
kvinwang Jun 22, 2026
f1e7633
refactor(kms): make snp release gate a bool
kvinwang Jun 22, 2026
ec6a5d2
refactor(snp): drop app identity from measurement input
kvinwang Jun 22, 2026
70b6cd1
refactor(snp): derive rootfs from measured cmdline
kvinwang Jun 22, 2026
f1f3a89
refactor(snp): drop legacy measurement document parser
kvinwang Jun 22, 2026
f70bddc
refactor(snp): split ovmf parsing helpers
kvinwang Jun 22, 2026
ab89844
refactor(snp): parse ovmf metadata with binrw
kvinwang Jun 22, 2026
f189110
test(snp): cover ovmf parser golden vector
kvinwang Jun 22, 2026
439e3d5
test(snp): pin KMS provider id in smoke
kvinwang Jun 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 9 additions & 5 deletions .github/workflows/docker-build-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
gateway:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
Expand Down Expand Up @@ -62,7 +62,9 @@ jobs:
kms:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
submodules: recursive

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
Expand Down Expand Up @@ -103,16 +105,18 @@ jobs:
build/shared/verify-pinned-packages.sh kms-builder-check:latest \
kms/dstack-app/builder/shared/builder-pinned-packages.txt

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1

- name: Build KMS contracts
run: |
cd kms/auth-eth
npm ci
npx hardhat compile
forge build

verifier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
Expand Down
56 changes: 56 additions & 0 deletions .github/workflows/foundry-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# SPDX-FileCopyrightText: © 2025 Phala Network <dstack@phala.network>
#
# SPDX-License-Identifier: Apache-2.0

name: KMS Auth-ETH Foundry Tests

on:
push:
paths:
- 'kms/auth-eth/**'
- '.github/workflows/foundry-test.yml'
pull_request:
paths:
- 'kms/auth-eth/**'
- '.github/workflows/foundry-test.yml'
workflow_dispatch:

permissions:
contents: read

env:
FOUNDRY_PROFILE: ci

jobs:
check:
name: Foundry project
runs-on: ubuntu-latest
defaults:
run:
working-directory: kms/auth-eth
steps:
- uses: actions/checkout@v5
with:
submodules: recursive

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1

- name: Show Forge version
run: |
forge --version

- name: Run Forge fmt
run: |
forge fmt --check
id: fmt

- name: Run Forge build
run: |
forge build --sizes
id: build

- name: Run Forge tests
run: |
forge test --ffi -vvv
id: test
4 changes: 2 additions & 2 deletions .github/workflows/gateway-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Parse version from tag
run: |
Expand Down Expand Up @@ -68,7 +68,7 @@ jobs:
push-to-registry: true

- name: GitHub Release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
name: "Gateway Release v${{ env.VERSION }}"
body: |
Expand Down
119 changes: 119 additions & 0 deletions .github/workflows/js-sdk-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# SPDX-FileCopyrightText: © 2025 Phala Network <dstack@phala.network>
#
# SPDX-License-Identifier: Apache-2.0

name: Publish JS SDK to npm
on:
push:
tags: ['js-sdk-v*']
workflow_dispatch:
inputs:
npm_tag:
description: 'npm dist-tag (latest, beta, canary)'
required: true
default: 'latest'
type: choice
options:
- latest
- beta
- canary

permissions:
id-token: write
contents: write

jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- uses: actions/setup-node@v5
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'

- name: Upgrade npm for trusted publishers support
run: |
npm install -g npm@latest
echo "npm: $(npm --version)"

- name: Verify OIDC token availability
run: |
if [ -n "${ACTIONS_ID_TOKEN_REQUEST_URL}" ] && [ -n "${ACTIONS_ID_TOKEN_REQUEST_TOKEN}" ]; then
echo "OIDC token available"
else
echo "OIDC token NOT available"
echo "Check workflow permissions include 'id-token: write'"
exit 1
fi

- name: Verify repository configuration
working-directory: sdk/js
run: |
echo "Checking repository consistency..."
GIT_REPO=$(git remote get-url origin | sed 's/.*github.com[/:]//; s/.git$//')
PKG_REPO=$(node -e "console.log(require('./package.json').repository?.url || '')" | sed 's|https://github.com/||; s|git+||; s|.git$||')
echo "Git remote: $GIT_REPO"
echo "package.json: $PKG_REPO"
if [ "$GIT_REPO" != "$PKG_REPO" ]; then
echo "Repository mismatch!"
echo "This will cause 422 error during publish"
exit 1
fi
echo "Repositories match"

- name: Install dependencies
working-directory: sdk/js
run: npm install

- name: Build
working-directory: sdk/js
run: npm run build

- name: Determine version and npm dist-tag
id: tag
working-directory: sdk/js
run: |
PKG_VERSION=$(node -e "console.log(require('./package.json').version)")
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
VERSION="$PKG_VERSION"
echo "tag=${{ github.event.inputs.npm_tag }}" >> "$GITHUB_OUTPUT"
else
TAG_VERSION="${GITHUB_REF_NAME#js-sdk-v}"
if [ "$TAG_VERSION" != "$PKG_VERSION" ]; then
echo "::error::tag version ($TAG_VERSION) does not match package.json version ($PKG_VERSION)"
exit 1
fi
VERSION="$TAG_VERSION"
# auto-detect from git tag: js-sdk-v0.5.8-beta.1 -> beta
if echo "$VERSION" | grep -qiE '(beta|alpha|rc|preview)'; then
echo "tag=beta" >> "$GITHUB_OUTPUT"
else
echo "tag=latest" >> "$GITHUB_OUTPUT"
fi
fi
echo "version=$VERSION" >> "$GITHUB_OUTPUT"

- name: Publish to npm
working-directory: sdk/js
run: |
NPM_TAG="${{ steps.tag.outputs.tag }}"
echo "Publishing with dist-tag: $NPM_TAG"
npm publish --access public --provenance --tag "$NPM_TAG"

- name: GitHub Release
if: github.event_name == 'push'
uses: softprops/action-gh-release@v2
with:
name: "JS SDK v${{ steps.tag.outputs.version }}"
body: |
## npm Package

**Package**: `@phala/dstack-sdk@${{ steps.tag.outputs.version }}`

**Install**: `npm install @phala/dstack-sdk@${{ steps.tag.outputs.version }}`

**Dist-tag**: `${{ steps.tag.outputs.tag }}`

**Registry**: https://www.npmjs.com/package/@phala/dstack-sdk/v/${{ steps.tag.outputs.version }}
22 changes: 9 additions & 13 deletions .github/workflows/kms-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Parse version from tag
run: |
Expand Down Expand Up @@ -68,26 +68,22 @@ jobs:
subject-digest: ${{ steps.build-and-push.outputs.digest }}
push-to-registry: true

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
cache-dependency-path: kms/auth-eth/package-lock.json
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1

- name: Install dependencies and compile contracts
- name: Compile contracts with Foundry
run: |
cd kms/auth-eth
npm ci
npx hardhat compile
forge install
forge build

- name: GitHub Release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
name: "KMS Release v${{ env.VERSION }}"
files: |
kms/auth-eth/artifacts/contracts/DstackKms.sol/DstackKms.json
kms/auth-eth/artifacts/contracts/DstackApp.sol/DstackApp.json
kms/auth-eth/out/DstackKms.sol/DstackKms.json
kms/auth-eth/out/DstackApp.sol/DstackApp.json
body: |
## Docker Image Information

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prek-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
fetch-depth: 0

Expand Down
92 changes: 92 additions & 0 deletions .github/workflows/python-sdk-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# SPDX-FileCopyrightText: © 2025 Phala Network <dstack@phala.network>
#
# SPDX-License-Identifier: Apache-2.0

name: Publish Python SDK to PyPI
on:
push:
tags: ['python-sdk-v*']
workflow_dispatch:
inputs:
target:
description: 'Publish target'
required: true
default: 'pypi'
type: choice
options:
- pypi
- testpypi

permissions:
id-token: write
contents: write

jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install PDM
run: pip install pdm

- name: Build distribution
working-directory: sdk/python
run: pdm build

- name: Parse and verify version
id: version
working-directory: sdk/python
run: |
PKG_VERSION=$(python -c "
import re
with open('pyproject.toml') as f:
m = re.search(r'^version\s*=\s*\"([^\"]+)\"', f.read(), re.M)
print(m.group(1) if m else '')
")
if [ -z "$PKG_VERSION" ]; then
echo "::error::failed to parse version from pyproject.toml"
exit 1
fi
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
VERSION="$PKG_VERSION"
else
TAG_VERSION="${GITHUB_REF_NAME#python-sdk-v}"
if [ "$TAG_VERSION" != "$PKG_VERSION" ]; then
echo "::error::tag version ($TAG_VERSION) does not match pyproject.toml version ($PKG_VERSION)"
exit 1
fi
VERSION="$TAG_VERSION"
fi
echo "version=$VERSION" >> "$GITHUB_OUTPUT"

- name: Publish to PyPI
if: github.event_name == 'push' || github.event.inputs.target == 'pypi'
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: sdk/python/dist

- name: Publish to TestPyPI
if: github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'testpypi'
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
packages-dir: sdk/python/dist

- name: GitHub Release
if: github.event_name == 'push'
uses: softprops/action-gh-release@v2
with:
name: "Python SDK v${{ steps.version.outputs.version }}"
body: |
## PyPI Package

**Package**: `dstack-sdk ${{ steps.version.outputs.version }}`

**Install**: `pip install dstack-sdk==${{ steps.version.outputs.version }}`

**Registry**: https://pypi.org/project/dstack-sdk/${{ steps.version.outputs.version }}/
4 changes: 2 additions & 2 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ env:

jobs:
rust-checks:
runs-on: ubuntu-latest
runs-on: ${{ vars.CI_RUNNER || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Install Rust
uses: dtolnay/rust-toolchain@1.86
Expand Down
Loading
Loading