Nộp gói
Endpoint: POST /api/v1/vendor/modules
Quyền: role VENDOR (nhóm route nền tảng — ADR-0007). Tài khoản VENDOR
được cấp qua quy trình hai người duyệt, không tự đăng ký được (ADR-0009 mục
6).
Lấy access token qua client platform-admin (cổng nền tảng, không phải cổng
tenant) — token phải mang role VENDOR trong realm_access.roles.
Ví dụ curl nộp gói:
curl -X POST "$GATEWAY_URL/api/v1/vendor/modules" \
-H "Authorization: Bearer $TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-F "file=@ten-module.zip;type=application/zip"
Idempotency-Key là bắt buộc (một UUID bất kỳ do client sinh) — nộp lại cùng
khoá trả về kết quả của lần đầu, không tạo bản ghi trùng.
Đọc kết quả
Thành công (201): thân trả { code, version, status }, với status là
IN_REVIEW (kiểm đạt, chờ duyệt) hoặc DRAFT (quét bảo mật chưa đạt — xem
trang Vòng đời).
Thất bại, error_code trong thân Problem Details:
| Mã | HTTP | Ý nghĩa |
|---|---|---|
MODULE_PACKAGE_INVALID | 422 | Gói sai bố cục: zip hỏng, thiếu module.yaml hoặc signature.sig, gói quá lớn |
MODULE_SIGNATURE_INVALID | 422 | Chữ ký thiếu, sai, hoặc không thuộc khoá tin cậy |
MODULE_MANIFEST_INVALID | 422 | module.yaml sai schema hoặc quy tắc liên trường; mảng errors nêu từng vi phạm theo pointer |
MODULE_VERSION_CONFLICT | 409 | Phiên bản không tăng so với bản đã phát hành, hoặc module PUBLISHED không ghi đè được |
MODULE_SCAN_FAILED | 422 | Image còn lỗ hổng mức Critical khi quét Trivy |
MODULE_MIGRATION_INVALID | 422 | Migration chạy thử lỗi, hoặc một tệp quá 60 giây |
Nguồn: ADR-0045 mục 2.