> 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/uk/keruvannya-koristuvachami-ta-proyektami/user-management/username-migration.md).

# Міграція імені користувача

## Міграція імені користувача

З погляду входу в систему основним ідентифікатором користувача є його адреса електронної пошти. Якщо ви переходите з локальної автентифікації на SSO або мігруєте з одного IdP до іншого, вам може знадобитися оновити адреси електронної пошти користувачів.

Щоб допомогти з цим, надається скрипт, який мігрує електронні адреси користувачів за допомогою CSV-файлу з таким форматом:

`oldEmail,newEmail`

Після виконання деяких перевірок на валідність скрипт пройде по CSV-файлу та оновить адреси електронної пошти користувачів з `oldEmail` до `newEmail`.

### **Перевірка на валідність**

Перед запуском міграції файл `<csv_file>` буде перевірено, щоб переконатися, що:

* Для кожного рядка і `oldEmail` та `newEmail` є дійсними адресами електронної пошти
* Немає дублікатів, наприклад, ви не намагаєтеся оновити різних користувачів до однієї й тієї самої нової адреси електронної пошти або намагаєтеся оновити той самий обліковий запис користувача вже використаною адресою електронної пошти

### **Використання** <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 %}

### **Прапорці** <a href="#flags" id="flags"></a>

| Назва              | Опис                                                                                                                                                                                                                                                                                           |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--commit`         | <p>Включення <code>--commit</code> прапорця фактично виконає міграцію. Якщо його не вказано, міграція відбуватиметься в режимі dry-run, у якому не вносяться зміни, але перевірка все одно виконується.<br><br><strong>За замовчуванням</strong>:<code>false</code></p>                        |
| `--continue`       | Поле `--continue` прапорець продовжить процес міграції, якщо обліковий запис користувача, якщо адреса електронної пошти в обліковому записі вже була оновлена                                                                                                                                  |
| `--ignore-missing` | Поле `--ignore-missing` прапорець продовжить процес міграції, якщо обліковий запис користувача не знайдено                                                                                                                                                                                     |
| `--admin-id`       | Поле `--admin-id` має бути встановлено в ID Адміністратора, який виконує міграцію, і використовуватиметься для записів аудиту. Перейдіть до **Адміністратор** > **Керувати користувачами** та знайдіть свою адресу електронної пошти і натисніть на перший результат, щоб знайти свій user-id. |
| `<csv_file>`       | Поле `<csv_file>` — це файл зі старими та новими адресами електронної пошти в                                                                                                                                                                                                                  |

### **Завершення** <a href="#completion" id="completion"></a>

Під час виконання скрипта міграції, залежно від вибраних вами прапорців, буде визначено, чи буде помилку записано в консоль і потім продовжено, чи записано в консоль і завершено роботу. Якщо скрипт передчасно завершиться через помилку, він вийде з кодом 1, щоб позначити, що він неуспішний.

Після завершення міграції скрипт запише в консоль кількість успішних, невдалих і пропущених оновлень. Якщо міграція успішно завершиться, він завершить роботу з кодом 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/uk/keruvannya-koristuvachami-ta-proyektami/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.
