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

# Thông tin xác thực của nhà cung cấp

> Thiết lập thông tin xác thực cho OpenAI, Azure OpenAI, Anthropic, Gemini, Bedrock, LM Studio, Ollama, Groq và các bộ chuyển đổi TMS từ xa.

`hyperlocalise` đọc thông tin xác thực của nhà cung cấp từ:

* Xuất các biến trong phiên shell hiện tại của bạn.
* `.env` và `.env.local` tệp trong thư mục dự án hiện tại của bạn.

Độ ưu tiên:

* Các biến shell đã được xuất sẽ được giữ nguyên.
* Đối với các biến chưa được xuất, `.env.local` ghi đè `.env`.

Ví dụ:

<CodeGroup>
  ```bash Export theme={null}
  export OPENAI_API_KEY="your-openai-api-key"
  export AZURE_OPENAI_BASE_URL="https://<resource>.openai.azure.com/openai/v1"
  export AZURE_OPENAI_API_KEY="your-azure-openai-api-key"
  ```

  ```bash .env.local theme={null}
  OPENAI_API_KEY="your-openai-api-key"
  AZURE_OPENAI_BASE_URL="https://<resource>.openai.azure.com/openai/v1"
  AZURE_OPENAI_API_KEY="your-azure-openai-api-key"
  ```
</CodeGroup>

## Các nhà cung cấp LLM

### OpenAI

<CodeGroup>
  ```bash Export theme={null}
  export OPENAI_API_KEY="your-openai-api-key"
  ```

  ```bash .env.local theme={null}
  OPENAI_API_KEY="your-openai-api-key"
  ```
</CodeGroup>

### Azure OpenAI

<CodeGroup>
  ```bash Export theme={null}
  # Example: https://<resource>.openai.azure.com/openai/v1
  export AZURE_OPENAI_BASE_URL="https://<resource>.openai.azure.com/openai/v1"
  export AZURE_OPENAI_API_KEY="your-azure-openai-api-key"
  ```

  ```bash .env.local theme={null}
  # Example: https://<resource>.openai.azure.com/openai/v1
  AZURE_OPENAI_BASE_URL="https://<resource>.openai.azure.com/openai/v1"
  AZURE_OPENAI_API_KEY="your-azure-openai-api-key"
  ```
</CodeGroup>

### Gemini

<CodeGroup>
  ```bash Export theme={null}
  export GEMINI_BASE_URL="https://generativelanguage.googleapis.com/v1beta/openai"
  export GEMINI_API_KEY="your-gemini-api-key"
  ```

  ```bash .env.local theme={null}
  GEMINI_BASE_URL="https://generativelanguage.googleapis.com/v1beta/openai"
  GEMINI_API_KEY="your-gemini-api-key"
  ```
</CodeGroup>

### Anthropic

<CodeGroup>
  ```bash Export theme={null}
  export ANTHROPIC_BASE_URL="https://api.anthropic.com/v1"
  export ANTHROPIC_API_KEY="your-anthropic-api-key"
  ```

  ```bash .env.local theme={null}
  ANTHROPIC_BASE_URL="https://api.anthropic.com/v1"
  ANTHROPIC_API_KEY="your-anthropic-api-key"
  ```
</CodeGroup>

### AWS Bedrock

<CodeGroup>
  ```bash Export theme={null}
  export AWS_REGION="us-east-1"
  export AWS_ACCESS_KEY_ID="your-access-key-id"
  export AWS_SECRET_ACCESS_KEY="your-secret-access-key"
  # Optional when using temporary credentials:
  export AWS_SESSION_TOKEN="your-session-token"
  ```

  ```bash .env.local theme={null}
  AWS_REGION="us-east-1"
  AWS_ACCESS_KEY_ID="your-access-key-id"
  AWS_SECRET_ACCESS_KEY="your-secret-access-key"
  # Optional when using temporary credentials:
  AWS_SESSION_TOKEN="your-session-token"
  ```
</CodeGroup>

### LM Studio

<CodeGroup>
  ```bash Export theme={null}
  export LM_STUDIO_BASE_URL="http://127.0.0.1:1234/v1"
  export LM_STUDIO_API_KEY="lm-studio"
  ```

  ```bash .env.local theme={null}
  LM_STUDIO_BASE_URL="http://127.0.0.1:1234/v1"
  LM_STUDIO_API_KEY="lm-studio"
  ```
</CodeGroup>

### Ollama

<CodeGroup>
  ```bash Export theme={null}
  export OLLAMA_BASE_URL="http://127.0.0.1:11434/v1"
  export OLLAMA_API_KEY="ollama"
  ```

  ```bash .env.local theme={null}
  OLLAMA_BASE_URL="http://127.0.0.1:11434/v1"
  OLLAMA_API_KEY="ollama"
  ```
</CodeGroup>

### Groq

<CodeGroup>
  ```bash Export theme={null}
  export GROQ_BASE_URL="https://api.groq.com/openai/v1"
  export GROQ_API_KEY="your-groq-api-key"
  ```

  ```bash .env.local theme={null}
  GROQ_BASE_URL="https://api.groq.com/openai/v1"
  GROQ_API_KEY="your-groq-api-key"
  ```
</CodeGroup>

## Bộ điều hợp lưu trữ

### POEditor

<CodeGroup>
  ```bash Export theme={null}
  export POEDITOR_API_TOKEN="your-poeditor-token"
  ```

  ```bash .env.local theme={null}
  POEDITOR_API_TOKEN="your-poeditor-token"
  ```
</CodeGroup>

### LILT AI

<CodeGroup>
  ```bash Export theme={null}
  export LILT_API_TOKEN="your-lilt-token"
  ```

  ```bash .env.local theme={null}
  LILT_API_TOKEN="your-lilt-token"
  ```
</CodeGroup>

### Lokalise

<CodeGroup>
  ```bash Export theme={null}
  export LOKALISE_API_TOKEN="your-lokalise-token"
  ```

  ```bash .env.local theme={null}
  LOKALISE_API_TOKEN="your-lokalise-token"
  ```
</CodeGroup>

### Crowdin

<CodeGroup>
  ```bash Export theme={null}
  export CROWDIN_API_TOKEN="your-crowdin-token"
  ```

  ```bash .env.local theme={null}
  CROWDIN_API_TOKEN="your-crowdin-token"
  ```
</CodeGroup>

Nếu bạn sử dụng Crowdin Enterprise, hãy đặt `storage.config.apiBaseURL` trong `i18n.yml` thành máy chủ API Enterprise của bạn. Ví dụ: `https://example.api.crowdin.com`.

### Smartling

<CodeGroup>
  ```bash Export theme={null}
  export SMARTLING_USER_SECRET="your-smartling-user-secret"
  ```

  ```bash .env.local theme={null}
  SMARTLING_USER_SECRET="your-smartling-user-secret"
  ```
</CodeGroup>

Smartling cũng yêu cầu `storage.config.userIdentifier` trong `i18n.yml`.

## Hướng dẫn bảo mật

* Ưu tiên biến môi trường hơn các token được mã hóa cứng.
* Giữ `.env` và `.env.local` ngoài hệ thống kiểm soát phiên bản.
* Xoay vòng các token thường xuyên và giới hạn chúng ở mức đặc quyền tối thiểu.

## Chuẩn quản lý thông tin xác thực cho môi trường cục bộ và CI

Sử dụng mô hình vận hành này cho tất cả các bộ điều hợp lưu trữ từ xa, bao gồm Smartling, Lokalise và các bộ điều hợp tùy chỉnh nội bộ.

### Phát triển cục bộ

1. Chỉ commit cấu hình không bí mật (tên biến `*Env`) vào `i18n.yml`.
2. Lưu các token thực vào `.env.local` (chỉ dành cho máy của nhà phát triển).
3. Thêm `.env` và `.env.local` vào `.gitignore`.
4. Dùng thông tin xác thực TMS riêng cho môi trường phát triển và sản xuất.

### Môi trường CI

1. Lưu trữ bí mật trong trình quản lý bí mật CI của bạn (ví dụ: GitHub Actions Secrets).
2. Chỉ chèn bí mật vào tác vụ đồng bộ cần chúng.
3. Ánh xạ các bí mật CI sang các biến môi trường mà cấu hình bộ chuyển đổi của bạn mong đợi.
4. Sử dụng bí mật theo phạm vi môi trường và bảo vệ nhánh cho đồng bộ sản xuất.

### Xoay vòng và đặc quyền tối thiểu

* Xoay vòng token theo lịch cố định (ví dụ mỗi 90 ngày) và khi thành viên trong nhóm rời đi.
* Tạo người dùng dịch vụ CI riêng cho từng workspace hoặc dự án TMS.
* Hạn chế mỗi token chỉ ở các phạm vi API tối thiểu cần thiết cho pull/push.
* Xác thực việc xoay vòng bằng cách chạy một lần đồng bộ thử trước khi xóa thông tin xác thực trước đó.

### Chính sách ghi nhật ký thân thiện với kiểm toán

* Không bao giờ in các bí mật thô ra logs, đầu ra debug, ảnh chụp màn hình hoặc bình luận về lỗi.
* Chỉ ghi lại tên nguồn thông tin xác thực (`SMARTLING_USER_SECRET`, `LOKALISE_API_TOKEN`), không ghi giá trị.
* Giữ đầu ra CLI ở các định dạng có thể đọc bằng máy (`--output json` hoặc `--output csv`) để phục vụ dấu vết kiểm tra.
* Lưu trữ nhật ký CI và đồng bộ các artifact theo chính sách lưu giữ của bạn.

## Danh sách kiểm tra bảo mật bộ điều hợp TMS

Sử dụng danh sách kiểm tra này trước khi bật các công việc CI có quyền ghi.

* [ ] Tất cả bí mật của adapter được cung cấp thông qua biến môi trường, không phải cấu hình nội tuyến.
* [ ] CI sử dụng thông tin xác thực dịch vụ chuyên dụng (không dùng mã truy cập cá nhân).
* [ ] Phạm vi thông tin xác thực được giới hạn ở các dự án và thao tác cần thiết.
* [ ] Lịch xoay ca được ghi chép và thuộc sở hữu của một nhóm.
* [ ] Nhật ký pipeline không tiết lộ giá trị token.
* [ ] Đã chạy thành công các tác vụ thử nghiệm theo lịch `sync pull` và `sync push`.
* [ ] Cần phê duyệt thủ công trước khi đồng bộ ghi vào môi trường sản xuất, nếu cần.

Danh sách kiểm tra tương tự cũng áp dụng cho Smartling, Lokalise và các bộ chuyển đổi tùy chỉnh được xây dựng trên giao diện bộ chuyển đổi lưu trữ.
