|
|
|
@ -82,24 +82,39 @@ |
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
--- |
|
|
|
|
|
|
|
|
|
|
|
## 🔴 Fase 5 — Mail UI & Monitoring *(Butuh Mailcow API)* |
|
|
|
## 🔴 Fase 5 — Gitea Integration *(Tidak ada dependency — bisa mulai kapanpun)* |
|
|
|
|
|
|
|
> Gitea v1.16.5 sudah running di git.gisportal.id (10.100.1.41:3000) dengan REST API aktif. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| # | Tugas | Estimasi | |
|
|
|
|
|
|
|
|---|---|---| |
|
|
|
|
|
|
|
| **16** | **Setup OAuth2 Gitea** — daftarkan super apps sebagai OAuth client di Gitea | 0.5 hari | |
|
|
|
|
|
|
|
| **17** | **`src/lib/gitea-client.ts`** — API client (issues, repos, user) dengan token/OAuth | 1 hari | |
|
|
|
|
|
|
|
| **18** | **FE: Gitea Issues** — list issues per repo, form buat issue, detail+komentar | 2-3 hari | |
|
|
|
|
|
|
|
| **19** | **FE: Repo Explorer** — list repo milik user, branch, commit history, releases | 2-3 hari | |
|
|
|
|
|
|
|
| **20** | **Profile: Gitea Token** — simpan personal access token di profile (fallback jika tidak pakai OAuth) | 0.5 hari | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 🔴 Fase 6 — Mail UI & Monitoring *(Butuh Mailcow API)* |
|
|
|
| # | Tugas | Estimasi | |
|
|
|
| # | Tugas | Estimasi | |
|
|
|
|---|---|---| |
|
|
|
|---|---|---| |
|
|
|
| **16** | **Mail UI** — Inbox, Sent, Draft, Contacts, Calendar, Tasks, Rules | 5-7 hari | |
|
|
|
| **21** | **Mail UI** — Inbox, Sent, Draft, Contacts, Calendar, Tasks, Rules | 5-7 hari | |
|
|
|
| **17** | **Monitoring alert detail** dialog (standar UI ADR) | 1 hari | |
|
|
|
| **22** | **Monitoring alert detail** dialog (standar UI ADR) | 1 hari | |
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
--- |
|
|
|
|
|
|
|
|
|
|
|
## 🔴 Fase 6 — Infrastruktur *(Bisa paralel kapanpun)* |
|
|
|
## 🔴 Fase 7 — Infrastruktur *(Bisa paralel kapanpun)* |
|
|
|
| # | Tugas | Estimasi | |
|
|
|
| # | Tugas | Estimasi | |
|
|
|
|---|---|---| |
|
|
|
|---|---|---| |
|
|
|
| **18** | **Mikrotik** — PPP login via LDAP | 1 hari | |
|
|
|
| **23** | **Mikrotik** — PPP login via LDAP | 1 hari | |
|
|
|
| **19** | **Windows Server AD** — LDAP SSO + SAML | 2-3 hari | |
|
|
|
| **24** | **Windows Server AD** — LDAP SSO + SAML | 2-3 hari | |
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
--- |
|
|
|
|
|
|
|
|
|
|
|
> **Urutan pengerjaan**: |
|
|
|
> **Urutan pengerjaan**: |
|
|
|
> **① Content/Home Feed** → **② Mailcow** → **③ Zammad+Ticketing** → **④ Push Notif** → **⑤ Mail UI** → **⑥ Infra** |
|
|
|
> **① Content/Home Feed** → **② Mailcow** → **③ Zammad+Ticketing** → **④ Push Notif** → **⑤ Gitea** → **⑥ Mail UI** → **⑦ Infra** |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
> *(Gitea Fase 5 bisa dikerjakan paralel dengan Fase 2-4 karena tidak ada dependency)* |
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
--- |
|
|
|
# ADR — Standar Dialog Preview / Edit (UI Pattern) |
|
|
|
# ADR — Standar Dialog Preview / Edit (UI Pattern) |
|
|
|
@ -249,6 +264,77 @@ Push Service API (FastAPI, port 17000) |
|
|
|
- 📢 **Broadcast IT**: pengumuman, maintenance, downtime |
|
|
|
- 📢 **Broadcast IT**: pengumuman, maintenance, downtime |
|
|
|
- *(Future)* 📊 Monitoring: alert Zabbix |
|
|
|
- *(Future)* 📊 Monitoring: alert Zabbix |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
# Gitea Integration (`git.gisportal.id`) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Status |
|
|
|
|
|
|
|
- Gitea v1.16.5 sudah running di `10.100.1.41:3000` → domain `git.gisportal.id` |
|
|
|
|
|
|
|
- REST API aktif (`/api/v1/`) — tidak perlu install apapun, langsung integrasi |
|
|
|
|
|
|
|
- Swagger UI tersedia di `git.gisportal.id/api/swagger` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Auth Strategy |
|
|
|
|
|
|
|
**Pilihan: OAuth2** (rekomendasi) |
|
|
|
|
|
|
|
- Daftarkan super apps sebagai OAuth Application di Gitea (Settings → Applications → OAuth2) |
|
|
|
|
|
|
|
- Callback URL: `https://my.gisportal.id/auth/gitea/callback` |
|
|
|
|
|
|
|
- Flow: user klik "Hubungkan Gitea" → redirect OAuth → dapat access token → simpan di session/DB |
|
|
|
|
|
|
|
- **Fallback**: user input Personal Access Token manual di halaman Profile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## API Endpoint yang Digunakan |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
Auth: |
|
|
|
|
|
|
|
GET /user — info user yang login |
|
|
|
|
|
|
|
GET /users/{username} — profil user |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Issues: |
|
|
|
|
|
|
|
GET /repos/{owner}/{repo}/issues — list issues (filter: state, label, assignee) |
|
|
|
|
|
|
|
POST /repos/{owner}/{repo}/issues — buat issue baru |
|
|
|
|
|
|
|
GET /repos/{owner}/{repo}/issues/{index} — detail issue |
|
|
|
|
|
|
|
PATCH /repos/{owner}/{repo}/issues/{index} — update (close, assign, label) |
|
|
|
|
|
|
|
GET /repos/{owner}/{repo}/issues/{index}/comments — komentar |
|
|
|
|
|
|
|
POST /repos/{owner}/{repo}/issues/{index}/comments — tambah komentar |
|
|
|
|
|
|
|
GET /repos/{owner}/{repo}/labels — label/kategori tersedia |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Repositories: |
|
|
|
|
|
|
|
GET /user/repos — semua repo milik user |
|
|
|
|
|
|
|
GET /repos/{owner}/{repo} — detail repo (stars, forks, size, last push) |
|
|
|
|
|
|
|
GET /repos/{owner}/{repo}/branches — daftar branch |
|
|
|
|
|
|
|
GET /repos/{owner}/{repo}/commits — commit history |
|
|
|
|
|
|
|
GET /repos/{owner}/{repo}/releases — releases / tags |
|
|
|
|
|
|
|
GET /repos/search?q=&topic= — search repo |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## FE Tasks |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Setup & Auth |
|
|
|
|
|
|
|
- [ ] Daftarkan OAuth2 App di Gitea admin panel |
|
|
|
|
|
|
|
- [ ] `src/lib/gitea-client.ts` — wrapper API dengan Bearer token |
|
|
|
|
|
|
|
- [ ] Route `GET /api/gitea/callback` — handle OAuth callback, simpan token |
|
|
|
|
|
|
|
- [ ] Profile page: tombol "Hubungkan Akun Gitea" + status connected |
|
|
|
|
|
|
|
- [ ] Tambah `gitea_token` ke user session/store |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Halaman Issues (`/gitea/issues`) |
|
|
|
|
|
|
|
- [ ] List issues dari semua repo yang diikuti user (filter: open/closed, label, repo) |
|
|
|
|
|
|
|
- [ ] Form buat issue — pilih repo, judul, body (Markdown), label, assignee |
|
|
|
|
|
|
|
- [ ] Detail issue — info lengkap + thread komentar + tombol close/reopen |
|
|
|
|
|
|
|
- [ ] Badge count issue open di sidebar/navbar |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Halaman Repo Explorer (`/gitea/repos`) |
|
|
|
|
|
|
|
- [ ] Grid/list repo milik user + starred repos |
|
|
|
|
|
|
|
- [ ] Detail repo — README, branch list, commit history, releases |
|
|
|
|
|
|
|
- [ ] Link ke Gitea web untuk operasi lebih lanjut (clone, PR, dll) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Permission (tambah ke group_permissions) |
|
|
|
|
|
|
|
| Permission | Fungsi | |
|
|
|
|
|
|
|
|---|---| |
|
|
|
|
|
|
|
| `gitea.view` | Lihat issue & repo (semua user yang punya akun Gitea) | |
|
|
|
|
|
|
|
| `gitea.create_issue` | Buat issue baru | |
|
|
|
|
|
|
|
| `gitea.manage` | Admin Gitea (close issue, assign, label) | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Catatan |
|
|
|
|
|
|
|
- Issue dari super apps dan Gitea web **sinkron sempurna** — data disimpan di Gitea, super apps hanya read/write via API |
|
|
|
|
|
|
|
- Tidak perlu database tambahan di super apps untuk Gitea — semua state di Gitea |
|
|
|
|
|
|
|
- Bisa jadi alternatif/pelengkap Zammad untuk bug tracking development (Zammad = IT helpdesk, Gitea = dev issues) |
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
--- |
|
|
|
# Content / Posting Microservice (`geonet-content`) |
|
|
|
# Content / Posting Microservice (`geonet-content`) |
|
|
|
|
|
|
|
|
|
|
|
|