# ๐ Syncable IaC CLI
> AI-powered Infrastructure-as-Code generator that analyzes your codebase and automatically creates optimized Docker, Docker Compose, and Terraform configurations.
[](https://www.rust-lang.org/)
[](https://opensource.org/licenses/MIT)
## โจ Features
### ๐ Comprehensive Project Analysis
- **Language Detection**: Automatically detects JavaScript/TypeScript, Python, Rust, Go, Java/Kotlin
- **Framework Recognition**: Identifies 70+ frameworks including Express, React, Django, FastAPI, Spring Boot
- **Dependency Analysis**: Parses all package managers and extracts version constraints
- **Vulnerability Scanning**: Integrates with security databases for each language ecosystem
- **Security Analysis**: Basic secret detection and environment variable security checks
- **Context Extraction**: Discovers entry points, ports, environment variables, and build scripts
### ๐ฏ Current Capabilities (Phase 1 Complete โ
)
- โ
Multi-language project analysis
- โ
Framework and library detection with confidence scoring
- โ
Comprehensive dependency parsing
- โ
Security vulnerability checking
- โ
**Basic security analysis with secret detection**
- โ
Project context analysis (ports, env vars, build scripts)
- โ
Project type classification
### ๐ง Coming Soon (Phase 2+)
- ๐ค AI-powered Dockerfile generation
- ๐ณ Intelligent Docker Compose creation
- โ๏ธ Cloud-ready Terraform configurations
- ๐ **Advanced security analysis** (infrastructure, framework-specific, compliance)
- ๐ Performance optimization suggestions
## ๐ฆ Installation
### From Source (Recommended)
```bash
# Prerequisites: Rust 1.70+ and Git
# Clone the repository
git clone https://github.com/yourusername/syncable-cli.git
cd syncable-cli
# Build and install
cargo install --path .
# Verify installation
sync-ctl --version
```
### Pre-built Binaries
Coming soon! Check the [releases page](https://github.com/yourusername/syncable-cli/releases).
## ๐ Quick Start
### Analyze a Project
```bash
# Analyze current directory
sync-ctl analyze
# Analyze specific project
sync-ctl analyze /path/to/your/project
# Get JSON output
sync-ctl analyze --json > analysis.json
```
### Check for Vulnerabilities
```bash
# Run vulnerability scan
sync-ctl vulnerabilities /path/to/project
# Check only high severity and above
sync-ctl vulnerabilities --severity high
# Export vulnerability report
sync-ctl vulnerabilities --format json --output vuln-report.json
```
### Security Analysis
```bash
# Basic security analysis with secret detection
sync-ctl security /path/to/project
# Include low severity findings
sync-ctl security --include-low
# Skip specific analysis types
sync-ctl security --no-secrets --no-code-patterns
# Generate security report
sync-ctl security --format json --output security-report.json
# Fail CI/CD pipeline on security findings
sync-ctl security --fail-on-findings
```
**Current Security Features:**
- โ
Secret detection (API keys, tokens, passwords)
- โ
Environment variable security analysis
- โ
Basic code pattern analysis (limited rules)
- โ
Security scoring and risk assessment
- ๐ง Infrastructure security analysis (coming soon)
- ๐ง Framework-specific security checks (coming soon)
- ๐ง Compliance framework validation (coming soon)
## ๐ Usage Examples
### Example: Node.js Express Application
```bash
$ sync-ctl analyze ./my-express-app
๐ Analyzing project at: ./my-express-app
============================================================
๐ PROJECT ANALYSIS RESULTS
============================================================
๐ฏ Languages: JavaScript (Node.js 18)
๐ง Frameworks: Express, React
๐ฆ Dependencies: 23 production, 15 development
๐ Exposed Ports:
- 3000 (Express server)
- 9090 (Metrics endpoint)
๐ Environment Variables:
Required: DATABASE_URL, SECRET_KEY
Optional: PORT, NODE_ENV, LOG_LEVEL
๐จ Build Scripts:
- npm start
- npm run dev
- npm test
- npm run build
โ
Project Type: Web Application
```
### Example: Python FastAPI Service
```bash
$ sync-ctl analyze ./fastapi-service --json
```
```json
{
"project_type": "ApiService",
"languages": [{
"name": "Python",
"version": "3.11",
"confidence": 0.95
}],
"frameworks": [{
"name": "FastAPI",
"category": "Web",
"confidence": 0.92
}],
"ports": [{ "number": 8000, "protocol": "Http" }],
"environment_variables": [
{ "name": "DATABASE_URL", "required": true },
{ "name": "REDIS_URL", "required": false }
]
}
```
### Example: Security Analysis
```bash
$ sync-ctl security ./my-project
๐ก๏ธ Finalizing analysis... [00:00:01] โฐโฐโฐโฐโฐโฐโฐโฐโฐโฐโฐโฐโฐโฐโฐโฐโฐโฐโฐโฐ 100/100 100%
๐ก๏ธ Security Analysis Results
============================================================
๐ SECURITY SUMMARY
โ
Security Score: 100.0/100
๐ ANALYSIS SCOPE
โ
Secret Detection (5 files analyzed)
โ
Environment Variables (3 variables checked)
โน๏ธ Code Security Patterns (no applicable files found)
๐ง Infrastructure Security (coming soon)
๐ง Compliance Frameworks (coming soon)
๐ฏ FINDINGS BY CATEGORY
๐ Secret Detection: 0 findings
๐ Code Security: 0 findings
๐๏ธ Infrastructure: 0 findings
๐ Compliance: 0 findings
๐ก RECOMMENDATIONS
โข Enable dependency vulnerability scanning in CI/CD
โข Consider implementing rate limiting for API endpoints
โข Review environment variable security practices
```
## ๐ ๏ธ Advanced Configuration
Create a `.syncable.toml` in your project:
```toml
[analysis]
include_dev_dependencies = true
deep_analysis = true
ignore_patterns = ["vendor", "node_modules", "target"]
max_file_size = 2097152 # 2MB
[output]
format = "json" # or "yaml", "toml"
```
## ๐งช Supported Technologies
### Languages & Runtimes
- JavaScript/TypeScript (Node.js)
- Python (3.7+)
- Rust
- Go
- Java/Kotlin
### Frameworks (70+ supported)
- **JavaScript**: Express, Next.js, React, Vue, Angular, Nest.js
- **Python**: Django, Flask, FastAPI, Pyramid
- **Rust**: Actix-web, Rocket, Axum, Warp
- **Go**: Gin, Echo, Fiber, Chi
- **Java**: Spring Boot, Micronaut, Quarkus
### Package Managers
- npm, yarn, pnpm
- pip, poetry, pipenv
- cargo
- go mod
- maven, gradle
## ๐ค Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
```bash
# Run tests
cargo test
# Run with debug logging
RUST_LOG=debug cargo run -- analyze ./test-project
# Format code
cargo fmt
# Run linter
cargo clippy
```
## ๐ Project Status
### Phase 1: Core Analysis Engine โ
- [x] Language Detection
- [x] Framework Detection
- [x] Dependency Parsing
- [x] Vulnerability Checking
- [x] **Basic Security Analysis** (secret detection, env vars)
- [x] Project Context Analysis
### Phase 2: AI Integration ๐ง
- [ ] AI Provider Integration
- [ ] Smart Dockerfile Generation
- [ ] Intelligent Docker Compose
- [ ] Cloud-Ready Terraform
See [ROADMAP.md](ROADMAP.md) for detailed progress.
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ Acknowledgments
- Built with [Rust](https://www.rust-lang.org/) ๐ฆ
- Uses [clap](https://github.com/clap-rs/clap) for CLI parsing
- Integrates with various security databases
---
**Built with โค๏ธ by the Syncable team**