Comprehensive documentation gardening across the merged repo: - tailscale.md: fully rewritten with current ground truth. The netinfra pair now runs production Technitium with all knel.net records replicated. Both LAN IPs resolve knel.net device names and recurse externally. The old "NXDOMAIN / zone is stale" findings are replaced with the resolved state and current recommendations. - AGENTS.md: rewritten with Gitea-compatible clickable relative links to all key scripts and docs. Autonomous commit/push policy prominently documented. SSH user corrected to localuser. - README.md: directory table and docs table now use clickable links. - All .md cross-references converted to Gitea-renderable relative links. - Stale path references (ProjectCode/, Project-Tests/, ProjectDocs/) updated to current names (provisioning/, tests/) across all docs. - Stale repo name "FetchApply" / "KNELServerBuild" updated to "PFVCluster" in actionable docs; historical AI-review docs tagged with an HTML comment notice. - REFACTORING-EXAMPLES.md: tagged as historical (pre-refactor patterns). - tests/README.md, dns-cluster-setup/README.md, docs/DEPLOYMENT.md, docs/SECURITY.md: path references fixed to current structure. 🤖 Generated with [Crush](https://github.com/charmassociates/crush) Assisted-by: GLM-5 via Crush <crush@charm.land>
162 lines
5.4 KiB
Markdown
162 lines
5.4 KiB
Markdown
# Claude TODO - TSYS PFVCluster Automation Tasks
|
|
|
|
**Purpose:** Actionable items optimized for AI assistant implementation
|
|
**Priority:** Critical → High → Medium → Low
|
|
|
|
## 🚨 CRITICAL (Immediate Security Fixes)
|
|
|
|
### ✅ RESOLVED: Secure Deployment Method
|
|
**Previous Issue:** `curl | bash` deployment method
|
|
**Status:** Fixed in README.md - now uses `git clone` + local script execution
|
|
|
|
### ✅ RESOLVED: Replace HTTP URLs with HTTPS
|
|
**Files modified:**
|
|
- `provisioning/Dell/Server/omsa.sh` - Converted 11 HTTP URLs to HTTPS (Ubuntu archive, Dell repo)
|
|
- `provisioning/legacy/prox7.sh` - Converted 2 HTTP URLs to HTTPS (Proxmox downloads)
|
|
- `provisioning/Modules/RandD/sslStackFromSource.sh` - Converted 3 HTTP URLs to HTTPS (Apache sources)
|
|
|
|
**Status:** All HTTP URLs in active scripts converted to HTTPS. Only remaining HTTP references are in comments and LibreNMS agent files (external dependencies).
|
|
|
|
### TASK-002: Add Download Integrity Verification
|
|
**Create new function in:** `Framework-Includes/VerifyDownload.sh`
|
|
**Function to implement:**
|
|
```bash
|
|
function verify_download() {
|
|
local url="$1"
|
|
local expected_hash="$2"
|
|
local output_file="$3"
|
|
|
|
curl -fsSL "$url" -o "$output_file"
|
|
local actual_hash=$(sha256sum "$output_file" | cut -d' ' -f1)
|
|
|
|
if [ "$actual_hash" != "$expected_hash" ]; then
|
|
print_error "Hash verification failed for $output_file"
|
|
rm -f "$output_file"
|
|
return 1
|
|
fi
|
|
print_info "Download verified: $output_file"
|
|
}
|
|
```
|
|
|
|
### TASK-003: Create Secure Deployment Script
|
|
**Create:** `provisioning/SecureSetupNewSystem.sh`
|
|
**Features to implement:**
|
|
- GPG signature verification
|
|
- SHA256 checksum validation
|
|
- HTTPS-only downloads
|
|
- Rollback capability
|
|
|
|
## 🔶 HIGH (Security Enhancements)
|
|
|
|
### TASK-004: Remove Hardcoded SSH Keys
|
|
**Files to modify:**
|
|
- `provisioning/ConfigFiles/SSH/AuthorizedKeys/root-ssh-authorized-keys`
|
|
- `provisioning/ConfigFiles/SSH/AuthorizedKeys/localuser-ssh-authorized-keys`
|
|
- `provisioning/Modules/Security/secharden-ssh.sh:31,40,51`
|
|
|
|
**Implementation approach:**
|
|
1. Create environment variable support: `SSH_KEYS_URL` or `SSH_KEYS_VAULT_PATH`
|
|
2. Modify secharden-ssh.sh to fetch keys from secure source
|
|
3. Add key validation before deployment
|
|
|
|
### TASK-005: Add Secrets Management Framework
|
|
**Create:** `Framework-Includes/SecretsManager.sh`
|
|
**Functions to implement:**
|
|
```bash
|
|
function get_secret() { } # Retrieve secret from vault
|
|
function validate_secret() { } # Validate secret format
|
|
function rotate_secret() { } # Trigger secret rotation
|
|
```
|
|
|
|
### TASK-006: Enhanced Preflight Checks
|
|
**Modify:** `Framework-Includes/PreflightCheck.sh`
|
|
**Add checks for:**
|
|
- Network connectivity to required hosts
|
|
- Disk space requirements
|
|
- Existing conflicting software
|
|
- Required system capabilities
|
|
|
|
## 🔹 MEDIUM (Operational Improvements)
|
|
|
|
### TASK-007: Add Configuration Backup
|
|
**Create:** `Framework-Includes/ConfigBackup.sh`
|
|
**Functions:**
|
|
```bash
|
|
function backup_config() { } # Create timestamped backup
|
|
function restore_config() { } # Restore from backup
|
|
function list_backups() { } # Show available backups
|
|
```
|
|
|
|
### TASK-008: Implement State Tracking
|
|
**Create:** `Framework-Includes/StateManager.sh`
|
|
**Track:**
|
|
- Deployment progress
|
|
- Module completion status
|
|
- Rollback points
|
|
- System changes made
|
|
|
|
### TASK-009: Add Retry Logic
|
|
**Enhance existing scripts with:**
|
|
- Configurable retry attempts for network operations
|
|
- Exponential backoff for failed operations
|
|
- Circuit breaker for repeatedly failing services
|
|
|
|
## 🔸 LOW (Quality of Life)
|
|
|
|
### TASK-010: Enhanced Logging
|
|
**Modify:** `Framework-Includes/Logging.sh`
|
|
**Add:**
|
|
- Structured logging (JSON format option)
|
|
- Log levels (DEBUG, INFO, WARN, ERROR)
|
|
- Remote logging capability
|
|
- Log rotation management
|
|
|
|
### TASK-011: Progress Indicators
|
|
**Add to:** `Framework-Includes/PrettyPrint.sh`
|
|
```bash
|
|
function show_progress() { } # Display progress bar
|
|
function update_status() { } # Update current operation
|
|
```
|
|
|
|
### TASK-012: Dry Run Mode
|
|
**Add to:** `provisioning/SetupNewSystem.sh`
|
|
**Implementation:**
|
|
- `--dry-run` flag support
|
|
- Preview of changes without execution
|
|
- Dependency analysis output
|
|
|
|
## Implementation Order for Claude
|
|
|
|
**Updated Priority After Security Fix (July 14, 2025):**
|
|
1. **Start with TASK-001** (HTTPS enforcement - simple find/replace operations)
|
|
2. **Create framework functions** (TASK-002, TASK-005, TASK-007)
|
|
3. **Enhance existing modules** (TASK-004, TASK-006)
|
|
4. **Add operational features** (TASK-008, TASK-009)
|
|
5. **Improve user experience** (TASK-010, TASK-011, TASK-012)
|
|
|
|
**Note:** Major deployment security risk resolved - remaining tasks focus on hardening internal operations.
|
|
|
|
## File Location Patterns
|
|
|
|
- **Framework components:** `Framework-Includes/*.sh`
|
|
- **Security modules:** `provisioning/Modules/Security/*.sh`
|
|
- **Configuration files:** `provisioning/ConfigFiles/*/`
|
|
- **Main entry point:** `provisioning/SetupNewSystem.sh`
|
|
|
|
## Testing Strategy
|
|
|
|
For each task:
|
|
1. Create backup of original files
|
|
2. Implement changes incrementally
|
|
3. Test with `bash -n` for syntax validation
|
|
4. Verify functionality with controlled test runs
|
|
5. Document changes made
|
|
|
|
## Error Handling Requirements
|
|
|
|
All new functions must:
|
|
- Use `set -euo pipefail` compatibility
|
|
- Integrate with existing error handling framework
|
|
- Log errors to `$LOGFILENAME`
|
|
- Return appropriate exit codes
|
|
- Clean up temporary files on failure |