> For the complete documentation index, see [llms.txt](https://overleaf-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://overleaf-pro.ayaka.space/on-premises/id/manajemen-pengguna-dan-proyek/user-management/username-migration.md).

# Migrasi nama pengguna

## Migrasi nama pengguna

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

Untuk membantu hal ini, disediakan 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, file `<csv_file>` akan diperiksa untuk memastikan bahwa:

* Untuk setiap baris, baik `oldEmail` dan `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 flag <code>--commit</code> akan benar-benar menjalankan migrasi. Jika dihilangkan, migrasi akan berjalan 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`       | Berikut `--continue` flag akan melanjutkan proses migrasi jika suatu akun pengguna jika alamat email pada akun tersebut sudah diperbarui                                                                                                                                 |
| `--ignore-missing` | Berikut `--ignore-missing` flag akan melanjutkan proses migrasi jika akun pengguna tidak ditemukan                                                                                                                                                                       |
| `--admin-id`       | Berikut `--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>`       | Berikut `<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 kesalahan dicatat ke konsol lalu dilanjutkan, atau dicatat ke konsol lalu keluar. Jika skrip berakhir lebih awal karena kesalahan, 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://overleaf-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.
