0.6 prerelease checklist: stabilize guest-agent API and SDKs
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 42/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- go, javascript, python, rust, typescript
- Lĩnh vực
- api, backend, documentation
Hướng nghiên cứu
Bắt đầu với các mục SDK và API được phiên bản hóa chưa được đánh dấu trong checklist này, sau đó đọc docs/guest-api-v1.md, docs/guest-api-v0.md và phần công việc đang mở trong #1124. Xem xét các tác vụ phát hành SDK và tài liệu cho từng SDK còn lại, tên các trường JSON opaque và các biểu diễn byte của protobuf. Được xem là hoàn tất khi các SDK đã thay đổi được phát hành dưới dạng 0.6.0, schema v1 được sửa và tài liệu tham chiếu được tạo lại.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Objective
Ship dstack 0.6 with a stable, versioned guest-agent API and consistent Go, JavaScript/TypeScript, Python, and Rust SDKs. Existing 0.5.x clients must continue to work against a 0.6 agent.
Compatibility
- Keep the unversioned API fully compatible with 0.5.x, verified with v0.5.10 generated clients and SDKs. — #1121 runs the released SDK suites against the current agent in CI. The pinned tags are v0.5.8 and v0.5.11, not v0.5.10:
v0.5.10:sdkandv0.5.11:sdkare the same tree object, so running both bought nothing. Note the limit — old JSON clients ignore unknown keys, so this job catches breaking changes to the frozen surface but not additive ones; the shape freeze infrozen_surfaceis what covers additions. - Keep
GetQuoteunchanged: the v0.5 response fields and semantics remain the complete contract. Cross-platform attestation is exposed throughAttest, notGetQuote. - Keep
GetKeywire- and behavior-compatible. Publish a normative specification for path, purpose, supported algorithms, defaults, output encoding, and signature-chain verification. — spec in #1123 (docs/guest-api-v0.md), byte-level: HKDF salt, what enters the KDF vs only the claim, both chain-link preimages, all three signing modes, and the hazard thatalgorithmdoes not domain-separate. - Make
EmitEventreturn 404 with informative error message (deprecated method) - Unknown algorithms must be rejected.
Attestation
- Make
Attestthe single API for platform and GPU attestation
SDKs
- Release all changed SDKs as 0.6.0 and apply semantic versioning consistently.
- Expose the same
TlsKeyOptionsfields and defaults in every SDK.usage_server_authdefaults totrue; remove the unusedpathoption. — #1120 - Represent the TLS private key as PEM and provide an explicit
toPkcs8Der()conversion. Remove ambiguous byte-conversion APIs. — resolved differently, deliberately. The ambiguous accessor is gone from v1 (#1120) and notoPkcs8Der()replaced it: v1 returns PEM and nothing else. The accessor existed to feed the key into the blockchain adapters, v1 has no chain-flavored surface, and DER is one standard-library call away for anyone who wants it. v0 keeps the accessor, because the adapters are v0-typed and that surface is frozen. Reopen this if a v1 caller turns up who needs DER from the SDK itself. - Represent protobuf byte fields as bytes in Rust, not hex strings. — #1124 (open), and in every SDK rather than Rust alone: eleven response fields plus
report_data, with thedecode_*helpers deleted. The JSON wire is unchanged. - Make all SDKs report non-2xx responses consistently, including the server error and HTTP status. — #1120, pinned by tests in #1120 that assert the exact status an image without nvattest answers.
- Regenerate and review the protobuf, HTTP, and SDK reference documentation. — v1 and v0 both have written specs now (
docs/guest-api-v1.md,docs/guest-api-v0.md) andsdk/curl/api.mdwas corrected, but the per-SDK reference docs have not been regenerated.
Versioned API (future)
- Introduce the long-term API under a versioned URL/service namespace such as
/prpc/v1/...and protobuf packagedstack.guest.v1. API selection must not depend on request headers. — #1116; selection is by URL path alone. - Use
*Requestand*Responseconsistently for new messages. Keep the method nameAttest. - Give opaque JSON fields explicit
*_jsonnames in v1, or use typed messages where the schema is stable. — not done.InfoResponsestill carriesapp_compose,vm_configandkey_provider_infoas barestringfields whose comments say they are JSON documents passed through unparsed. v1 is unreleased, so this is still cheap to change.
Signing (future)
- Provide
Signwith an explicit key specification containing path, purpose, and algorithm. — v1 has noSign; the frozen v0Signis now specified indocs/guest-api-v0.md. - Add
GetSigningKeyto return the corresponding public key and certification chain without signing a message. — v1GetKeyreturnspublic_keyandsignature_chainalongside the key, which covers the use case but not as a separate method. - Provide signature verification as SDK functionality rather than an agent RPC. — #1110. v0's
VerifyRPC is still served for 0.5.x clients and is documented as frozen. - Specify the exact Ed25519 and secp256k1 message and prehashed modes. — done for the frozen v0 surface in #1123, including
secp256k1_prehashedrequiring the caller to supply the digest. v1 has no signing surface to specify.
- Ngôn ngữ chính
- Rust
- Star
- 551
- Fork
- 97
- Merge trung bình
- 1 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 199
Chuẩn bị môi trường
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Dstack-TEE/dstack
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Dstack-TEE/dstack#1384 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
Dstack-TEE/dstack#1301 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
Dstack-TEE/dstack#1300 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
Dstack-TEE/dstack#1299 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
Dstack-TEE/dstack#1298 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Dstack-TEE/dstack
Issue tương tự
-
area: dogs area: lookout bug security
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
Maintainer thường phản hồi trong vòng 2 ngày
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
OpenDevicePartnership/ina4230#31 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:breg criticality:p3 documentation triage:needs-implementation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 86/100
registrystack/registry-stack#1713 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Rename CLAUDE.md to AGENTS.mdĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
posit-dev/ggsql#565 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày