> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/id/manajemen-pengguna-dan-proyek/user-management/username-migration.md).

# Migrasi nama pengguna

## Migrasi username

Dari perspektif login, pengenal utama bagi pengguna adalah alamat email mereka. Jika Anda bermigrasi dari autentikasi lokal ke SSO atau bermigrasi dari satu IdP ke IdP lain, Anda mungkin perlu memperbarui alamat email pengguna.

Untuk membantu hal ini, disediakan sebuah skrip yang akan memigrasikan email pengguna menggunakan file CSV dengan format berikut:

`oldEmail,newEmail`

Setelah melakukan beberapa pemeriksaan validasi, skrip akan menelusuri file CSV dan memperbarui alamat email pengguna dari `oldEmail` ke `newEmail`.

### **Validasi**

Sebelum menjalankan migrasi, `<csv_file>` akan diperiksa untuk memastikan bahwa:

* Untuk setiap baris, baik `oldEmail` maupun `newEmail` adalah alamat email yang valid
* Tidak ada entri duplikat, misalnya Anda tidak mencoba memperbarui pengguna yang berbeda ke alamat email baru yang sama atau Anda mencoba memperbarui akun pengguna yang sama dengan alamat email yang sudah digunakan

### **Penggunaan** <a href="#usage" id="usage"></a>

{% code overflow="wrap" %}

```bash
docker cp <csv_file> sharelatex:/overleaf/services/web/<csv_file> docker exec sharelatex /bin/bash -c "cd /overleaf/services/web;node ./modules/server-ce-scripts/scripts/migrate-user-emails.js [--commit] [--continue|--ignore-missing] [--admin-id=ADMIN_USER_ID] <csv_file>"
```

{% endcode %}

### **Flag** <a href="#flags" id="flags"></a>

| Nama               | Deskripsi                                                                                                                                                                                                                                                                 |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--commit`         | <p>Penyertaan <code>--commit</code> flag benar-benar akan melakukan migrasi. Jika dihilangkan, migrasi akan berlangsung dalam mode dry-run di mana tidak ada perubahan yang dibuat tetapi validasi tetap dilakukan.<br><br><strong>Bawaan</strong>:<code>false</code></p> |
| `--continue`       | Bagian `--continue` flag akan melanjutkan proses migrasi jika alamat email pada sebuah akun pengguna telah diperbarui                                                                                                                                                     |
| `--ignore-missing` | Bagian `--ignore-missing` flag akan melanjutkan proses migrasi jika akun pengguna tidak ditemukan                                                                                                                                                                         |
| `--admin-id`       | Bagian `--admin-id` harus diatur ke ID Administrator yang melakukan migrasi dan akan digunakan untuk entri log audit. Buka **Admin** > **Kelola Pengguna** dan cari alamat email Anda, lalu klik hasil pertama untuk menemukan user-id Anda.                              |
| `<csv_file>`       | Bagian `<csv_file>` adalah file yang berisi alamat email lama dan baru dalam                                                                                                                                                                                              |

### **Selesai** <a href="#completion" id="completion"></a>

Saat menjalankan skrip migrasi, tergantung pada flag yang Anda pilih akan menentukan apakah sebuah error dicatat ke konsol lalu dilanjutkan, atau dicatat ke konsol lalu keluar. Jika skrip berhenti lebih awal karena error, skrip akan keluar dengan kode 1 untuk menandakan bahwa proses tersebut tidak berhasil.

Setelah migrasi selesai, skrip akan mencatat jumlah pembaruan yang berhasil, gagal, dan dilewati ke konsol. Jika migrasi selesai dengan sukses, skrip akan keluar dengan kode 0.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/id/manajemen-pengguna-dan-proyek/user-management/username-migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
