58 lines
2.8 KiB
Markdown
58 lines
2.8 KiB
Markdown
# 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
|
|
|
|
## DevOps Scripts Pattern (Standardized Feb 2026)
|
|
All Spring Boot microservices follow this standardized devops-scripts structure:
|
|
```
|
|
devops-scripts/
|
|
├── build-and-push.sh # Build Docker image, push to registry
|
|
├── deploy.sh # Deploy with docker-compose or docker run
|
|
├── docker/
|
|
│ └── .env.example # Service-specific environment template
|
|
└── ansible/ # Ansible playbooks (if applicable)
|
|
```
|
|
|
|
**Key Features:**
|
|
- Auto-detect version from `pom.xml` using `grep -oP '<version>\K[^<]+' pom.xml | head -1`
|
|
- Registry authentication with REGISTRY_USERNAME/REGISTRY_PASSWORD
|
|
- Tag both `$VERSION` and `latest` (if version != latest)
|
|
- Deploy script auto-detects `docker-compose.prod.yml` or `docker-compose.yml`
|
|
- Comprehensive .env.example with all service-specific variables
|
|
- Health checks and status reporting
|
|
|
|
**When Creating New Microservice:**
|
|
1. Copy devops-scripts/ from hiveops-incident, hiveops-auth, or hiveops-mgmt
|
|
2. Update service name in build-and-push.sh and deploy.sh
|
|
3. Customize docker/.env.example with service-specific variables
|
|
4. Create docker-compose.prod.yml with external PostgreSQL
|
|
5. Ensure Dockerfile follows multi-stage Alpine pattern
|
|
|
|
**Standard Ports:**
|
|
- hiveops-mgmt: 8080
|
|
- hiveops-incident: 8081
|
|
- hiveops-auth: 8082
|
|
- (next service: 8083, etc.)
|