Budi Setiawan
43cdba7e9b
feat(storage): migrasi avatar ke QNAP QuObjects S3 (OSS), hapus NFS bind mount
3 weeks ago
Budi Setiawan
5349a48853
feat(storage): pindah app_storage ke NAS QNAP via NFS mount, avatar simpan file fisik bukan base64
3 weeks ago
Budi Setiawan
d500db95b3
feat(api): PUT /me/avatar simpan foto profil sebagai base64 di ldap_user_meta
3 weeks ago
Budi Setiawan
e8f1cf57fd
fix(api): pindah apiForgotPassword ke Api\V1\AuthController yang benar (bug: wrong namespace)
3 weeks ago
Budi Setiawan
861540d626
feat(api): tambah POST /api/v1/auth/forgot-password endpoint
3 weeks ago
Budi Setiawan
835954812c
feat(api): tambah PUT /me, POST /me/password, POST /me/test-email
3 weeks ago
Budi Setiawan
ee89641250
feat(backend): perluas GET /me tambah display_name, email, groups, phone, domain
3 weeks ago
Budi Setiawan
8f72e74ec1
feat: CORS my.gisportal.id + token refresh endpoint untuk FE PWA
...
- nginx/geonet-console.conf: tambah CORS header /api/ untuk my.gisportal.id
- routes/api.php: POST /auth/refresh (throttle 30/menit)
- AuthController: method refresh() validate JWT lama, issue JWT baru
- LdapJwtService: expose groups di return validate()
- docapi: tambah refresh-token.md + update index.md
3 weeks ago
Budi Setiawan
39fe810cba
docs: buat struktur docapi AI-Friendly untuk geonet-console
...
- README.md, index.md, authentication.md, common-response.md, common-error.md, integration-guide.md
- services/auth/README.md + login.md
- services/service-tokens/README.md + create, show, list, revoke, regenerate, delete, by-service, active, expired
- services/databases/README.md
- services/ldap/README.md
- services/project-search/README.md
Dokumentasi mencakup: business rule, contoh request/response, sequence flow,
audit log, error guide, retry policy, SDK cURL/Python/Laravel, dampak ke GeoNetAgent.
3 weeks ago
Budi Setiawan
f595364deb
docs: update perintah.md sync log - AgentTokenSyncService Opsi C
3 weeks ago
Budi Setiawan
dd7b3e6cec
feat: Service Tokens sync to geonetagent_dev.agent_tokens (Opsi C)
...
- Add AgentTokenSyncService: push create/revoke/delete to geonetagent_dev.agent_tokens
- Update ServiceTokenService: inject AgentTokenSyncService, sync on create/revoke/delete
- Add database connection 'geonetagent' to config/database.php
- Add GEONETAGENT_DB_* env vars to .env.example (username kosong = sync disabled)
- Update context-index.md: document sync architecture and flow
- Grant DELETE on agent_tokens to geonet_portal (applied on 10.100.1.25)
- Set geonet_portal password on DB server (stored in server .env only)
Alur: UI Create Token -> INSERT service_tokens (audit) + INSERT agent_tokens (validasi collector)
Fallback: jika GEONETAGENT_DB_USERNAME kosong, sync di-skip, geonet-console tetap jalan normal.
3 weeks ago
Budi Setiawan
ece7b314a4
feat: implement Service Tokens for microservice Bearer token management
...
- Add migration: create service_tokens table (UUID PK, name, service, token_prefix, token_hash, is_active, expires_at, created_by, last_used_at)
- Add Model: ServiceToken with generate(), verify(), active/expired scopes
- Add Service: ServiceTokenService with full CRUD + audit log integration
- Add API Controller: GET/POST/DELETE /api/v1/service-tokens/* (9 endpoints)
- Update ApiClientController: add web actions (store/revoke/regenerate/delete)
- Update routes/api.php: register service token REST endpoints
- Update routes/web.php: register service token web routes
- Update api-clients/index.blade.php: add Create form + Service Tokens table with Regenerate/Revoke/Delete actions
- Update context-index.md: document Service Tokens architecture, schema, endpoints
- Update perintah.md: sync log
Zero impact on existing GeoNetAgent agents (separate geonetagent_dev database).
3 weeks ago
Budi Setiawan
e294b59a47
Initial commit: GeoNetAgent, LDAPWeb, server-audit, server-connection
...
Exclude ops, support, support-api, and workspace file via .gitignore.
Co-authored-by: Cursor <cursoragent@cursor.com>
4 weeks ago