> ## Documentation Index
> Fetch the complete documentation index at: https://support.locker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Secrets commands (CLI)

> Hướng dẫn sử dụng giao diện dòng lệnh (CLI) của Locker Secrets

## Secrets commands (CLI)

Locker Secrets có một giao diện dòng lệnh (CLI) bao gồm các chức năng phổ biến và định dạng đầu ra. CLI của Locker Secrets là một tệp nhị phân tĩnh duy nhất — một lớp bọc xung quanh API HTTP.

### Cài đặt

Locker Secrets CLI có thể được tải xuống bằng các liên kết dưới đây:

* **Windows**: [https://locker.io/secrets/download/cli-windows](https://locker.io/secrets/download/cli-windows)
* **Linux**: [https://locker.io/secrets/download/cli-linux](https://locker.io/secrets/download/cli-linux)
* **MacOS (x64)**: [https://locker.io/secrets/download/cli-mac-x64](https://locker.io/secrets/download/cli-mac-x64)
* **MacOS (ARM)**: [https://locker.io/secrets/download/cli-mac-arm64](https://locker.io/secrets/download/cli-mac-arm64)

### Lược đồ dữ liệu của Locker Secrets

Có hai loại dữ liệu được mã hóa: `secret` (bí mật) và `environment` (môi trường), với mỗi secret thuộc về một môi trường cụ thể (mặc định là môi trường đặc biệt `All`). Dữ liệu tuân theo hai quy tắc để bắt buộc tính duy nhất: mỗi tên môi trường phải là duy nhất, và mỗi cặp (khóa secret, tên môi trường) phải là duy nhất.

### Cấu trúc lệnh CLI

Mỗi lệnh được biểu diễn dưới dạng một lệnh hoặc lệnh con. Xây dựng lệnh CLI sao cho các tùy chọn lệnh đặt trước đường dẫn và các đối số nếu có:

```bash theme={null}
locker <command> <subcommands> [flags]
```

### Thứ tự ưu tiên của thông tin đăng nhập

Thông thường, một lệnh của Locker Secrets phải được cung cấp với ID khóa truy cập và secret thông qua hai cờ:

```bash theme={null}
locker secret list --access-key-id {id} --secret-access-key {secret}
```

Tuy nhiên, nếu biến môi trường `LOCKER_ACCESS_KEY_ID` và `LOCKER_ACCESS_KEY_SECRET` được thiết lập hoặc dữ liệu thông tin đăng nhập được khởi tạo bằng `configuration`, Locker Secret sẽ sử dụng chúng thay thế:

```bash theme={null}
locker secret list // no access key flags required
```

Nếu có nhiều hơn một thông tin đăng nhập được cung cấp, Locker Secret sẽ ưu tiên theo thứ tự: **cờ dòng lệnh → tệp thông tin đăng nhập → biến môi trường**.

### Global flags

* `--version`: lấy thông tin phiên bản của Locker Secrets CLI.
* `--help`: nhận trợ giúp của CLI về lệnh/lệnh con hiện tại.
* `--output`: đặt cờ này để xuất kết quả đầu ra thành tệp `output.txt` trong thư mục làm việc hiện tại.

### Lệnh configuration

Thiết lập các chi tiết của khóa truy cập vào tệp thông tin đăng nhập.

```bash theme={null}
locker configuration --access-key-id {id} --secret-access-key {secret key}
```

Sẽ có một thông báo nhập cho bất kỳ cờ nào không được cung cấp. Nếu có một ID khóa truy cập cũ trong tệp thông tin đăng nhập, sẽ có một thông báo xác nhận để ghi đè lên chúng.

### Lệnh secret

Thực hiện các hành động Đọc và Ghi trên các secret được mã hóa.

```bash theme={null}
locker secret <subcommands> [flags]
```

### Lệnh environment

Thực hiện các hành động Đọc và Ghi trên các môi trường được mã hóa.

```bash theme={null}
locker environment <subcommands> [flags]
```

### Cờ lệnh sử dụng chung

**Cho lệnh `secret`, `environment` và `scan`:**

* `--output [string]`: xuất dữ liệu đầu ra sang một tệp được chỉ định bởi đường dẫn.
* `--output-format`: chỉ định định dạng đầu ra (`json`, `env`, `txt`) — mặc định là `txt`.

**Cho lệnh `secret` và `environment`:**

* `--access-key-id [string]`: lấy từ máy khách Locker Secrets.
* `--secret-access-key [string]`: lấy từ máy khách Locker Secrets.
* `--headers [strings]`: header tùy chỉnh, phải ở dạng `"key1: value1, key2: value2"`.
* `--credential [string]`: đường dẫn tới tệp thông tin, mặc định là `$USER/.locker/credential.json`.
* `--api-base [string]`: thiết lập API endpoint của máy chủ, mặc định là `https://api.locker.io/locker_secrets`.
* `--agent [string]`: chỉ định agent. Phải ở dạng `agent - version`, chấp nhận Python, .Net, NodeJS, Java.
* `--fetch`: buộc Locker Secrets lấy dữ liệu từ máy chủ đám mây thay vì bộ nhớ cục bộ.
* `--json`: định dạng dữ liệu đầu ra thành JSON; nếu `--output` được đặt, tệp sẽ được đổi tên thành `output.json`.
* `--dotenv`: sử dụng với `--output`, đổi tên tệp đầu ra thành `.env`.
* `--resttime [int]`: cài đặt thời gian ngừng hoạt động giữa các lệnh gọi API.

### Lệnh con list

Có sẵn trên các lệnh `secret` và `environment`. Lấy và giải mã tất cả các mục từ máy chủ.

Cờ tùy chọn: `--environment` (cho secret) — chỉ định môi trường liên quan, mặc định là `null` (môi trường `All`).

```bash theme={null}
locker secret list --access-key-id {id} --secret-access-key {secret key} [additional flags]
locker environment list --access-key-id {id} --secret-access-key {secret key} [additional flags]
```

### Lệnh con get

Có sẵn trên các lệnh `secret` và `environment`. Lấy và giải mã một mục cụ thể từ máy chủ.

Cờ bắt buộc: `--key` (cho secret) hoặc `--name` (cho environment).

Cờ tùy chọn: `--environment` (chỉ secret) — mặc định là `null`.

```bash theme={null}
locker secret get --access-key-id {id} --secret-access-key {secret key} --key {secret's key} --environment {secret's environment} [additional flags]
locker environment get --access-key-id {id} --secret-access-key {secret key} --name {environment's name} [additional flags]
```

### Lệnh con create

Có sẵn trên các lệnh `secret` và `environment`. Tạo phiên bản được mã hóa của dữ liệu đầu vào trên máy chủ.

Cờ bắt buộc: `--key`, `--value` (cho secret) hoặc `--name` (cho environment).

Cờ tùy chọn: `--description`, `--url`, `--environment` (cho secret).

```bash theme={null}
locker secret create --access-key-id {id} --secret-access-key {secret key} --key secret_1 --value secret_2 --description "this is secret data" --environment prod [additional flags]
```

```bash theme={null}
locker environment create --access-key-id {id} --secret-access-key {secret key} --name env_1 --url env_2 --description "this is env data" [additional flags]
```

### Lệnh con update

Có sẵn trên các lệnh `secret` và `environment`. Sửa đổi dữ liệu của một secret hoặc môi trường.

Cờ bắt buộc: `--key` (cho secret) hoặc `--name` (cho environment), và ít nhất một trong các cờ `--new-*`.

Cờ `--new-*` khả dụng: `--new-key`, `--new-value`, `--new-description`, `--new-environment` (cho secret); `--new-name`, `--new-url`, `--new-description` (cho environment).

Ví dụ cập nhật đầy đủ các trường của một secret:

```bash theme={null}
locker secret update --access-key-id {id} --secret-access-key {secret key} --key old_secret_1 --environment old_environment_1  --data --new-key new_secret_1 --new-value new_secret_2 --new-description "this is new secret data" --new-environment new_environment_1 [additional flags]
```

Ví dụ chỉ cập nhật khóa:

```bash theme={null}
locker secret update --access-key-id {id} --secret-access-key {secret key} --key old_secret_1 --environment old_environment_1  --data --new-key new_secret_1 [additional flags]
```

```bash theme={null}
locker environment update --access-key-id {id} --secret-access-key {secret key} --name old_env_1 --new-name new_env_1 --new-url new_env_2 --new-description "this is new env data" [additional flags]
```
