47 lines
1.8 KiB
Markdown
47 lines
1.8 KiB
Markdown
# Architectural Approach
|
|
|
|
This document captures the architectural approach for project development in the AIOS-Public system.
|
|
|
|
## Container Architecture
|
|
|
|
### Layered Approach
|
|
- Base containers provide foundational tools and libraries
|
|
- Specialized containers extend base functionality for specific use cases
|
|
- Each layer adds specific capabilities while maintaining consistency
|
|
|
|
### Naming Convention
|
|
- Use `RCEO-AIOS-Public-Tools-` prefix consistently
|
|
- Include descriptive suffixes indicating container purpose
|
|
- Follow pattern: `RCEO-AIOS-Public-Tools-[domain]-[type]`
|
|
|
|
### Security Patterns
|
|
- Minimize root usage during build and runtime
|
|
- Implement non-root users for all runtime operations
|
|
- Use UID/GID mapping for proper file permissions across environments
|
|
- Detect host user IDs automatically through file system inspection
|
|
|
|
### Operational Patterns
|
|
- Create thin wrapper scripts that handle environment setup
|
|
- Use consistent patterns for user ID detection and mapping
|
|
- Maintain same operational workflow across all containers
|
|
- Provide clear documentation in README files
|
|
|
|
### Organization Principles
|
|
- Separate COO mode (operational tasks) from CTO mode (R&D tasks) containers
|
|
- Create individual directories per container type
|
|
- Maintain disciplined file organization to prevent technical debt
|
|
- Keep repository root clean with project-specific files in subdirectories
|
|
|
|
## Documentation Requirements
|
|
- Each container must have comprehensive README
|
|
- Include usage examples and environment setup instructions
|
|
- Document security and permission handling
|
|
- Provide clear container mapping and purpose
|
|
|
|
## Implementation Workflow
|
|
1. Start with architectural design document
|
|
2. Create detailed implementation plan
|
|
3. Develop following established patterns
|
|
4. Test with sample data/usage
|
|
5. Document for end users
|
|
6. Commit with conventional commit messages |