# Project Rename Plan: atm-incident → hiveops-incident ## Overview Rename the entire project from "atm-incident" to "hiveops-incident" across 121 files, including Java package structure, database name, Docker infrastructure, and documentation. ## Scope - **Java Package**: `com.atm.incident` → `com.hiveops.incident` (93 files) - **Database**: `atm_incident` → `hiveops_incident` (15 files) - **Docker/Containers**: All containers, images, and networks (25 files) - **Documentation**: All paths and references (16 files) ## Implementation Steps ### 1. Pre-Flight Validation - Verify clean git state - Create safety branch: `rename-to-hiveops-incident` - Stop all running Docker services ### 2. Backend Maven Configuration **Files**: `backend/pom.xml` - Update `com.atm` → `com.hiveops` - Validate with `mvn validate` ### 3. Java Package Rename (Critical - Two-Step Process) **Step 3a: Update Package Content First** ```bash cd backend/src/main/java/com/atm/incident # Update package declarations in all 93 files find . -name "*.java" -exec sed -i 's/^package com\.atm\.incident/package com.hiveops.incident/g' {} \; # Update all imports find . -name "*.java" -exec sed -i 's/import com\.atm\.incident/import com.hiveops.incident/g' {} \; ``` **Step 3b: Rename Main Application Class** - Update class name in content: `AtmIncidentManagementApplication` → `HiveopsIncidentManagementApplication` - Rename file using `git mv` **Step 3c: Move Directory Structure** ```bash cd backend/src/main/java/com mkdir -p hiveops/incident git mv atm/incident/* hiveops/incident/ git rm -r atm/ ``` **Validation**: `mvn clean compile` must succeed ### 4. Backend Configuration Files **File**: `backend/src/main/resources/application.properties` - `spring.application.name`: `atm-incident-management` → `hiveops-incident-management` - `logging.level`: `com.atm.incident` → `com.hiveops.incident` - Database URL: `atm_incident` → `hiveops_incident` ### 5. Database Name Changes **Files**: All config files, scripts, and documentation ```bash # Docker compose files sed -i 's/atm_incident/hiveops_incident/g' docker-compose.yml docker-compose.prod.yml .env.example # DevOps scripts (5 files) find devops-scripts -name "*.sh" -exec sed -i 's/atm_incident/hiveops_incident/g' {} \; # Documentation (16 files) find docs -name "*.md" -exec sed -i 's/atm_incident/hiveops_incident/g' {} \; sed -i 's/atm_incident/hiveops_incident/g' README.md CLAUDE.md # SQL files sed -i 's/atm_incident/hiveops_incident/g' backend/src/main/resources/db/*.sql SAMPLE_DATA.sql ``` ### 6. Docker Infrastructure **Pattern**: `atm-incident-*` → `hiveops-incident-*` **Files**: `docker-compose.yml`, `docker-compose.prod.yml`, `.gitea/workflows/build-deploy.yml`, DevOps scripts ```bash # Docker compose sed -i 's/atm-incident-/hiveops-incident-/g' docker-compose.yml docker-compose.prod.yml # CI/CD pipeline sed -i 's/atm-incident-/hiveops-incident-/g' .gitea/workflows/build-deploy.yml # DevOps scripts (11 files) find devops-scripts -name "*.sh" -exec sed -i 's/atm-incident-/hiveops-incident-/g' {} \; find devops-scripts -name "*.sh" -exec sed -i 's/ATM Incident Management System/HiveOps Incident Management System/g' {} \; ``` **Validation**: `docker compose config` must validate ### 7. Frontend Configuration **Files**: `frontend/package.json`, `frontend/package-lock.json` ```bash sed -i 's/"name": "atm-incident-frontend"/"name": "hiveops-incident-frontend"/g' \ frontend/package.json frontend/package-lock.json ``` **Validation**: `npm install --dry-run` must succeed ### 8. Documentation Updates **Files**: All 16 markdown files in `docs/`, plus root documentation ```bash # Update deployment paths find docs -name "*.md" -exec sed -i 's|/opt/atm-incident|/opt/hiveops-incident|g' {} \; # Update project name find docs -name "*.md" -exec sed -i 's/atm-incident/hiveops-incident/g' {} \; find docs -name "*.md" -exec sed -i 's/ATM Incident Management/HiveOps Incident Management/g' {} \; # Update Java package references find docs -name "*.md" -exec sed -i 's/com\.atm\.incident/com.hiveops.incident/g' {} \; # Root docs sed -i 's/atm-incident/hiveops-incident/g' README.md sed -i 's/ATM Incident Management/HiveOps Incident Management/g' README.md sed -i 's/com\.atm\.incident/com.hiveops.incident/g' CLAUDE.md ``` ### 9. Comprehensive Validation **File Count Checks**: ```bash # Java files should be 93 find backend/src/main/java/com/hiveops/incident -name "*.java" | wc -l # Old path should not exist test ! -d backend/src/main/java/com/atm && echo "OK" ``` **No Old References** (should return 0 for each): ```bash grep -r "package com\.atm\.incident" backend/src --include="*.java" | wc -l grep -r "import com\.atm\.incident" backend/src --include="*.java" | wc -l grep -r "atm-incident-" . --exclude-dir=.git --exclude-dir=node_modules | wc -l ``` **Build Tests**: ```bash # Backend cd backend && mvn clean compile # Frontend cd frontend && npm install && npm run check # Docker compose syntax docker compose -f docker-compose.yml config > /dev/null docker compose -f docker-compose.prod.yml config > /dev/null ``` ### 10. Git Commits (6 Logical Commits) 1. **Java package structure** - Package rename, directory move, main class 2. **Configuration files** - Spring config, logging, database name 3. **Docker infrastructure** - Containers, networks, CI/CD 4. **DevOps scripts** - All shell scripts 5. **Documentation** - All markdown files 6. **Database schemas** - SQL files and sample data Each commit includes migration context and co-authorship tag. ### 11. Integration Testing **Local Development Test**: ```bash docker compose down -v docker compose build docker compose up -d sleep 30 docker compose ps # All should be "Up" curl http://localhost:8080/api/atms curl http://localhost:5173 docker exec hiveops-incident-db psql -U postgres -c "\l" | grep hiveops_incident ``` **API Compatibility Test**: ```bash # Test hiveops-agent integration curl -X POST http://localhost:8080/api/journal-events \ -H "Content-Type: application/json" \ -d '{"atmId": 1, "eventType": "CARD_READER_DETECTED", "eventDetails": "Test", "eventSource": "HIVEOPS_AGENT"}' ``` ## Critical Files 1. `backend/src/main/java/com/atm/incident/AtmIncidentManagementApplication.java` - Main class requiring rename 2. `backend/pom.xml` - Maven config (update before package changes) 3. `backend/src/main/resources/application.properties` - Spring configuration 4. `docker-compose.yml` - Development orchestration 5. `.gitea/workflows/build-deploy.yml` - CI/CD pipeline ## Database Migration Notes **For Existing Deployments**: Database rename required **Option 1: Rename Existing Database** (preserves data): ```sql SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'atm_incident' AND pid <> pg_backend_pid(); ALTER DATABASE atm_incident RENAME TO hiveops_incident; ``` **Option 2: Fresh Database** (clean start): ```bash ./devops-scripts/setup-database.sh # Already updated with new name ``` ## Risk Mitigation **Java Package Rename Risk**: Update content before moving files; use `git mv` to preserve history **Database Risk**: Rename instead of recreate; backup first **Rollback**: Git branch preserved; can revert commits or reset to previous state ## Success Criteria - [ ] All 93 Java files use `com.hiveops.incident` package - [ ] Zero references to `com.atm.incident` in codebase - [ ] All containers use `hiveops-incident-*` prefix - [ ] Database name is `hiveops_incident` everywhere - [ ] Backend compiles successfully (`mvn clean compile`) - [ ] Frontend builds without errors (`npm run check`) - [ ] Docker Compose starts all services - [ ] API endpoints respond correctly - [ ] hiveops-agent integration works ## Verification Commands After implementation, run: ```bash # Check for any remaining old references grep -r "com\.atm\.incident\|atm-incident\|atm_incident" . \ --exclude-dir={.git,node_modules,target} \ --include=\*.{java,properties,yml,yaml,json,sh,md} # Should return empty or only in docs/CLAUDE.md as historical reference ```