Files
warehouse13/FEATURES.md
Mondo Diaz 2dea63f99f Add feature flags, seed data utilities, and Angular frontend scaffold
Major enhancements:
- Feature flag system for cloud vs air-gapped deployment modes
- Automatic storage backend selection based on deployment mode
- Comprehensive seed data generation utilities
- Support for generating CSV, JSON, binary, and PCAP test files
- Quick seed script for easy data generation
- Angular 19 frontend complete setup documentation
- Material Design UI component examples and configuration

Fixes:
- Resolve SQLAlchemy metadata column name conflict
- Rename metadata to custom_metadata throughout codebase
- Fix API health check issues

Documentation:
- FEATURES.md - Complete feature overview
- FRONTEND_SETUP.md - Angular 19 setup guide with examples
- SUMMARY.md - Implementation summary

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 15:57:49 -05:00

232 lines
5.8 KiB
Markdown

# Features Overview
## Core Features
### Storage & Backend
- **Multi-format Support**: CSV, JSON, binary files, and PCAP (packet capture) files
- **Dual Storage Backend**:
- **AWS S3** for cloud deployments
- **MinIO** for air-gapped/self-hosted deployments
- **Automatic Backend Selection**: Based on deployment mode feature flag
- **Storage Abstraction**: Seamlessly switch between S3 and MinIO via configuration
### Database & Metadata
- **PostgreSQL Database**: Stores all artifact metadata
- **Rich Metadata Support**:
- Test information (name, suite, configuration, result)
- Custom metadata (JSON format)
- Tags for categorization
- File versioning support
- Timestamps and audit trail
### API Features
- **RESTful API**: Built with FastAPI
- **File Operations**:
- Upload with metadata
- Download (direct or presigned URLs)
- Delete
- Query with filters
- **Advanced Querying**:
- Filter by filename, file type, test name, test suite, test result
- Tag-based filtering
- Date range queries
- Pagination support
- **Auto-generated Documentation**: Swagger UI and ReDoc
### Feature Flags
#### Deployment Mode
Toggle between cloud and air-gapped environments:
```bash
# Air-gapped mode (default)
DEPLOYMENT_MODE=air-gapped
# Automatically uses MinIO for storage
# Cloud mode
DEPLOYMENT_MODE=cloud
# Automatically uses AWS S3 for storage
```
**Benefits**:
- Single codebase for both deployment scenarios
- Automatic backend configuration
- Easy environment switching
- No code changes required
### Test Utilities
#### Seed Data Generation
Generate realistic test data for development and testing:
**Quick Usage**:
```bash
# Generate 25 artifacts (default)
python seed.py
# Generate specific number
python seed.py 100
# Clear all data
python seed.py clear
```
**Advanced Usage**:
```bash
# Using the module directly
python -m utils.seed_data generate --count 50
# Clear all artifacts
python -m utils.seed_data clear
```
**Generated Data Includes**:
- CSV files with test results
- JSON configuration files
- Binary test data files
- PCAP network capture files
- Realistic metadata:
- Test names and suites
- Pass/fail/skip/error results
- Random tags
- Test configurations
- Version information
- Timestamps (last 30 days)
### Frontend (Angular 19)
**Modern Web Interface**:
- Built with Angular 19 standalone components
- Material Design theming and layout
- Responsive design
**Key Components**:
- **Artifact List**: Browse and manage artifacts with pagination
- **Upload Form**: Upload files with metadata input
- **Query Interface**: Advanced filtering and search
- **Detail View**: View full artifact information
- **Download/Delete**: Quick actions
**Features**:
- Real-time deployment mode indicator
- File type icons and badges
- Result status chips (pass/fail/skip/error)
- Responsive data tables
- Drag-and-drop file upload
### Deployment
#### Docker Support
- **Dockerized Application**: Single container for API
- **Docker Compose**: Complete stack (API + PostgreSQL + MinIO)
- **Multi-stage Builds**: Optimized image size
#### Kubernetes/Helm
- **Single Helm Chart**: Deploy entire stack
- **Configurable Values**: Resources, replicas, storage
- **Auto-scaling Support**: HPA for production
- **Health Checks**: Liveness and readiness probes
#### CI/CD
- **GitLab CI Pipeline**: Automated testing and deployment
- **Multi-environment**: Dev, staging, production
- **Manual Gates**: Control production deployments
- **Container Registry**: Automatic image building
### Security & Reliability
**Application**:
- Non-root container user
- Health check endpoints
- Structured logging
- Error handling and rollback
**Storage**:
- Presigned URLs for secure downloads
- UUID-based file naming (prevents conflicts)
- Automatic bucket creation
**Database**:
- Connection pooling
- Transaction management
- Indexed queries for performance
### Monitoring & Observability
**Health Checks**:
- `/health` endpoint for liveness
- Database connectivity check
- Storage backend verification
**Logging**:
- Structured logging format
- Configurable log levels
- Request/response logging
**Metrics** (Future):
- Prometheus endpoint
- Upload/download metrics
- Storage usage tracking
## Feature Comparison Matrix
| Feature | Cloud Mode | Air-Gapped Mode |
|---------|-----------|-----------------|
| Storage Backend | AWS S3 | MinIO |
| Database | RDS/Self-hosted PostgreSQL | Self-hosted PostgreSQL |
| Authentication | IAM/OAuth | Internal |
| Deployment | EKS/Cloud K8s | On-premise K8s |
| Cost Model | Pay-per-use | Fixed infrastructure |
| Scalability | Unlimited | Hardware-limited |
| Internet Required | Yes | No |
## Use Cases
### Test Automation
- Store test execution results (CSV)
- Archive test configurations (JSON)
- Track test history and trends
- Query by test suite, result, date
### Network Testing
- Store packet captures (PCAP)
- Associate captures with test runs
- Query by tags and metadata
- Download for analysis
### Build Artifacts
- Store binary test data
- Version control for test files
- Track across builds
- Query by version
### Compliance & Audit
- Immutable artifact storage
- Timestamp tracking
- Metadata for traceability
- Easy retrieval for audits
## Future Enhancements
### Planned Features
- [ ] Authentication & Authorization (OAuth, RBAC)
- [ ] File preview in UI
- [ ] Bulk upload API
- [ ] Advanced analytics dashboard
- [ ] Webhook notifications
- [ ] Full-text search (Elasticsearch)
- [ ] Automatic artifact retention policies
- [ ] Data export/import tools
- [ ] Performance metrics dashboard
- [ ] API rate limiting
### Under Consideration
- [ ] Multi-tenant support
- [ ] Artifact comparison tools
- [ ] Integration with CI/CD systems
- [ ] Automated report generation
- [ ] Machine learning for test prediction
- [ ] Distributed tracing
- [ ] Artifact deduplication
- [ ] Cost analysis dashboard