Browse Source

docs: tambah Gitea Integration ke backlog (OAuth2, Issues, Repo Explorer)

master
Budi Setiawan 3 weeks ago
parent
commit
015b1473ef
  1. 100
      backlog.md

100
backlog.md

@ -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`)

Loading…
Cancel
Save