Lewati ke konten utama

pengembangan · Referensi perintah

qzx deployProject

Apa fungsinya

Mempratinjau atau men-deploy artefak eksplisit melalui SSH dengan cadangan remote terverifikasi, validasi SHA-256, promosi atomik, pemeriksaan kesehatan, dan rollback otomatis.

Kematangan perintah: Alpha

Tersedia untuk penggunaan nyata dan umpan balik sementara antarmuka serta perilakunya masih dapat berkembang. Ini adalah evaluasi saat ini untuk checkout pengembangan. Setiap tag rilis immutable di masa mendatang akan mempertahankan evaluasi persis yang disertakan dalam versi tersebut. Tersedia di PyPI 0.2.2.0.9. Dokumentasi ini sesuai dengan checkout alpha 0.2.2.0.9.

Perilaku dan perlindungan bawaan

Mode nyata menerapkan perubahan yang Anda minta

Pratinjau tersedia

Menggunakan alat native saat diperlukan

Menggunakan jaringan untuk tugas yang didokumentasikan

Menggunakan izin Anda saat ini; hasil dapat bervariasi

Mode default hanya mempratinjau dan tidak membuka koneksi. Deployment nyata memerlukan identitas SSH yang sudah dikenal—melalui file OpenSSH normal atau known_hosts eksplisit—, terlebih dahulu mencadangkan artefak lokal dan status remote, mengunggah ke direktori baru, memeriksa setiap file dengan SHA-256, melakukan promosi dalam filesystem yang sama, dan mewajibkan pemeriksaan HTTP(S) tanpa rahasia di URL. Jika pemeriksaan gagal, status remote sebelumnya dipulihkan otomatis. QZX tidak membuild, tidak menggunakan rsync --delete, tidak mengubah izin, tidak menjalankan perintah remote arbitrer, dan tidak me-restart layanan; QZX juga tidak otomatis menghapus jalur cadangan atau pemulihan yang dikembalikan.

QZX membuat arsip pemulihan sebelum perubahan nyata; gunakan --dangerously-bypass-approvals-and-sandbox/--yolo hanya jika Anda sengaja memilih untuk melewatinya.

Menggunakan layanan eksternal yang didokumentasikan dan hanya membagikan data yang dijelaskan di bawah.

Klasifikasi keamanan ini ditinjau oleh OpenAI GPT-5.6 Pro terhadap digest implementasi sha256:240e73f477e23633addd75a0fcc9da0ec756665594164338a747bec91d09d58d pada 2026-08-25.

Sintaks persis

qzx deployProject <target_host> [path] <target_path> [port] [ssh_key] [known_hosts] [health_url] [health_expect] [health_attempts] [health_interval] [health_timeout] [deployment_id] [dry_run] --json

Parameter

Geser atau gunakan bilah horizontal untuk melihat semua kolom.

NamaTipeWajibDefaultDeskripsi
target_hoststrYaTidak dideklarasikanTarget SSH dalam format host atau pengguna@host
pathstrTidak"."Direktori lokal eksplisit dari artefak yang akan di-deploy; QZX tidak pernah membuild-nya atau menggantinya dengan root proyek
target_pathstrYaTidak dideklarasikanDirektori remote absolut yang akan menjadi versi aktif
portintTidak22Port SSH
ssh_keystrTidakTidak dideklarasikanFile lokal opsional untuk private key SSH
known_hostsstrTidakTidak dideklarasikanFile OpenSSH known_hosts eksplisit dan opsional untuk memverifikasi identitas server remote
health_urlstrTidakTidak dideklarasikanEndpoint HTTP(S) tanpa kredensial, query, atau fragment; wajib untuk deployment nyata dan diperiksa setelah promosi
health_expectstrTidakTidak dideklarasikanTeks opsional yang harus muncul dalam body respons kesehatan
health_attemptsintTidak5Jumlah percobaan pemeriksaan kesehatan, antara 1 dan 20
health_intervalfloatTidak2Detik antarpercobaan pemeriksaan kesehatan, antara 0 dan 30
health_timeoutfloatTidak5Batas waktu setiap percobaan pemeriksaan kesehatan, antara 0,1 dan 30 detik
deployment_idstrTidakTidak dideklarasikanIdentifier stabil opsional yang dimasukkan ke jalur audit dan pemulihan
dry_runboolTidaktrueMempratinjau artefak persis dan semua jalur remote tanpa terhubung

Contoh input

qzx deployProject --target-host [email protected] --path ./dist --target-path /srv/example/current

Periksa artefak dan pratinjau semua jalur pemulihan remote

qzx deployProject --target-host [email protected] --path ./dist --target-path /srv/example/current --health-url https://example.test/health --health-expect "ready" --dry-run false

Cadangkan artefak dan jalankan deployment terverifikasi

Untuk mendapatkan payload terstruktur lengkap, tambahkan --json: qzx deployProject <target_host> [path] <target_path> [port] [ssh_key] [known_hosts] [health_url] [health_expect] [health_attempts] [health_interval] [health_timeout] [deployment_id] [dry_run] --json

Contoh output representatif

JSON ilustratif ini berasal dari kontrak hasil yang didukung implementasi saat ini. Ini menunjukkan apa yang dapat dikembalikan perintah tanpa mengklaim sebagai eksekusi yang direkam; nilainya bervariasi menurut input, mesin, izin, dan alat opsional.

Perintah contoh: qzx deployProject --target-host [email protected] --path ./dist --target-path /srv/example/current --json

{
    "success": true,
    "message": "Previews or deploys one explicit artifact over SSH using a verified remote backup, SHA-256 validation, atomic promotion, health checks, and automatic rollback. In this illustrative example, the command completed successfully.",
    "meta": {
        "command": "deployProject",
        "command_maturity": {
            "stage": "alpha",
            "label": "Alpha",
            "sequence": 2,
            "public_executable": true,
            "stability": "interface_may_change",
            "summary": "Available for real use and feedback while its interface and behavior can still evolve.",
            "promotion_review_required": false,
            "assessment_scope": "development_checkout"
        },
        "duration_ms": 0,
        "schema_version": 1
    },
    "details": {
        "summary": "Additional structured context is included here."
    }
}
Lihat kontrak hasil JSON
{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "required": [
        "success",
        "message",
        "meta"
    ],
    "properties": {
        "success": {
            "type": "boolean"
        },
        "message": {
            "type": "string"
        },
        "meta": {
            "type": "object",
            "required": [
                "command",
                "command_maturity",
                "duration_ms",
                "schema_version"
            ],
            "properties": {
                "command": {
                    "type": "string"
                },
                "command_maturity": {
                    "type": "object",
                    "required": [
                        "stage",
                        "label",
                        "sequence",
                        "public_executable",
                        "stability",
                        "summary",
                        "promotion_review_required",
                        "assessment_scope"
                    ],
                    "properties": {
                        "stage": {
                            "type": "string"
                        },
                        "label": {
                            "type": "string"
                        },
                        "sequence": {
                            "type": "integer"
                        },
                        "public_executable": {
                            "type": "boolean"
                        },
                        "stability": {
                            "type": "string"
                        },
                        "summary": {
                            "type": "string"
                        },
                        "promotion_review_required": {
                            "type": "boolean"
                        },
                        "assessment_scope": {
                            "type": "string"
                        },
                        "note": {
                            "type": "string"
                        },
                        "review": {
                            "type": "object",
                            "required": [
                                "reviewed_on",
                                "rationale",
                                "evidence"
                            ],
                            "properties": {
                                "reviewed_on": {
                                    "type": "string",
                                    "format": "date"
                                },
                                "rationale": {
                                    "type": "string"
                                },
                                "evidence": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "replacement": {
                                    "type": "string"
                                }
                            },
                            "additionalProperties": false
                        }
                    },
                    "additionalProperties": true
                },
                "duration_ms": {
                    "type": "number"
                },
                "schema_version": {
                    "type": "integer"
                }
            },
            "additionalProperties": true
        },
        "details": [],
        "error": [],
        "error_code": []
    },
    "additionalProperties": true
}

Kesalahan dan batasan

Kontrak publik mensyaratkan success=false dan message yang deskriptif saat gagal. Katalog ini belum mendeklarasikan taksonomi kesalahan khusus untuk setiap perintah; periksa hasil dan jangan menyimpulkan kode yang tidak ada.

QZX masih dalam tahap alpha. Dependency opsional, izin, dan kemampuan host dapat mengubah hasil.

Alur bukti: memerlukan endpoint terotorisasi atau fixture yang telah ditinjau.

Bukti dan asal-usul

Kanal dokumentasi
Dokumentasi pengembangan 0.2.2.0.9 · main · sha256:cfba936e39931c286ca23add0ae546693db17d8b316e7cbc3891d26642d9b7e8
Ketersediaan
0.2.2.0.9 atau lebih lama

Lanjut jelajahi

Perintah ini juga termasuk kategori pengembangan. Bandingkan untuk memilih operasi yang paling sesuai bagi tugas Anda.

Jelajahi semua perintah QZX