Command-line interface tool for managing VPS servers on the mikr.us platform.
Main command that displays welcome information.
Usage:
mikrusOutput:
Welcome to your CLI
Generates model files from templates with comprehensive security validation.
Usage:
mikrus generate <model-name>
mikrus g <model-name>Parameters:
<model-name>- Name for the generated model (required)
Security Validations:
- Input Sanitization: Trims whitespace and validates non-empty strings
- Path Traversal Protection: Blocks
../,..\\, and..sequences - Absolute Path Blocking: Prevents paths starting with
/,\, or Windows drives (C:) - Command Injection Prevention: Blocks dangerous shell metacharacters:
;|&$`<>'"\ - File System Protection: Prevents reserved file system characters:
<>:"/|?* - Character Validation: Only allows letters, numbers, hyphens, and
underscores (
^[a-zA-Z0-9_-]+$) - Length Validation: Maximum 100 characters
Examples:
# Generate a user model
mikrus generate user
# Output: Generated file at models/user-model.ts
# Generate with alias
mikrus g product
# Output: Generated file at models/product-model.ts
# Valid naming patterns
mikrus generate user-profile # ✅ Valid
mikrus generate user_data # ✅ Valid
mikrus generate UserModel # ✅ Valid
# Invalid examples (will fail with security errors)
mikrus generate ../malicious # ❌ Path traversal detected
mikrus generate "file; rm -rf" # ❌ Command injection characters detected
mikrus generate /absolute/path # ❌ Absolute paths not allowed
mikrus generate "file with spaces" # ❌ Spaces not allowed
mikrus generate "" # ❌ Empty name not allowed
mikrus generate C:\\windows\\file # ❌ Windows absolute path blockedGenerated Files:
- Location:
models/<name>-model.ts - Template: Uses
src/templates/model.ts.ejs - Content: CommonJS module with the specified name
Error Handling: All validation failures result in:
- Clear error message describing the specific security issue
- Process exit with code 1
- No file generation or side effects
- Error messages are safe and don't expose sensitive system information
Common Error Messages:
Name parameter is required and must be a stringName parameter cannot be emptyPath traversal detected. Name parameter cannot contain ".." sequencesAbsolute paths are not allowed. Name parameter must be a relative filenameInvalid characters detected. Name parameter cannot contain: ; | & $< > ' " `Name parameter contains reserved file system charactersName parameter is too long. Maximum length is 100 charactersName parameter must contain only letters, numbers, hyphens, and underscores
Displays help information for the CLI and available commands.
Usage:
mikrus help
mikrus --help
mikrus -hShows the current version of the mikrus CLI.
Usage:
mikrus version
mikrus --version
mikrus -vOutput:
%VERSION% (development build)
These options are available for all commands:
--help,-h- Show help information--version,-v- Display version number--compiled-build- Force running compiled JavaScript version
The mikrus CLI implements enterprise-level security measures:
- Input Validation: All user inputs are validated and sanitized
- Path Security: File operations restricted to project directory
- Injection Prevention: Protection against command injection attacks
- Error Handling: Secure error messages without sensitive information disclosure
0- Success1- Security validation failure or command error
For development usage with TypeScript source:
# Runs from TypeScript source (development)
mikrus generate test-model
# Forces compiled version
mikrus --compiled-build generate test-model# Initialize a new model
mikrus generate user
# Check version
mikrus --version
# Get help
mikrus --help# These will be blocked for security:
mikrus generate "../../../etc/passwd" # Path traversal
mikrus generate "model; cat /etc/passwd" # Command injection
mikrus generate "/tmp/malicious" # Absolute path
mikrus generate "model name" # Spaces not allowed
mikrus generate "model*file" # Reserved characters
mikrus generate "C:\\temp\\model" # Windows absolute path
# These are safe and allowed:
mikrus generate my-model # Hyphenated names ✅
mikrus generate user_profile # Underscored names ✅
mikrus generate ProductData # CamelCase names ✅
mikrus generate model123 # Numbers allowed ✅
mikrus generate a # Single character ✅Last Updated: 2025-08-25
Repository: https://github.com/gander-tools/mikrus