Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
211 commits
Select commit Hold shift + click to select a range
f324035
feat: implement Verifiable Message Signing
iKapitonau Aug 20, 2025
ee04ffa
fix: reuse lint
h4x3rotab Sep 1, 2025
c9840bb
Merge pull request #316 from Dstack-TEE/fix-reuse
h4x3rotab Sep 1, 2025
c769b2d
imp(sdk/js): typing for TcbInfo
Leechael Sep 2, 2025
caddb8a
imp(sdk/python): Schema for TcbInfo
Leechael Sep 2, 2025
9e2f060
chore(sdks): bump versions.
Leechael Sep 2, 2025
26609ec
Add dstack-sdk-type version in Cargo.toml
kvinwang Sep 3, 2025
09e9c40
ra-tls: Add KeyCertSign and CrlSign usages for CA cert
kvinwang Sep 2, 2025
ade8714
Merge pull request #319 from Dstack-TEE/pub-dstack-sdk-rs
kvinwang Sep 3, 2025
b6baa52
Merge pull request #320 from Dstack-TEE/ca-cert-sign
kvinwang Sep 3, 2025
720f852
build(deps): bump hono from 4.8.5 to 4.9.6 in /kms/auth-eth-bun
dependabot[bot] Sep 4, 2025
f6f98d2
Fix gateway dockerfile
kvinwang Sep 5, 2025
ee9287c
Merge pull request #317 from Dstack-TEE/imp-sdk-tcb-info
Leechael Sep 7, 2025
f612be1
build(deps): bump undici in /kms/auth-eth
dependabot[bot] Sep 7, 2025
dd3bffb
Merge pull request #323 from Dstack-TEE/fix-gw-image
kvinwang Sep 10, 2025
58fa9d6
imp: when formatting app_url, skip port if it's 443
Leechael Sep 10, 2025
a435f71
Merge pull request #322 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
Leechael Sep 10, 2025
43ad497
Merge pull request #324 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
Leechael Sep 10, 2025
3902b9a
build(deps): bump hono from 4.8.5 to 4.9.6 in /kms/auth-mock
dependabot[bot] Sep 10, 2025
99361b4
build(deps): bump hono from 4.9.6 to 4.9.7 in /kms/auth-eth-bun
dependabot[bot] Sep 12, 2025
383596d
Read qemu path from /etc/dstack/client.conf
kvinwang Sep 15, 2025
ba4eb54
attestation.md: no rootfs hash in RTMR3
kvinwang Sep 15, 2025
1ba3507
Merge pull request #332 from Dstack-TEE/client-conf
kvinwang Sep 15, 2025
5384ddb
Merge pull request #333 from Dstack-TEE/kvinwang-patch-1
kvinwang Sep 15, 2025
f7e5259
bump alloy version
DSharifi Sep 16, 2025
c38936b
Merge pull request #335 from DSharifi/dsharifi/bump-alloy
h4x3rotab Sep 16, 2025
5e9a551
rust-sdk v0.1.1
kvinwang Sep 17, 2025
5972b10
Merge pull request #336 from Dstack-TEE/rust-sdk-0.1.1
kvinwang Sep 17, 2025
69785db
Add init_script in app-compose.json
kvinwang Sep 17, 2025
d9da6e2
Merge pull request #329 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
Leechael Sep 17, 2025
a2b0f9b
Merge pull request #327 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
Leechael Sep 17, 2025
d380a02
Revert the cert subject changes
kvinwang Sep 19, 2025
3425787
Merge pull request #338 from Dstack-TEE/kms-cert-name
Leechael Sep 19, 2025
0da9839
imp(sdk/python): increase the default timeout to 3 secs for Python SDK.
Leechael Sep 19, 2025
3f56bc3
fix(sdk): marked roofs_hash optional since it not returns from API an…
Leechael Sep 19, 2025
70ce94f
chore(sdk): bump versions
Leechael Sep 19, 2025
8d3d714
dstack-mr: Add qemu_version in VmConfig
kvinwang Sep 22, 2025
98d7d65
Merge pull request #337 from Dstack-TEE/init-script
kvinwang Sep 22, 2025
4b4f55b
Add image name in VmConfig
kvinwang Sep 22, 2025
9bfa979
Merge pull request #340 from Dstack-TEE/qemu-version
kvinwang Sep 22, 2025
d349941
Returns event log in dstack-mr
kvinwang Sep 22, 2025
846637c
Add dstack-verifier
kvinwang Sep 22, 2025
a159164
Add os_image_hash in verifier report
kvinwang Sep 23, 2025
cf5cc61
Fix testing failures
kvinwang Sep 23, 2025
a24476f
Update doc for verifier
kvinwang Sep 23, 2025
96ac391
Add cache for verifer
kvinwang Sep 23, 2025
54f13bb
Merge pull request #341 from Dstack-TEE/verifier
kvinwang Sep 24, 2025
30acf0b
Update GH workflow to push images to org
kvinwang Sep 24, 2025
fb75a41
Merge pull request #342 from Dstack-TEE/docker-org
kvinwang Sep 24, 2025
1029b7a
Replace kvin.wang with dstack.org
kvinwang Sep 24, 2025
1594ba2
Update attestation.md use latest dstack-mr
kvinwang Sep 24, 2025
dd91bff
dstack-mr: Fix potential panic due to int overflow
kvinwang Sep 24, 2025
dbe916c
Merge pull request #344 from Dstack-TEE/up-attest
kvinwang Sep 24, 2025
536cbc0
Fix deployment.md
kvinwang Sep 24, 2025
ddfd3c3
Merge pull request #339 from Dstack-TEE/fix-sdks
Leechael Sep 24, 2025
c50f7f3
Fix VmConfig decode error
kvinwang Sep 25, 2025
16b3388
Merge pull request #345 from Dstack-TEE/fix-overflow
kvinwang Sep 25, 2025
ca0f7d7
Merge pull request #346 from Dstack-TEE/fix-deployment.md
kvinwang Sep 25, 2025
887160b
Merge pull request #326 from Dstack-TEE/imp-vmm-app-url
kvinwang Sep 25, 2025
00a0b6a
Merge pull request #343 from Dstack-TEE/dstack-org
kvinwang Sep 25, 2025
8fa3068
Merge pull request #347 from Dstack-TEE/fix-vm-config
kvinwang Sep 25, 2025
6b80ce1
cvm: Support for configuration of storage fs type
kvinwang Sep 26, 2025
c0279f4
vmm: UI for storage fs selection
kvinwang Sep 26, 2025
d0e1b3f
Support auto expand for ext4 fs
kvinwang Sep 26, 2025
99b1e01
cvm: Set max app compose to 256K
kvinwang Sep 26, 2025
16a2148
cvm: Auto reconnect when wg get stucked
kvinwang Sep 26, 2025
df0d608
Merge pull request #349 from Dstack-TEE/larger-compose
kvinwang Sep 26, 2025
df927ac
Merge pull request #350 from Dstack-TEE/wg-reconnect
kvinwang Sep 26, 2025
161dde7
vmm: Refactor sys-config generation code
kvinwang Sep 26, 2025
cd24ed5
Update deploy-to-vmm.sh
kvinwang Sep 28, 2025
fc3de59
Create crate size-parser
kvinwang Sep 28, 2025
7aedbde
size-parser: Support also parser from u64
kvinwang Sep 28, 2025
25fc3fc
Merge pull request #354 from Dstack-TEE/vmm-deploy
kvinwang Sep 28, 2025
29e755d
Merge pull request #355 from Dstack-TEE/size-parser
kvinwang Sep 28, 2025
ec8e251
Merge pull request #351 from Dstack-TEE/refactor-sys-config
kvinwang Sep 28, 2025
fd9c42c
User size-parser in vmm config
kvinwang Sep 28, 2025
3938a49
Merge pull request #357 from Dstack-TEE/size-parser
kvinwang Sep 28, 2025
c9e3701
cvm: Add built-in swap config
kvinwang Sep 28, 2025
141899f
swap: Add UI and cli support
kvinwang Sep 28, 2025
21aa6b2
Put fs type in rtmr3 event log
kvinwang Sep 28, 2025
eab86e8
Add gateway registration on the KMS
Evrard-Nil Sep 28, 2025
c889ee5
Merge pull request #348 from Dstack-TEE/storage-fs
kvinwang Sep 29, 2025
224a1ec
Merge branch 'master' into swap
kvinwang Sep 29, 2025
e3c0cc7
Merge pull request #359 from Evrard-Nil/add-gateway-registering
Leechael Sep 29, 2025
26d4c2d
swap: Handle ext4 case
kvinwang Sep 29, 2025
25a842d
Add tests for Verifiable Message Signing
iKapitonau Sep 29, 2025
12a844d
Merge branch 'vms'
iKapitonau Sep 29, 2025
261f656
Fix build errors
iKapitonau Sep 29, 2025
d186e06
Merge pull request #358 from Dstack-TEE/swap
Leechael Sep 30, 2025
f21e23e
dstack v0.5.5
kvinwang Sep 30, 2025
e1e7bca
doc for min ver of each compose field
kvinwang Sep 30, 2025
20befe3
Merge pull request #363 from Dstack-TEE/compose-field-ver
Leechael Sep 30, 2025
3edc061
claude init
h4x3rotab Oct 7, 2025
77413a8
add sdk sync agent
h4x3rotab Oct 7, 2025
ac61a5e
fix(sdk): sync all SDKs with protobuf schema
h4x3rotab Oct 7, 2025
0eb532d
Merge pull request #366 from Dstack-TEE/sdk-sync
h4x3rotab Oct 7, 2025
c37c67e
build(deps): bump esbuild and vitest in /sdk/js
dependabot[bot] Oct 7, 2025
eb41ceb
Merge pull request #367 from Dstack-TEE/dependabot/npm_and_yarn/sdk/j…
Leechael Oct 8, 2025
5a8064d
chore: python sdk bump to 0.5.3 & js sdk bump to 0.5.7
Leechael Oct 8, 2025
d831052
Merge pull request #368 from Dstack-TEE/chore-sdk-release
h4x3rotab Oct 8, 2025
e8b2d89
Rust sdk v0.1.2
kvinwang Oct 8, 2025
94b5bfa
Add crates.io release workflow
kvinwang Oct 8, 2025
ca4de5e
Fix SPDX check
kvinwang Oct 8, 2025
ef2d92a
Merge pull request #369 from Dstack-TEE/rust-sdk-v0.1.2
kvinwang Oct 8, 2025
c0c670e
Merge pull request #370 from Dstack-TEE/crates-io-release
kvinwang Oct 8, 2025
068a618
guest-agent: Request demo cert lazily
kvinwang Oct 9, 2025
97397ec
Fix SPDX error
kvinwang Oct 9, 2025
ad3a358
Create client from AppKeys in tests
iKapitonau Oct 9, 2025
7bf23b4
Move ed25519-dalek to workspace
iKapitonau Oct 9, 2025
3b0681d
Rename GetAttestation to GetAttestationForAppKey
iKapitonau Oct 9, 2025
58c91b8
Add support for signing pre-hashed digests with secp256k1
iKapitonau Oct 10, 2025
76a1081
Write report_data according to DIP-1
iKapitonau Oct 10, 2025
8fbe6e5
Derive keys for VMS from k256 key
iKapitonau Oct 15, 2025
2fd3445
Add Verify function
iKapitonau Oct 15, 2025
2d5517c
cvm: Remove docker config from app compose
kvinwang Oct 20, 2025
7bf1843
Merge pull request #374 from Dstack-TEE/rm-docker-cfg
kvinwang Oct 20, 2025
8980e0e
Update CHANGELOG.md
kvinwang Oct 20, 2025
88c552e
Update KMS and Gateway hash
kvinwang Oct 21, 2025
90a1ebf
Merge pull request #375 from Dstack-TEE/kms-gw-hash
kvinwang Oct 21, 2025
4631d94
Fixup 88c552e
kvinwang Oct 21, 2025
5c02ae8
vmm: Allow empty gpus list when gpu is not enabled
kvinwang Oct 21, 2025
b955027
Fix a compilation warning
kvinwang Oct 21, 2025
75e58bb
Merge pull request #377 from Dstack-TEE/no-warn-gpu
kvinwang Oct 21, 2025
6a0f6c3
Add signature_chain and public_key to SignResponse
iKapitonau Oct 21, 2025
11f44e4
More verbose comments
iKapitonau Oct 21, 2025
686a880
Remove redundant code
iKapitonau Oct 21, 2025
4c4a951
Fix verification of secp256k1_prehashed
iKapitonau Oct 21, 2025
bb434cf
Add support for Sign/Verify to SDK
iKapitonau Oct 21, 2025
6327b68
Add DStack LF Charter
riaankleinhans Oct 21, 2025
6194556
add dstack lf charter
riaankleinhans Oct 22, 2025
9304e6d
Merge pull request #378 from riaankleinhans/Add-DStack-LF-Charter
shelvenzhou Oct 23, 2025
e69518d
Merge branch 'master' into vms
iKapitonau Oct 24, 2025
0e3242f
Fix tests
iKapitonau Oct 24, 2025
0938f93
build(deps): bump hono from 4.9.6 to 4.10.3 in /kms/auth-mock
dependabot[bot] Oct 24, 2025
8a101d3
Merge pull request #381 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
Leechael Oct 27, 2025
b303805
feat: customize site name for VMM
Leechael Oct 27, 2025
4d42d0a
build(deps): bump hono from 4.9.7 to 4.10.3 in /kms/auth-eth-bun
dependabot[bot] Oct 27, 2025
8099929
Merge pull request #383 from Dstack-TEE/feat-vmm-customize-site-name
Leechael Oct 28, 2025
ce87147
Merge pull request #382 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
Leechael Oct 28, 2025
ed8c962
feat: add VM resizing and port updating functionality
Evrard-Nil Oct 29, 2025
a65b829
Fix pdm issues
iKapitonau Oct 30, 2025
9616d45
Fix tests
iKapitonau Oct 30, 2025
f865546
Formatting
iKapitonau Oct 30, 2025
d3c819e
Merge pull request #384 from Evrard-Nil/improve-vmm-cly
kvinwang Oct 31, 2025
fc9e020
docs: fix kms rpc proto link
think-in-universe Nov 5, 2025
b798179
vmm: Cache guest events in a buffer of size 20
kvinwang Nov 5, 2025
b997c6d
Merge pull request #386 from think-in-universe/docs/fix-kms-link
kvinwang Nov 5, 2025
42a15fa
Merge pull request #360 from scrtlabs/vms
kvinwang Nov 6, 2025
e0107ee
vmm-ui: Update allowed_envs when secrets updated
kvinwang Nov 6, 2025
a864ec6
vmm-cli: Update allowed_envs when secrets updated
kvinwang Nov 6, 2025
4addef5
Add timestamp in GuestEvent
kvinwang Nov 6, 2025
8dc15ed
Merge pull request #388 from Dstack-TEE/vmm-up-allowed-envs
kvinwang Nov 6, 2025
b7969e1
Merge pull request #387 from Dstack-TEE/vmm-event-buffer
kvinwang Nov 6, 2025
58e261f
Add new vmm ui
kvinwang Nov 7, 2025
227b474
Fix SPDX issue
kvinwang Nov 10, 2025
cf63b9a
vmm: Accept more chars in cvm name
kvinwang Nov 10, 2025
f91e712
Render the {{TITLE}}
kvinwang Nov 10, 2025
9f5c87d
Merge pull request #391 from Dstack-TEE/vmm-app-name
kvinwang Nov 10, 2025
cbbe8af
Merge pull request #390 from Dstack-TEE/vmm-ui
kvinwang Nov 10, 2025
47f630f
Add node_name to vmm.toml
kvinwang Nov 10, 2025
d39cd28
vmm-cli: Add subcommand update
kvinwang Nov 12, 2025
29c5930
vmm-ui: Limit width to 900px
kvinwang Nov 12, 2025
34f75f2
Merge pull request #392 from Dstack-TEE/vmm-cli-update-vm
kvinwang Nov 12, 2025
3ef2693
Merge pull request #393 from Dstack-TEE/ui-wid-900
kvinwang Nov 12, 2025
834d9fc
vmm: Add auto generated openapi docs
kvinwang Nov 12, 2025
44db965
vmm-ui: Fix gpu editor layout
kvinwang Nov 12, 2025
4660ae5
Merge pull request #394 from Dstack-TEE/openapi
kvinwang Nov 12, 2025
b5adc45
Merge pull request #395 from Dstack-TEE/fix-ui
kvinwang Nov 12, 2025
6560cb0
Add ReloadVms API to sync VM directory with memory state
kvinwang Nov 11, 2025
5c26751
Merge pull request #397 from Dstack-TEE/rpc-reloadvms
kvinwang Nov 12, 2025
6897dde
Merge ResizeVm into UpgradeApp
kvinwang Nov 12, 2025
b0707a8
vmm: Add rpc UpdateVm replacing UpgradeApp and ResizeVm
kvinwang Nov 12, 2025
30915ef
vmm-rpc: Add support for update kms/gw urls
kvinwang Nov 12, 2025
6cb0c02
Merge pull request #396 from Dstack-TEE/vmm-rpc-updatevm
kvinwang Nov 12, 2025
c189643
Merge pull request #398 from Dstack-TEE/vmm-update-urls
kvinwang Nov 12, 2025
e4f918d
Fix compilation warning
kvinwang Nov 12, 2025
2d5df3f
Merge pull request #399 from Dstack-TEE/fix-warn
kvinwang Nov 12, 2025
e7ea195
rpc: Add convert doc string in openapi generation
kvinwang Nov 12, 2025
8ac5e70
Merge pull request #400 from Dstack-TEE/open-api-doc
kvinwang Nov 12, 2025
e3b6798
vmm: Support for disabling TEE
kvinwang Nov 12, 2025
be3a52c
vmm: Add api docs link in the UI
kvinwang Nov 12, 2025
423bf6f
vmm-ui: Use new UI as default
kvinwang Nov 12, 2025
891434d
Merge pull request #401 from Dstack-TEE/disable-tee
kvinwang Nov 12, 2025
edd7fca
vmm-ui: Follow logs by default
kvinwang Nov 12, 2025
f13816d
vmm-ui: Show TEE enabled flag
kvinwang Nov 12, 2025
8eacbd9
Merge pull request #402 from Dstack-TEE/vmm-ui-v1
kvinwang Nov 12, 2025
e72b214
vmm-ui: Show git rev
kvinwang Nov 13, 2025
44336df
vmm-ui: Add toggle dev mode
kvinwang Nov 13, 2025
ecfd37a
vmm: Fix vm status after reloading
kvinwang Nov 13, 2025
36c3b64
Merge pull request #403 from Dstack-TEE/vmm-ui-v1
kvinwang Nov 13, 2025
f4475a0
vmm-ui: Short uptime
kvinwang Nov 13, 2025
45c9bdb
Merge pull request #404 from Dstack-TEE/vmm-ui-v1
kvinwang Nov 13, 2025
af2b906
vmm-ui: Allow update gpus for non-kms instances
kvinwang Nov 13, 2025
a52fe84
vmm: Optimize web UI
kvinwang Nov 14, 2025
d3275d1
Merge pull request #405 from Dstack-TEE/vmm-ui-v1
kvinwang Nov 14, 2025
aa92aa4
Change default image download URL in README
kvinwang Nov 18, 2025
5f005e4
Update verifier/README.md
kvinwang Nov 18, 2025
7bee127
Merge pull request #406 from Dstack-TEE/kvinwang-patch-2
kvinwang Nov 18, 2025
0e00721
build(deps): bump js-yaml in /kms/auth-eth
dependabot[bot] Nov 18, 2025
914623e
build(deps): bump golang.org/x/crypto from 0.35.0 to 0.45.0 in /sdk/go
dependabot[bot] Nov 20, 2025
90cfc21
Merge pull request #408 from Dstack-TEE/dependabot/go_modules/sdk/go/…
kvinwang Nov 20, 2025
2ccc6a7
Merge pull request #407 from Dstack-TEE/dependabot/npm_and_yarn/kms/a…
h4x3rotab Nov 25, 2025
2608afa
Improve code style
kvinwang Dec 9, 2025
ad4a840
Use or_panic instead of expect
kvinwang Dec 9, 2025
35fab17
Merge pull request #413 from Dstack-TEE/no-panic
kvinwang Dec 9, 2025
564c625
certbot: Support config for max DNS wait time
kvinwang Dec 9, 2025
b128ce3
Merge pull request #414 from Dstack-TEE/dns-max-time
kvinwang Dec 10, 2025
0920f33
Update README to clarify app-id definition
kvinwang Dec 10, 2025
fbd26a6
Merge pull request #415 from Dstack-TEE/kvinwang-patch-3
kvinwang Dec 10, 2025
7aac04a
certbot: Auto-detect zone
kvinwang Dec 17, 2025
c8fc789
Merge pull request #418 from Dstack-TEE/certbot-auto-zone
kvinwang Dec 17, 2025
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
76 changes: 76 additions & 0 deletions .claude/agents/sdk-sync-checker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
name: protobuf-sdk-validator
description: Validates that SDK implementations are synchronized with Protocol Buffer schema definitions. Use when protobuf files change, SDKs need verification, or you suspect schema drift.
tools: Bash, Glob, Grep, Read, TodoWrite
model: sonnet
color: yellow
---

You validate SDK implementations against protobuf schemas to ensure synchronization.

## Process

### 1. Discovery
- Find all `.proto` files in `guest-agent/rpc/proto/`
- Identify SDK implementations in `sdk/` (python, go, rust, js, curl docs)
- Extract services, RPCs, and message types from proto files

### 2. Extract Schema
For each message type, extract:
- Field names, types, and numbers
- Required/optional/repeated modifiers
- Nested types and enums
- Service method signatures

### 3. Compare SDKs
For each SDK, verify message/response types contain:
- All proto fields (accounting for naming conventions)
- Correct type mappings (bytes→hex string, string→string, repeated→array)
- Proper optionality markers

### 4. Report

```markdown
# SDK Sync Report

## Summary
Status: ✅/❌ | Protos: X | SDKs: Y | Issues: Z

## Findings

### [SDK Name] (path/to/file.ext)
| Proto Message | Status | Missing Fields |
|---------------|--------|----------------|
| MessageName | ❌ | field1, field2 |

Details:
- ❌ MessageName.field1: missing (proto line X, expected in SDK)
- ❌ MessageName.field2: missing (proto line Y, expected in SDK)

## Action Items
1. [SDK]: Add field X to MessageY (file.ext:lineN)
2. [SDK]: Fix type mismatch for field Z
```

## Type Mappings
- `bytes` → hex `string` (Python/Go/JS/Rust), `string` JSON (cURL docs)
- `string` → `string` (all)
- `repeated X` → array/list/vec (language-specific)
- `int32/uint32` → number/int types

## Naming Conventions
- Python: `snake_case`
- Go: `PascalCase` (exported fields)
- Rust: `snake_case`
- JavaScript: `camelCase`
- cURL docs: `snake_case` (JSON wire format)

## Locations
- Protos: `guest-agent/rpc/proto/*.proto`
- Python: `sdk/python/src/dstack_sdk/dstack_client.py`
- Go: `sdk/go/dstack/client.go`
- Rust: `sdk/rust/types/src/dstack.rs`
- JS: `sdk/js/src/index.ts`
- Docs: `sdk/curl/api.md`, `sdk/curl/api-tappd.md`

Focus on API surface differences. Provide specific file paths and line numbers.
6 changes: 3 additions & 3 deletions .github/workflows/gateway-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
with:
context: gateway/dstack-app/builder
push: true
tags: ${{ vars.DOCKERHUB_USERNAME }}/gateway:${{ env.VERSION }}
tags: ${{ vars.DOCKERHUB_ORG }}/dstack-gateway:${{ env.VERSION }}
platforms: linux/amd64
provenance: false
build-args: |
Expand All @@ -61,7 +61,7 @@ jobs:
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-name: "docker.io/${{ vars.DOCKERHUB_USERNAME }}/gateway"
subject-name: "docker.io/${{ vars.DOCKERHUB_ORG }}/dstack-gateway"
subject-digest: ${{ steps.build-and-push.outputs.digest }}
push-to-registry: true

Expand All @@ -72,7 +72,7 @@ jobs:
body: |
## Docker Image Information

**Image**: `docker.io/${{ vars.DOCKERHUB_USERNAME }}/gateway:${{ env.VERSION }}`
**Image**: `docker.io/${{ vars.DOCKERHUB_ORG }}/dstack-gateway:${{ env.VERSION }}`

**Digest (SHA256)**: `${{ steps.build-and-push.outputs.digest }}`

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/kms-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
with:
context: kms/dstack-app/builder
push: true
tags: ${{ vars.DOCKERHUB_USERNAME }}/kms:${{ env.VERSION }}
tags: ${{ vars.DOCKERHUB_ORG }}/dstack-kms:${{ env.VERSION }}
platforms: linux/amd64
provenance: false
build-args: |
Expand All @@ -65,7 +65,7 @@ jobs:
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-name: "docker.io/${{ vars.DOCKERHUB_USERNAME }}/kms"
subject-name: "docker.io/${{ vars.DOCKERHUB_ORG }}/dstack-kms"
subject-digest: ${{ steps.build-and-push.outputs.digest }}
push-to-registry: true

Expand All @@ -92,7 +92,7 @@ jobs:
body: |
## Docker Image Information

**Image**: `docker.io/${{ vars.DOCKERHUB_USERNAME }}/kms:${{ env.VERSION }}`
**Image**: `docker.io/${{ vars.DOCKERHUB_ORG }}/dstack-kms:${{ env.VERSION }}`

**Digest (SHA256)**: `${{ steps.build-and-push.outputs.digest }}`

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

name: Publish SDK to crates.io
on:
push:
tags: ['rust-sdk-v*']
jobs:
publish:
runs-on: ubuntu-latest
environment: sdk-release
permissions:
id-token: write
steps:
- uses: actions/checkout@v5
- uses: rust-lang/crates-io-auth-action@v1
id: auth
- run: cargo publish -p dstack-sdk-types
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
- run: cargo publish -p dstack-sdk
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}

2 changes: 1 addition & 1 deletion .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
components: clippy, rustfmt

- name: Run Clippy
run: cargo clippy -- -D warnings --allow unused_variables
run: cargo clippy -- -D warnings -D clippy::expect_used -D clippy::unwrap_used --allow unused_variables

- name: Cargo fmt check
run: cargo fmt --check --all
Expand Down
80 changes: 80 additions & 0 deletions .github/workflows/verifier-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# SPDX-FileCopyrightText: © 2025 Phala Network <dstack@phala.network>
#
# SPDX-License-Identifier: Apache-2.0

name: Verifier Release

on:
workflow_dispatch:
push:
tags:
- 'verifier-v*'
permissions:
attestations: write
id-token: write
contents: write
packages: write

jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Parse version from tag
run: |
VERSION=${GITHUB_REF#refs/tags/verifier-v}
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "Parsed version: $VERSION"

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Get Git commit timestamps
run: |
echo "TIMESTAMP=$(git log -1 --pretty=%ct)" >> $GITHUB_ENV
echo "GIT_REV=$(git rev-parse HEAD)" >> $GITHUB_ENV

- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@v5
env:
SOURCE_DATE_EPOCH: ${{ env.TIMESTAMP }}
with:
context: verifier
file: verifier/builder/Dockerfile
push: true
tags: ${{ vars.DOCKERHUB_ORG }}/dstack-verifier:${{ env.VERSION }}
platforms: linux/amd64
provenance: false
build-args: |
DSTACK_REV=${{ env.GIT_REV }}
DSTACK_SRC_URL=${{ github.server_url }}/${{ github.repository }}.git
SOURCE_DATE_EPOCH=${{ env.TIMESTAMP }}

- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-name: "docker.io/${{ vars.DOCKERHUB_ORG }}/dstack-verifier"
subject-digest: ${{ steps.build-and-push.outputs.digest }}
push-to-registry: true

- name: GitHub Release
uses: softprops/action-gh-release@v1
with:
name: "Verifier Release v${{ env.VERSION }}"
body: |
## Docker Image Information

**Image**: `docker.io/${{ vars.DOCKERHUB_ORG }}/dstack-verifier:${{ env.VERSION }}`

**Digest (SHA256)**: `${{ steps.build-and-push.outputs.digest }}`

**Verification**: [Verify on Sigstore](https://search.sigstore.dev/?hash=${{ steps.build-and-push.outputs.digest }})
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ node_modules/
/.cargo
.venv
/tmp
.claude
.claude/settings.local.json
__pycache__
36 changes: 35 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,39 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.5.5] - 2025-10-20

### Added
- SDK sync agent for automated protobuf schema synchronization (#366)
- dstack-verifier CLI tool with OS image hash verification (#341)
- built-in swap configuration support for CVMs (#348, #357, #358)
- support for ext4 filesystem type on storage (#348)
- size-parser crate for handling size configurations (#355)
- init_script support in app-compose.json (#337)
- cache for verifier (#341)
- Add QEMU version and image name in VmConfig (#340)
- documentation for minimum version of each compose field (#363)

### Changed
- max app compose size increased to 256K (#349)
- default timeout increased to 3 secs for python SDK (#339)
- auto reconnect when WireGuard gets stuck (#350)
- put filesystem type in RTMR3 event log (#348)
- read QEMU path from /etc/dstack/client.conf (#332)
- refactor sys-config generation code (#351)
- when formatting app_url, skip port if it's 443 (#326)
- update docker organization references (#342, #343)
- RA-TLS: add KeyCertSign and CrlSign usages for CA cert (#320)

### Fixed
- guest-agent: request demo cert lazily
- VmConfig decode error (#347)
- potential panic due to int overflow in dstack-mr (#345)
- SDK issues - marked rootfs_hash optional (#339)

### Removed
- docker_config field from app-compose.json (#374)

## [0.5.4] - 2025-09-01

### Security
Expand Down Expand Up @@ -1237,7 +1270,8 @@ New contributors in this release:
* @Leechael made their first contribution
* @nanometerzhu made their first contribution
* @h4x3rotab made their first contribution
[unreleased]: https://github.com/Dstack-TEE/dstack/compare/v0.5.3..HEAD
[unreleased]: https://github.com/Dstack-TEE/dstack/compare/v0.5.5..HEAD
[0.5.5]: https://github.com/Dstack-TEE/dstack/compare/v0.5.4..v0.5.5
[0.5.4]: https://github.com/Dstack-TEE/dstack/compare/v0.5.3..v0.5.4
[0.5.3]: https://github.com/Dstack-TEE/dstack/compare/v0.5.2..v0.5.3
[0.5.2]: https://github.com/Dstack-TEE/dstack/compare/v0.5.1..v0.5.2
Expand Down
Loading