# HiveOps Browser Project Memory ## Architecture - **Browser**: Electron app at `/source/hiveops-src/hiveops-browser` - **Mgmt Server**: Spring Boot at `/source/hiveops-src/hiveops-mgmt` - IPC pattern: kebab-case channels (`get-config`), camelCase in preload (`getConfig`) - API client returns `{ success, data }` or `{ success, error, status, code }` - DTOs use Lombok `@Data @Builder @NoArgsConstructor @AllArgsConstructor` - Services use `@RequiredArgsConstructor @Slf4j`, `@Transactional(readOnly=true)` for reads - Controllers use `@RestController @RequestMapping("/api/v1/...")` with OpenAPI annotations - Security: 3 filter chains (API@Order1, Portal@Order2, Default@Order3) - Flyway migrations in `db/migration/`, H2 dev data in `db/h2/data.sql` (MERGE INTO syntax) - H2 uses `CHAR(10)` for newlines (no `E'...\n...'` like PostgreSQL) ## Key Files - `src/main/main.js` - Main process, IPC handlers, window management (~1400 lines) - `src/main/api-client.js` - Axios-based API client - `src/main/preload.js` - contextBridge IPC exposure - Window pattern: check if exists, focus; else create BrowserWindow with preload ## Legal Content (Added Feb 2026) - Legal API: `GET /api/v1/legal` and `GET /api/v1/legal/{section}` (public, no auth) - 4 settings in `global_settings`: `legal.copyright`, `legal.license`, `legal.usagePolicy`, `legal.disclaimers` - About page has tabbed layout: Info, License, Usage Policy, Disclaimers - About window size: 650x700