nip/profiles/MIGRATION.md

125 lines
4.1 KiB
Markdown

# Profile Migration Summary
## Migration Date
November 18, 2025
## What Was Migrated
Profiles were moved from the private `.kiro/nip/profiles/` directory to the public `nip/profiles/` directory to make them accessible to users.
## New Structure
```
nip/profiles/
├── README.md # Profile system documentation
├── MIGRATION.md # This file
├── security/ # Security profiles for Nippels
│ ├── workstation.kdl # Work computers
│ ├── homestation.kdl # Home use (default)
│ ├── satellite.kdl # Laptops/mobile
│ ├── network-iot.kdl # Embedded/IoT
│ └── server.kdl # Server deployments
├── build/ # Build profiles for compilation
│ ├── desktop.kdl # Desktop build config
│ ├── server.kdl # Server build config
│ └── minimal.kdl # Minimal build config
└── examples/ # Example custom profiles
├── gaming-rig.kdl # Gaming-optimized
├── ml-workstation.kdl # Machine learning
├── developer.kdl # Developer workstation
└── fleet-node.kdl # Fleet management
```
## Profile Types
### 1. Security Profiles (`security/`)
Define isolation levels and security settings for Nippels (user-level application environments):
- **Workstation**: Standard isolation + desktop integration
- **Homestation**: Standard isolation + relaxed network (default)
- **Satellite**: Strict isolation + limited network
- **Network/IOT**: Strict isolation + minimal resources
- **Server**: Strict isolation + no desktop + enhanced auditing
### 2. Build Profiles (`build/`)
Define compiler flags and optimization levels for building packages:
- **Desktop**: Modern graphics, audio, user experience
- **Server**: Security hardened, performance optimized
- **Minimal**: Small size, essential features only
### 3. Example Profiles (`examples/`)
Additional profiles for specific use cases:
- **Gaming Rig**: Gaming-optimized configuration
- **ML Workstation**: Machine learning workstation
- **Developer**: Developer workstation
- **Fleet Node**: Fleet management node
## Why This Migration?
1. **User-Facing Feature**: Profiles are a public feature that users need to see and understand
2. **Documentation**: Profiles should be documented alongside the code
3. **Customization**: Users can learn from and customize existing profiles
4. **Version Control**: Profile changes should be tracked in the public repo
5. **Distribution**: Profiles should ship with the nip package
## Old Location (Deprecated)
The old location `.kiro/nip/profiles/` is now deprecated and should not be used. The `.kiro/` directory is for:
- Internal specs and planning
- Development coordination
- AI context
But NOT for user-facing features like profiles.
## Usage
### Security Profiles
```bash
# Create Nippel with specific security profile
nip cell create dev-env --profile Workstation
# Use default profile (Homestation)
nip cell create my-env
```
### Build Profiles
```bash
# Build package with specific profile
nip build vim --profile desktop
# Build with server profile
nip build nginx --profile server
```
### Custom Profiles
```bash
# Copy and customize
cp nip/profiles/security/homestation.kdl ~/.config/nip/profiles/security/my-profile.kdl
vim ~/.config/nip/profiles/security/my-profile.kdl
# Use custom profile
nip cell create my-env --profile my-profile
```
## Next Steps
1. ✅ Profiles migrated to public location
2. ✅ Documentation created (README.md)
3. ✅ Security profiles created for Nippels
4. ✅ Build profiles organized
5. ✅ Example profiles provided
6. 🔄 Update Nippels spec to reference new location
7. 🔄 Update implementation to load from new location
8. 🔄 Add profile validation and testing
## Related Documentation
- [Nippels Specification](../../.kiro/nip/specs/nexuscells/requirements.md)
- [Profile README](README.md)
- [Nippels Documentation](../docs/nipcells.md)
---
**Migration completed successfully!** 🎉
Profiles are now in the public repository where they belong, making them accessible to users and properly documented.