# Data Awal dan Akun Produksi

## Prinsip

- Dokumen ini tidak memuat username final, password, hash password, atau credential produksi.
- Seeder development dilarang dijalankan pada produksi.
- Tidak ada role Admin. Role valid hanya `PEGAWAI`, `TU`, `PIMPINAN`, dan `TEKNISI`.
- Setiap manusia menggunakan akun individual; hindari akun bersama seperti `tu` atau `teknisi` pada produksi.
- Data harus disetujui pemilik proses sebelum dimasukkan.

## Form Persiapan Akun

Gunakan lembar internal dengan akses terbatas. Kolom password tidak boleh ditambahkan.

| No. | Nama lengkap | Username usulan | Role | Unit | Aktif | Pemilik menyetujui | Dibuat oleh/tanggal |
|---:|---|---|---|---|:---:|---|---|
| 1 |  |  | PEGAWAI |  |  |  |  |
| 2 |  |  | TU |  |  |  |  |
| 3 |  |  | PIMPINAN |  |  |  |  |
| 4 |  |  | TEKNISI |  |  |  |  |

Aturan username:

- unik, maksimal 50 karakter sesuai schema;
- tidak memakai NIK/NIP lengkap bila username akan terlihat pada UI;
- tidak menggunakan role generik untuk akun bersama;
- perubahan username atau role pada akun yang sedang login akan memutus sesi pada request berikutnya.

## Provisioning Password

1. Operator membuat password awal unik melalui password manager atau generator yang disetujui organisasi.
2. Hash dibuat menggunakan PHP versi aplikasi dan `PASSWORD_DEFAULT`.
3. Hanya hash yang disimpan pada `users.password_hash`.
4. Password awal disampaikan langsung melalui kanal terpisah dan aman.
5. Pengguna mengganti password melalui menu **Ubah Kata Sandi** pada login pertama.
6. Operator memusnahkan catatan plaintext setelah serah terima.

Repository tidak menyediakan seeder akun produksi agar tidak mendorong penyimpanan password atau identitas organisasi di source code. Pembuatan record dilakukan DBA/operator melalui prosedur yang diaudit.

## Form Data Aset Awal

| No. | Kode aset | Nama aset | Kategori | Lokasi | Kondisi | Sumber/verifikator | Tanggal verifikasi |
|---:|---|---|---|---|---|---|---|
| 1 |  |  |  |  |  |  |  |

Ketentuan:

- `asset_code` wajib unik dan maksimal 50 karakter;
- nama maksimal 150 karakter;
- kategori dan lokasi maksimal 100/150 karakter;
- kondisi merupakan deskripsi ringkas, bukan modul mutasi/pengadaan/penghapusan aset;
- hanya aset yang boleh diajukan untuk perbaikan yang dimasukkan;
- kode harus dicocokkan dengan sumber inventaris resmi sebelum go-live.

## Data yang Tidak Boleh Dipindahkan dari Development/UAT

- akun `pegawai`, `tu`, `pimpinan`, atau `teknisi` demo;
- password demo atau `DEV_SEED_PASSWORD`;
- enam aset contoh dari seeder development;
- tiket, foto, notifikasi, audit, approval, assignment, dan work log fiktif;
- `.env`, log, cache, session, atau backup development;
- screenshot yang memuat data pribadi.

## Verifikasi Setelah Provisioning

- [ ] Minimal satu akun aktif untuk setiap role yang diperlukan organisasi.
- [ ] Seluruh username unik dan pemilik akun diketahui.
- [ ] Role serta unit sesuai persetujuan pemilik proses.
- [ ] Tidak ada password plaintext pada database/dokumen/log.
- [ ] Akun demo tidak ada.
- [ ] Daftar aset telah diverifikasi dan kodenya unik.
- [ ] Belum ada tiket/notifikasi fiktif di produksi.
- [ ] Login pertama dan perubahan password diuji secara manual oleh pemilik akun.
- [ ] Daftar akun aktif ditinjau berkala; akun pegawai keluar/dipindah dinonaktifkan.

## Serah Terima

Catat tanpa rahasia:

```text
Tanggal provisioning : __________________________
Jumlah akun Pegawai   : __________________________
Jumlah akun TU        : __________________________
Jumlah akun Pimpinan  : __________________________
Jumlah akun Teknisi   : __________________________
Jumlah aset           : __________________________
Pelaksana             : __________________________
Verifikator           : __________________________
Catatan               : __________________________
```
