nip/docs/remote_cli_guide.md

413 lines
9.1 KiB
Markdown

# NimPak Remote-Aware CLI Guide
## Overview
The enhanced NimPak CLI provides comprehensive remote repository management with trust-first security, bloom filter-optimized synchronization, and intelligent binary caching. This guide covers the new remote-aware commands implemented in Task 15.1e.
## Repository Management
### Adding Repositories
```bash
# Basic repository addition with interactive trust verification
nip repo add https://packages.nexusos.org
# Add with custom priority and auto-trust
nip repo add https://community.nexusos.org --priority=75 --trust=auto
# Add private repository with prompt-based trust
nip repo add https://private.company.com --trust=prompt --name=company-internal
```
**Interactive Trust Flow:**
```
🔑 Fetching repository manifest…done (BLAKE3: a1b2…)
🔒 Repository signing key fingerprint:
7A2F 3C9D 4EBA 11B4 9F32 8C77 E1A4 57C9 B912 0AF3
───────────────────────────────────────────────────
Compare this with https://packages.nexusos.org/fingerprint
or verify through official channels.
Do you trust this key? [y/N] y
✅ Repository added successfully
🚀 Repository 'packages.nexusos.org' is ready for use
```
### Listing Repositories
```bash
# Human-readable format with trust badges
nip repo list
# Machine-readable JSON output
nip repo list --output=json
# YAML format for configuration management
nip repo list --output=yaml
```
**Example Output:**
```
Configured Repositories:
==================================================
✅ 🟢 official
URL: https://packages.nexusos.org
Type: RepoCommunity, Priority: 100
Trust Score: 0.95
Last Sync: 2025-01-08 14:30
🟡 🟢 community
URL: https://community.nexusos.org
Type: RepoCommunity, Priority: 75
Score: 0.72
Last Sync: 2025-01-08 14:25
```
### Synchronizing Repositories
```bash
# Sync all repositories with bloom filter optimization
nip repo sync
# Sync specific repository
nip repo sync official
# Bandwidth-limited sync
nip repo sync --max-bw=5MB/s
```
## Enhanced Package Installation
### Binary-First Installation
```bash
# Install with binary preference (default)
nip install nginx
# Force binary installation
nip install nginx --prefer-binary
# Install from specific repository
nip install nginx --repo=community
# Install with trust level requirement
nip install nginx --trust-level=0.8
```
**Installation Flow with Trust Verification:**
```
📦 Installing package: nginx
🚀 Preferring binary packages for faster installation
📋 Package: nginx v1.24.0
🔒 Trust Score: 0.87
🎯 Binary package available - using pre-compiled version
⬇️ Downloading package...
✅ Package installed successfully
```
### Source Build Fallback
```bash
# Force source build even if binary available
nip install nginx --no-binary
# Install with bandwidth limit
nip install nginx --max-bw=10MB/s
```
## Cache Management
### Cache Status
```bash
# Display cache statistics
nip cache status
# JSON output for monitoring
nip cache status --output=json
```
**Example Output:**
```
Cache Status:
==============================
📊 Size: 2.4 GB
📦 Objects: 15,420
🎯 Hit Rate: 87.0%
🗜️ Compression: 65.0%
🧹 Last Cleanup: 2025-01-07T14:30:00Z
```
### Cache Cleanup
```bash
# Clean cache entries older than 30 days
nip cache clean
# Preview cleanup without deleting
nip cache clean --dry-run
# Custom age threshold
nip cache clean --max-age=7
```
## Mirror Management
### Adding Mirrors
```bash
# Add mirror for load balancing
nip mirror add edge https://edge.nexusos.org
# Add with custom priority
nip mirror add local http://local-mirror:8080 --priority=90
```
### Listing Mirrors
```bash
# Display mirror health status
nip mirror list
# JSON output for monitoring
nip mirror list --output=json
```
**Example Output:**
```
Configured Mirrors:
==================================================
🟢 official (Priority: 100)
URL: https://packages.nexusos.org
Latency: 45.2ms
Reliability: 98.5%
Last Sync: 2025-01-08 14:30
🟡 edge (Priority: 75)
URL: https://edge.nexusos.org
Latency: 120.8ms
Reliability: 92.1%
Last Sync: 2025-01-08 14:28
```
### Mirror Synchronization
```bash
# Sync all mirrors with load balancing
nip mirror sync
# Sync specific mirror
nip mirror sync edge
# Sync with progress display
nip mirror sync --show-progress
```
## Progressive Help System
### General Help
```bash
# Overview of all commands
nip --help
# Category-based command listing
nip repo --help
# Detailed help with examples
nip repo --help=examples
```
### Command-Specific Help
```bash
# Repository management help
nip repo add --help
# Installation options
nip install --help
# Cache management options
nip cache --help
```
## Global Options
### Output Formats
```bash
# JSON output for scripting
nip repo list --output=json
# YAML output for configuration
nip cache status --output=yaml
# KDL output (NexusOS native)
nip mirror list --output=kdl
```
### Bandwidth Management
```bash
# Global bandwidth limit
nip --max-bw=10MB/s repo sync
# Per-command bandwidth limit
nip install nginx --max-bw=5MB/s
# Bandwidth window configuration
nip --max-bw=peak:20MB/s,avg:10MB/s mirror sync
```
### Verbose Mode
```bash
# Enable detailed logging
nip --verbose repo add https://example.com
# Combine with other options
nip --verbose --output=json cache status
```
## Trust and Security Features
### Trust Badges
-**Green**: High trust score (≥0.8), verified signatures
- 🟡 **Yellow**: Medium trust score (0.5-0.8), some verification
- 🔴 **Red**: Low trust score (<0.5), unverified or revoked
### Trust Policy Integration
```bash
# Install with minimum trust requirement
nip install package --trust-level=0.8
# Repository addition with trust verification
nip repo add https://example.com --trust=prompt
```
### Security Event Logging
All remote operations are logged to the security event log for audit trails:
- Repository additions and trust decisions
- Package installations with trust scores
- Mirror synchronization events
- Cache operations and cleanup activities
## Performance Optimizations
### Bloom Filter Synchronization
The CLI uses bloom filter handshake for O(changes) synchronization efficiency:
```bash
# Efficient sync using bloom filters
nip repo sync # Only transfers changed objects
# Mirror sync with bloom optimization
nip mirror sync # Automatic bloom filter handshake
```
### Binary Cache Support
```bash
# Automatic binary selection with CPU compatibility
nip install nginx # Detects CPU flags, libc, allocator
# Binary cache statistics
nip cache status # Shows hit rate and efficiency
```
### Bandwidth Management
```bash
# Rate limiting for network-constrained environments
nip --max-bw=1MB/s repo sync
# Time-window based bandwidth allocation
nip mirror sync --max-bw=peak:10MB/s,avg:5MB/s
```
## Integration with Existing Systems
### Task 11 Security Integration
- **Trust Policy Manager**: Repository trust verification
- **Keyring Manager**: Key storage and validation
- **Event Logger**: Audit trail and compliance tracking
### Task 15.1d Sync Engine Integration
- **Bloom Filter Handshake**: Efficient synchronization
- **Delta Object Compression**: Bandwidth optimization
- **Mirror Network**: Load balancing and failover
### Configuration System Integration
- **Hierarchical Configuration**: `/etc/nexus/` `~/.config/nexus/` `.nexus/`
- **Modular Configuration Files**: `nip-repositories.kdl`, `nip-trust.kdl`
- **Policy-Based Configuration**: Trust policies and repository settings
## Troubleshooting
### Common Issues
1. **Repository Trust Verification Failed**
```bash
# Re-add with explicit trust level
nip repo add https://example.com --trust=prompt
```
2. **Sync Performance Issues**
```bash
# Use bandwidth limiting
nip repo sync --max-bw=5MB/s
# Check mirror health
nip mirror list
```
3. **Cache Issues**
```bash
# Check cache status
nip cache status
# Clean old entries
nip cache clean --dry-run
```
### Debug Mode
```bash
# Enable verbose logging for troubleshooting
nip --verbose repo sync
# JSON output for detailed analysis
nip --verbose --output=json mirror list
```
## Best Practices
1. **Repository Management**
- Always verify repository fingerprints manually
- Use appropriate trust levels for different environments
- Regularly sync repositories to stay current
2. **Installation Strategy**
- Prefer binary packages for faster installation
- Use repository-specific installs for critical packages
- Monitor trust scores and update policies accordingly
3. **Cache Management**
- Regular cache cleanup to manage disk space
- Monitor cache hit rates for performance optimization
- Use dry-run mode before major cleanup operations
4. **Mirror Configuration**
- Configure multiple mirrors for redundancy
- Set appropriate priorities based on network topology
- Monitor mirror health and adjust as needed
This guide covers the essential features of the enhanced remote-aware CLI. For additional information, use the built-in help system with `nip --help` or `nip <command> --help=examples`.