Commit Graph

107 Commits

Author SHA1 Message Date
3cf656951d Merge remote-tracking branch 'origin/build/stg' into amalia/12-mei-26 2026-05-12 14:27:33 +08:00
7ca78ad39d chore: bump version to 0.1.6 2026-05-12 14:27:12 +08:00
18f719f551 Merge remote-tracking branch 'build/stg' into amalia/12-mei-26 2026-05-12 14:26:49 +08:00
fced7d4c1c feat: show isDummy flag on village detail and list pages 2026-05-12 14:10:29 +08:00
b39d1d5099 fix: update reset filters button style and remove filter icon 2026-05-12 11:47:48 +08:00
1831e757cd Merge pull request 'amalia/07-mei-26' (#19) from amalia/07-mei-26 into main
Reviewed-on: #19
2026-05-07 17:36:54 +08:00
f926ab2701 feat: add colored top border to stats cards 2026-05-07 12:21:08 +08:00
032386a549 feat: redesign login and splash screen with playful visual lift 2026-05-07 12:08:34 +08:00
5e44aa9021 chore: bump version to 0.1.6 2026-05-07 11:14:03 +08:00
273e4041e8 Merge branch 'amalia/05-mei-26' into stg 2026-05-07 11:13:13 +08:00
f469faf740 fix: add Secure flag to session cookies in production 2026-05-07 11:12:30 +08:00
f3c90ba290 chore: bump version to 0.1.4 2026-05-07 11:11:25 +08:00
d898671be9 Merge pull request 'amalia/05-mei-26' (#18) from amalia/05-mei-26 into main
Reviewed-on: #18
2026-05-05 17:28:45 +08:00
aea1cc1be2 chore: bump version to 0.1.5 2026-05-05 14:21:05 +08:00
77ccf4cf33 Merge remote-tracking branch 'build/stg' into stg 2026-05-05 14:19:46 +08:00
a50a9d6456 chore: bump version to 0.1.4 2026-05-05 13:56:39 +08:00
031180c6ec chore: bump version to 0.1.3 2026-05-05 12:44:29 +08:00
a73dcb1e89 refactor: simplify app status and response shape in API
Derive status from app.active flag instead of maintenance/bugs heuristic.
Remove version, minVersion, and maintenance from list/detail response
as these are fetched separately via the grid overview endpoint.
2026-05-05 12:43:36 +08:00
ef852842b4 feat: improve UI/UX consistency across all dashboard pages
Apply uniform design system across all routes and components:
- Consistent header pattern with gradient-text titles, dimmed subtitles
- Loader type="dots" replacing text-based loading states
- Icon + text empty/error states with Paper+glass containers
- Full STATUS_COLOR/STATUS_LABEL maps for all BugStatus values
- dayjs timestamps, Tooltip on action icons, size="sm" on badges/pagination
- Modals with overlayProps blur and gradient save buttons
- Replace left-border Papers with clean Stack headers
- Translate all remaining Indonesian UI strings to English
- New monitoring-themed SVG logo and redesigned splash screen
2026-05-05 12:42:41 +08:00
ee543a16ad Merge pull request 'amalia/30-apr-26' (#17) from amalia/30-apr-26 into main
Reviewed-on: #17
2026-04-30 17:27:11 +08:00
6cc86dafd8 Merge branch 'amalia/30-apr-26' into stg 2026-04-30 16:01:06 +08:00
87ffc4ac7d chore: bump version to 0.1.2 2026-04-30 15:21:28 +08:00
722bca8a61 refactor: replace global API_KEY with per-app clientApiKey
Remove global API_KEY env var and its validation in checkAuth.
Auth via x-api-key now exclusively uses clientApiKey per-app
validated inline on POST /api/bugs.
2026-04-30 15:16:54 +08:00
6124ee5bf6 fix: show today timestamp as single line on activity logs 2026-04-30 14:57:27 +08:00
40a5f38eaf feat: add clientApiKey per-app for mobile bug submission 2026-04-30 13:50:29 +08:00
4e9d5964ae feat: merge url_api & api_key to App, add application settings page 2026-04-30 11:28:25 +08:00
e2ad6f9313 Merge pull request 'amalia/29-apr-26' (#16) from amalia/29-apr-26 into main
Reviewed-on: #16
2026-04-29 17:40:58 +08:00
83e8becaa3 upd: mcp json 2026-04-29 17:39:43 +08:00
73849304ae Merge branch 'stg' of https://github.com/bipprojectbali/monitoring-app into stg 2026-04-29 17:26:48 +08:00
6258c580a8 Merge branch 'amalia/29-apr-26' into stg 2026-04-29 17:24:52 +08:00
292e338a39 chore: bump version to 0.1.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 17:12:18 +08:00
90280fcac7 chore: bump version to 0.1.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 16:51:05 +08:00
a2c7be7cfa chore: bump version to 0.1.1 2026-04-29 16:38:19 +08:00
f44a8216bf fix: jalankan prisma migrate deploy otomatis jika ada pending migrations
Sebelumnya pipeline dibatalkan saat ada pending migrations.
Sekarang langsung deploy migrations lalu lanjut ke step berikutnya.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 16:26:35 +08:00
7609204a13 feat: tambah deploy pipeline tool di MCP deploy-stg
Tool baru `deploy` menjalankan full pipeline:
1. Cek pending migrations → batalkan jika ada
2. Version bump package.json ke tag baru
3. Commit + push ke build/stg
4. Trigger publish.yml → polling hingga selesai
5. Trigger re-pull.yml → polling hingga selesai
6. Cek version di STG_URL vs local untuk konfirmasi

Env baru: STG_URL (staging app URL), VERSION_PATH (default /api/system/version)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 16:12:22 +08:00
d3a4f97d0e feat: tambah MCP server deploy-stg untuk trigger GitHub workflow
- scripts/mcp-deploy.ts: MCP server dengan 2 tool:
  - publish: trigger publish.yml (build & push image stg)
  - repull: trigger re-pull.yml (redeploy stack di Portainer)
- .mcp.json: registrasi server dengan env GH_TOKEN, STACK_NAME, BASE_URL

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 16:01:16 +08:00
5050835d81 upd: tambah notifikasi success/error saat simpan Settings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 15:54:38 +08:00
d17b49cf8f upd: gabungkan Settings menjadi 1 form dengan tombol Simpan Semua
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 15:51:51 +08:00
8bcb30a85b feat: tambah API Key Desa Plus ke Settings panel dan proxy
- Tambah kolom API_KEY_DESA_PLUS di CONFIG_DEFINITIONS (ditampilkan sebagai password field)
- Proxy otomatis menyertakan X-API-Key header jika API key sudah dikonfigurasi

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 15:51:09 +08:00
ccc43e0c96 feat: runtime config via DB — ganti VITE_URL_API_DESA_PLUS dengan proxy
- Tambah model AppConfig (key-value) ke schema + migration
- Tambah GET/PUT /api/admin/config (DEVELOPER only)
- Tambah proxy /api/proxy/desa-plus/* yang baca URL dari DB
- Hapus VITE_URL_API_DESA_PLUS dari frontend, ganti semua URL desa-plus ke relative proxy path
- Aktifkan Settings tab di /dev dengan UI untuk set URL_API_DESA_PLUS

URL desa-plus kini bisa diubah via /dev → Settings tanpa rebuild image.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 15:47:21 +08:00
Amalia
21e2923c02 Merge pull request #1 from bipprojectbali/amalia/29-apr-26
Amalia/29 apr 26
2026-04-29 14:00:13 +08:00
b63117694b feat: add /api/system/version endpoint with changelog
Mengembalikan versi aplikasi, git commit hash, branch aktif, dan 20 commit terakhir untuk memverifikasi apakah staging/production sudah terupdate.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 13:56:23 +08:00
dbbe53584c upd: sync compose.yml and .env.example with all env vars in env.ts
Add missing required vars: API_KEY, MINIO_*, and optional REDIS_URL, BUN_PUBLIC_BASE_URL

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 12:01:44 +08:00
06794524fd feat: block inactive users from login and fix activity log on dev operators
- Block inactive users on email/password login (403)
- Block inactive users on Google OAuth (redirect to account_disabled)
- Auto-logout inactive users on session check (deleteMany sessions)
- Delete sessions when user is deactivated via PATCH /api/operators/:id
- Add account_disabled error message on login page
- Show inactive indicator on users table with reactivate button
- Add createSystemLog calls to /api/admin/users role and activate endpoints

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 11:58:31 +08:00
73aa9729b8 upd: remove Settings menu item from DashboardLayout user menu
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 11:39:13 +08:00
7c5a491ba9 upd: update role management descriptions and add USER role card
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 11:33:39 +08:00
3c6fac1943 feat: redesign /logs page with table UI and date range filter
- Replace timeline view with table layout (Time, Operator, Type, Message)
- Add date range filter using @mantine/dates DatePickerInput
- Add SegmentedControl for log type filter
- Disable App Logs and Settings menu on /dev
- Remove Activity Logs menu from /dev (moved to /logs)
- Add dateFrom/dateTo query params to /api/logs backend
- Import @mantine/dates/styles.css to fix datepicker styling

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 11:27:05 +08:00
6b6e3f3430 Merge pull request 'amalia/28-apr-26' (#15) from amalia/28-apr-26 into main
Reviewed-on: #15
2026-04-28 17:37:18 +08:00
b03f267743 upd: routing dev 2026-04-28 17:34:45 +08:00
94724a5081 feat: add Google OAuth login with USER role and pending approval flow
- Add GET /api/auth/google and GET /api/auth/callback/google routes with CSRF state protection and account linking via googleId
- Add getPublicOrigin() for dynamic redirect_uri (supports reverse proxy via X-Forwarded-Proto)
- Add USER role to schema (default for new Google sign-ins), make password optional, add googleId and image fields
- Role-based redirect after login: USER → /profile, ADMIN/DEVELOPER → /dashboard
- Profile page shows pending approval alert for USER role
- Dashboard redirects USER role back to profile
- Login page shows specific error messages per OAuth error code

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 15:06:13 +08:00