Commit Graph
327 Commits
Author SHA1 Message Date
MythEclipse 09602b3fe0 refactor(web): add value formatter to ChartCard component
Introduce a `valueFormatter` prop to the `ChartCard` component to allow
customized data presentation in tooltips. This enables more readable
units for specific metrics, such as converting bytes to MiB or
seconds to milliseconds.
2026-06-08 02:03:23 +07:00
MythEclipse b0dd1f289a chore(api): update uploader base URL domain
Update the default `uploaderBaseUrl` from `.tech` to `.my.id` due to the
previous domain being decommissioned.
2026-06-08 01:53:02 +07:00
MythEclipse 64dcfa70d8 feat(web): add client-side telemetry for API calls, errors, and scan operations 2026-06-08 01:23:51 +07:00
MythEclipse 89dcbe8fa2 feat(ml-service): add detailed ML observability metrics for inference, predictions, and errors 2026-06-08 01:21:47 +07:00
MythEclipse c45f771f24 feat(telemetry): add comprehensive Prometheus metrics and expand dashboard with system, API, ML, and Node.js runtime sections 2026-06-08 01:20:42 +07:00
MythEclipse b7a3c530a7 refactor(web): replace custom telemetry API with direct Prometheus queries
Rewrite the telemetry page logic to bypass the custom proxy API in
favor of direct Prometheus queries.

- Implement `queryRange` and `queryInstant` helpers for Prometheus API
- Replace `TelemetryAPI` client with direct fetch calls to Prometheus
- Update data fetching logic to use standard Prometheus query parameters
- Simplify state management and data transformation for charts
2026-06-08 01:07:13 +07:00
Asep Haryana SaputraandGitHub ee3047a3a5 Delete .github/workflows/telemetry-ci-cd.yml 2026-06-08 01:00:17 +07:00
MythEclipse 26f99fa4d4 feat(web): compute memory usage client-side and add app-specific metrics to telemetry dashboard 2026-06-08 00:54:59 +07:00
MythEclipse f5ac0a8795 feat(web): implement telemetry dashboard with data visualization
Add a comprehensive telemetry dashboard page featuring real-time
system statistics and metric visualization using recharts.

- Integrate recharts for area and bar chart rendering
- Implement TelemetryAPI client for stats, discovery, and chart data
- Add dashboard UI with stat cards and responsive charts
- Remove legacy nginx sub_filter proxy configuration in favor of
  direct API communication to telemetry.imrnes.team
2026-06-08 00:31:30 +07:00
seriouselly 56139388d3 feat(auth): implement full logout system and protect application routes
- Add LogoutProses function in app.tsx to destroy session via apiClient.logout() and clear user state
- Apply <AuthGuard> to private routes (/dashboard, /scan, /expert/reviews, etc.) to prevent unauthorized access
- Update the "Logout" button design in Navbar and MobileNav with a red accent and LogOut icon
- Fix vulnerability allowing direct URL access to the dashboard by bypassing login
2026-06-08 00:20:00 +07:00
MythEclipse 65d0040c0d fix(web): escape quotes in sub_filter for fetch calls
Update the sub_filter pattern for fetch requests to include escaped
double quotes. This ensures that path rewriting correctly handles
JavaScript fetch calls that use double-quoted strings, preventing
broken resource paths in the telemetry dashboard.
2026-06-08 00:11:02 +07:00
MythEclipse 4589766f27 build(web): switch to alpine-based nginx runner for sub_filter support
Migrate the web runner stage from the official nginx alpine image to a
standard alpine image with the nginx package installed. This ensures
the presence of the `http_sub_module` required for path rewriting in
the telemetry proxy configuration.

- Replace `nginx:1.27-alpine` with `alpine:3.20` and `apk add nginx`
- Update Nginx configuration file path to `/etc/nginx/http.d/default.conf`
- Update web asset root directory to `/var/lib/nginx/html`
- Add `X-Forwarded-For` and `X-Forwarded-Proto` headers to proxy locations
2026-06-08 00:00:33 +07:00
MythEclipse 4dde9d8408 refactor(web): implement nginx reverse proxy for telemetry dashboard
Transition telemetry dashboard integration from an external URL approach to a local reverse proxy via Nginx. This simplifies client-side connectivity by routing all telemetry requests through the existing web server's domain.

- Configure Nginx to proxy `/telemetry/` sub-paths to the internal telemetry service
- Implement `sub_filter` in Nginx to rewrite root-relative paths for the SPA
- Remove `VITE_TELEMETRY_URL` build arguments and environment variable dependencies
- Simplify `TelemetryPage` to use a relative `/telemetry` base path
- Clean up deployment workflows and Dockerfile by removing unused telemetry build args
2026-06-07 23:44:57 +07:00
MythEclipse 9602a64e18 feat(web): externalize telemetry URL via environment variables
Replace the hardcoded Nginx proxy configuration with a dynamic environment variable approach. This allows the telemetry dashboard to be loaded via a public URL instead of relying on a local Tailscale proxy.

- Add `VITE_TELEMETRY_URL` build argument to Dockerfile
- Pass `VITE_TELEMETRY_URL` through GitHub Actions deployment workflow
- Remove `/telemetry/` location block from nginx.conf
- Update `TelemetryPage` to use the new environment variable and improve iframe loading state management
2026-06-07 23:31:15 +07:00
MythEclipse cd93d1a06d feat(web): add telemetry dashboard page with nginx proxy and nav integration 2026-06-07 23:21:40 +07:00
MythEclipse 0d458d9437 chore(telemetry): update subproject to latest commit 2026-06-07 23:04:22 +07:00
MythEclipse c0533f3ed9 feat(infra): add deployment architecture docs and remove unused DNS secrets from telemetry workflow 2026-06-07 23:02:35 +07:00
MythEclipse 2ade67170c feat(ci): add node-exporter cleanup and health check to deploy workflow 2026-06-07 22:59:44 +07:00
MythEclipse 204dd0311b feat(ci): add telemetry CI/CD workflow for build and deploy to Orange VPS 2026-06-07 22:58:43 +07:00
MythEclipse 420dc4725b feat: add Node Exporter service for system metrics scraping in docker-compose 2026-06-07 22:55:03 +07:00
MythEclipse b3494e2a9b fix: force-remove containers before docker compose up 2026-06-07 22:30:45 +07:00
MythEclipse 02fbb56492 fix: docker compose down before up to clear container name conflicts 2026-06-07 22:27:48 +07:00
MythEclipse ff5e5fd091 fix: add --force-recreate to docker compose up in deploy 2026-06-07 22:24:49 +07:00
MythEclipseandClaude Opus 4.8 0fc305f21b fix: create telemetry-net on deploy to fix docker compose up
App services reference telemetry-net as external, but telemetry runs
on a separate VPS. Creating the network as empty on the app VPS so
docker compose up doesn't fail.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 22:21:31 +07:00
MythEclipseandClaude Opus 4.8 521aaa184e fix: handle local VPS changes during deploy by using git reset --hard instead of pull
Switches from git pull --ff-only to git fetch + git reset --hard
origin/main to avoid failing when VPS has uncommitted local changes
to tracked files (apps/ml-service/Dockerfile, docker-compose.yml).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 22:18:17 +07:00
MythEclipseandClaude Opus 4.8 685cf0955b fix: sync bun.lock with package.json changes
The lockfile was out of sync causing Docker builds to fail with
'lockfile had changes, but lockfile is frozen' on CI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 22:14:14 +07:00
Asep Haryana SaputraandGitHub 791273ce35 Merge pull request #24 from MythEclipse/main
feat/metrics
2026-06-07 21:44:41 +07:00
Asep Haryana SaputraandGitHub 1106cbf62f Merge branch 'ATLAS-PJK-GM007:main' into main 2026-06-07 21:43:28 +07:00
MythEclipse 64567986e1 feat: update ML service Dockerfile to archlinux base and add port bindings for api/ml metrics 2026-06-07 21:40:09 +07:00
MythEclipse 6933e5512f docs(telemetry): separate production cross-VPS and local dev architecture docs 2026-06-07 21:15:32 +07:00
MythEclipse 7e0e052200 docs: clarify telemetry stack local-dev vs production separation in docker-compose.telemetry.yml 2026-06-07 21:13:15 +07:00
MythEclipse 36216601e3 docs: add telemetry stack documentation to CLAUDE.md, METRICS.md, and README.md 2026-06-07 21:00:22 +07:00
MythEclipse 2c41b80f97 feat: expose /metrics endpoint and add telemetry ClickHouse credentials 2026-06-07 20:57:45 +07:00
Selly SupriyatinandGitHub c1fc244c73 Merge pull request #23 from ATLAS-PJK-GM007/selly/frontend
feat(ui): add review menu to mobile nav and update card styling
2026-06-07 18:23:27 +07:00
seriouselly 9a05c380cc feat(ui): add review menu to mobile nav and update card styling
- mobile-nav: add 'review' path to NAV_ITEMS array to ensure the menu is accessible on mobile screens.
- scan-page: update background color and border radius of the guidelines card in the right sidebar.
2026-06-07 18:22:14 +07:00
MythEclipseandClaude Opus 4.8 0da578c546 chore: add bun.lock, docker-compose telemetry network, and METRICS.md documentation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 18:14:35 +07:00
MythEclipse 5a47b0c658 feat(web): add client-side telemetry with Web Vitals and dev metrics endpoint 2026-06-07 18:13:11 +07:00
MythEclipse eefb16ad1d feat(ml-service): add Prometheus metrics and request telemetry instrumentation 2026-06-07 18:12:32 +07:00
MythEclipse ede1c480be feat(api): add Prometheus metrics and OpenTelemetry instrumentation for HTTP, auth, classifications, and diagnoses 2026-06-07 18:12:32 +07:00
MythEclipse 3b7ccad619 chore: add telemetry submodule and ignore .claude/ directory 2026-06-07 18:12:32 +07:00
Asep Haryana SaputraandGitHub 10c544a533 Merge pull request #22 from MythEclipse/main
traefik
2026-06-07 16:10:40 +07:00
Asep Haryana SaputraandGitHub 66fd725e01 Merge branch 'ATLAS-PJK-GM007:main' into main 2026-06-07 16:10:09 +07:00
Selly SupriyatinandGitHub e53be398ec Merge pull request #21 from ATLAS-PJK-GM007/selly/frontend
fix(build): resolve missing module error for App component
2026-06-06 03:12:42 +07:00
seriouselly 68258074a6 fix(build): resolve missing module error for App component
- Update import path and filename for the App component to fix case sensitivity build issues on Linux environments.
2026-06-06 03:10:37 +07:00
Selly SupriyatinandGitHub 43da99ada1 Merge pull request #20 from ATLAS-PJK-GM007/selly/frontend
Selly/frontend
2026-06-06 03:04:50 +07:00
seriouselly 450b2f9d97 refactor(ui): fix layout issues and temporarily disable auth features
- app & navbar: comment out login, register, and logout features.
- scan-page: align info cards vertically and reduce upload area padding.
- mobile-nav: implement React Portal to fix overlapping menu issue.
2026-06-06 03:01:07 +07:00
seriouselly 9f9098b91b feat(mobile-nav): enhance responsive sidebar with user info and auth actions
- Remove userRole prop, read user directly from auth store
- Add user info section (avatar, name, email) when logged in
- Add Masuk/Daftar buttons at bottom when unauthenticated
- Add Keluar button with loading state when authenticated
- Add tagline under logo in sidebar header
- Add backdrop blur effect for better visual depth
- Use flex-col layout for consistent spacing at any height
2026-06-06 02:15:43 +07:00
seriouselly 5129bbe958 feat: harmonize page headers to match Scan Tanaman title style 2026-06-06 01:37:38 +07:00
seriouselly 1b31ea31a2 refactor(navbar): standardize scan navigation and cleanup logout
- Rename Scan to Scan Tanaman for Indonesian consistency
- Remove logout button from navbar (can be accessed elsewhere)
- Streamline navigation UI
2026-06-06 00:11:55 +07:00
seriouselly 80fa75130a feat(scan-page): unauthenticated upload with scanner area detection
- Implement responsive drag-and-drop upload interface
- Add dynamic scanner frame overlay with image dimensions
- Enable unauthenticated uploads via anonymous user system
- Show real-time scan area guidance with corner markers
- Maintain clean separation: select → preview → analyze
2026-06-06 00:06:36 +07:00