# Database Documentation > **Terakhir Diperbarui:** 2026-06-29 --- ## Koneksi Database | Connection Name | Driver | Host | Database | Dipakai Untuk | |----------------|--------|------|----------|----------------| | `pgsql` (default) | PostgreSQL | `audit-postgres` (container) | `databaselist_app` | App metadata, user meta, tokens, settings | | `audit` | PostgreSQL | `audit-postgres` (container) | `databaselist_audit` | Audit log aktivitas | | `project_search` | PostgreSQL | `10.100.1.25` (external) | `geonet_project_search` | Indeks AI project search (Fase Ollama) | | `mssql` | SQL Server | `10.100.1.25:1433` | `master` | Database registry (read-only) | > `DB_CONNECTION=pgsql` di `compose.yaml` override nilai di `.env`. **Jangan ubah ke sqlite.** --- ## Database: `databaselist_app` (PostgreSQL App) ### Tabel Utama | Tabel | Model | Keterangan | |-------|-------|------------| | `ldap_user_meta` | `LdapUserMeta` | Metadata user LDAP (avatar, settings, last login) | | `ldap_group_meta` | `LdapGroupMeta` | Metadata group LDAP | | `database_connections` | `DatabaseConnection` | Registry database (SQL Server, PostgreSQL, dll.) | | `service_tokens` | `ServiceToken` | Token antar-service (sync ke GeoNetAgent) | | `api_tokens` | `ApiToken` | Personal API token per user | | `oauth_access_tokens` | — | Laravel Passport/Sanctum tokens | | `oauth_personal_access_clients` | — | OAuth clients | ### `ldap_user_meta` | Kolom | Tipe | Keterangan | |-------|------|------------| | `id` | bigint PK | | | `username` | varchar UNIQUE | LDAP username | | `avatar` | varchar nullable | Path relatif di OSS: `avatars/` | | `display_name` | varchar nullable | | | `email` | varchar nullable | | | `department` | varchar nullable | | | `last_login_at` | timestamp nullable | Terakhir login | | `created_at` | timestamp | | | `updated_at` | timestamp | | ### `service_tokens` | Kolom | Tipe | Keterangan | |-------|------|------------| | `id` | bigint PK | | | `name` | varchar | Nama token | | `service` | varchar | Nama service pemilik | | `token` | varchar UNIQUE | Token value (hashed) | | `abilities` | json | Scopes/abilities | | `expires_at` | timestamp nullable | | | `last_used_at` | timestamp nullable | | | `revoked_at` | timestamp nullable | | | `created_at` | timestamp | | --- ## Database: `databaselist_audit` (Audit Log) ### `audit_logs` | Kolom | Tipe | Keterangan | |-------|------|------------| | `id` | bigint PK | | | `actor` | varchar | Username atau service yang melakukan aksi | | `actor_type` | varchar | `user`, `api_token`, `service_token` | | `action` | varchar | Nama aksi (mis. `ldap.user.update`) | | `target_type` | varchar nullable | Resource yang diubah | | `target_id` | varchar nullable | ID resource | | `payload` | json nullable | Data sebelum/sesudah perubahan | | `ip_address` | varchar nullable | | | `created_at` | timestamp | | --- ## Migration ### Cara Menjalankan Migration Migration berjalan **otomatis saat container start** via `docker/entrypoint.sh`. Untuk manual: ```bash docker exec geonet-console php artisan migrate --force ``` ### Catatan Penting - Migration `project_search` DB membutuhkan koneksi ke `10.100.1.25` — jika tidak reachable, container tetap start tapi log warning muncul. - Jangan jalankan `migrate:fresh` di production. - OAuth keys di-generate otomatis dan disimpan di Docker volume `app_storage`. --- ## Akses Database (Lokal) ```bash # Masuk ke container PostgreSQL docker exec -it audit-postgres psql -U geonet_app -d databaselist_app # Dari server 10.100.1.24 ssh -m hmac-sha1 root@10.100.1.24 -p 22 docker exec -it audit-postgres psql -U geonet_app -d databaselist_app ``` --- ## SQL Server (Registry Read-Only) SQL Server di `10.100.1.25:1433` digunakan oleh geonet-console hanya untuk **membaca daftar database** (database registry). Tidak ada write ke SQL Server dari geonet-console. Driver: `pdo_sqlsrv` (terinstall di container via Dockerfile) --- ## Lihat Juga - `geonet-console/database/migrations/` — semua migration files - `geonet-console/config/database.php` — konfigurasi koneksi - `geonet-console/.env.example` — env vars database