@buildappolis/env-manager
Version:
Enterprise-grade environment variable management system with encryption, snapshots, and validation
381 lines (310 loc) • 15.3 kB
Markdown
# Changelog
All notable changes to BuildAppolis Env-Manager will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.4.12] - 2025-08-19
### Fixed
- **Dynamic Port Configuration**: Fixed hardcoded port issue in astro.config.mjs
- Now reads port from ~/.env-manager/config.json dynamically
- Supports ENV_MANAGER_PORT environment variable override
- Falls back to default port 3001 only if config cannot be read
- Ensures the server uses the port configured via `env-manager port set` command
## [1.4.11] - 2025-08-19
### Added
- **Complete Import/Export System**
- New ImportExportDialog component with full UI for import/export operations
- Support for multiple export formats (.env, .env.local, .env.development, .env.production, .env.staging, custom)
- Download as file or copy to clipboard functionality
- Intelligent .env file parsing with variable extraction, comment processing, and category detection
- Auto-detection of sensitive variables (SECRET, KEY, PASSWORD, TOKEN patterns)
- Visual preview before import with color-coded indicators
- Batch import with real-time success/error tracking
- **Global Port Management System**
- New CLI commands: `env-manager port status`, `env-manager port set <port>`, `env-manager port restart`
- Global port configuration stored in ~/.env-manager/config.json
- Automatic project configuration updates across all env.config.ts files
- Smart process management with existing instance detection and termination
- Port conflict detection with --force override option
- WebSocket port management (separate HTTP + WS ports)
- **Development Package Swapper Tools**
- swap-env-manager.sh script for easy switching between npm and local versions
- env-swap-aliases.sh with quick command aliases (env-local, env-prod, env-status, env-test)
- Automatic package.json updates and clean package removal/installation
- Support for multiple projects with path configuration
- Color-coded status output and comprehensive documentation
### Changed
- Enhanced variables API with PUT method supporting projectPath parameter
- Improved branch detection when projectPath is provided
- Added Import/Export button integration to EnvManager8Bit UI
### Fixed
- PUT method authentication handling in variables API
- Process detection to avoid self-termination in port management
- Proper error handling for import failures
- Branch detection with projectPath parameter
## [1.4.10] - 2025-08-19
### Fixed
- **Critical: Fixed required variables validation for multi-project support**
- Fixed branch detection in variables API when projectPath is provided
- Fixed ProjectValidator to accept branch parameter for correct validation
- Fixed validation error when validation object is not a RegExp
- Required variables list now correctly updates when adding/deleting variables
- PROJECT_STATUS API now properly validates against project-specific variables
### Improved
- **Enhanced multi-project environment variable management**
- Variables API now correctly uses projectPath for branch detection
- Project status endpoint properly validates project-specific configurations
- Required variables section only shows truly missing variables
- Real-time updates when variables are added or removed
### Technical
- Fixed TypeScript type errors in draft system ('none' type added to VariableChange)
- Fixed database getAllMetadata expression always truthy warning
- Added proper type guards for validation functions
- Improved error handling in project status validation
## [1.4.9] - 2025-08-19
### Fixed
- **Fixed login endpoint URL**
- Changed from `/api/auth/login` to `/api/auth` (correct endpoint)
- Added proper form wrapper for password field
- Added autocomplete attribute for better browser support
- Fixed "Password field is not contained in a form" warning
## [1.4.8] - 2025-08-19
### Fixed
- **CRITICAL: Fixed password authentication mismatch**
- CLI was using 100,000 PBKDF2 iterations but server was using 10,000
- This caused all password verifications to fail
- Passwords now correctly authenticate in the UI
- Standardized to 100,000 iterations for proper security
### Documentation
- **Added complete uninstall/factory reset instructions**
- Documented how to completely remove env-manager and all data
- Added factory reset procedure to reset to defaults
- Listed all data storage locations for manual cleanup
- Added troubleshooting section for common issues
- Included project-specific cleanup instructions
## [1.4.7] - 2025-08-19
### Fixed
- **CRITICAL: Fixed broken password input masking**
- Password prompt was showing alternating characters (h*e*l*l*o*1*2*3)
- Completely rewrote password input handling using proper raw mode
- Now correctly shows asterisks (*) for all typed characters
- Fixed password not being saved/validated correctly
- Properly handles backspace and special characters
## [1.4.6] - 2025-08-19
### Fixed
- **Added TypeScript config file support**
- Added jiti dependency for loading `.ts` config files
- Fixed "Unknown file extension" error when using env.config.ts
- Config files now work with both TypeScript and JavaScript
- Resolved config validation issues in projects using TypeScript
## [1.4.5] - 2025-08-19
### Fixed
- **Critical fix for startup crashes when used as npm dependency**
- Skip unnecessary rebuilds when dist folder exists
- Use pre-built distribution files from npm package
- Add `--rebuild` flag for forced rebuilds when needed
- Resolved EISDIR error when trying to read API directories as files
- Fixed build process when running from node_modules
## [1.4.4] - 2025-08-19
### Fixed
- **Complete fix for all import path issues**
- Fixed all `@/lib/utils` imports to use relative paths
- Fixed all `@/components/ui` imports in 8bit components
- Corrected relative path depths for nested components
- Thoroughly tested build process with global installation
- Resolved all Vite/Rollup module resolution errors
- Ensured compatibility with global npm/pnpm installations
## [1.4.3] - 2025-08-19
### Fixed
- **Critical**: Fixed remaining @/lib/utils imports in UI components
- Resolved all path alias issues for global npm installations
- Complete fix for Vite/Rollup build failures
## [1.4.2] - 2025-08-19
### Fixed
- **Critical**: Fixed import paths in UI components to use relative paths instead of aliases
- **Critical**: Resolved build failures when running from globally installed package
- Fixed Vite/Rollup import resolution issues for global npm installations
## [1.4.1] - 2025-08-19
### Fixed
- Password masking clarification - asterisks display correctly in TTY mode
- Project tooltip now shows full path on hover
- Improved error messages for password setup
### Changed
- Minor UI improvements in ProjectSelector component
## [1.4.0] - 2025-08-19
### Added
- 🎯 **Project Selector UI** - Visual project management interface
- Live status indicators showing running/stopped projects
- Git branch display for each project
- Start/stop/remove project controls
- Project metadata display (version, description)
- 🔐 **Web-Based Password Management** - Complete password UI
- First-time setup wizard via web interface
- Password recovery with recovery phrases
- Change password functionality
- Project-specific password support
- 📡 **Project Management API** - RESTful endpoints for project control
- `/api/projects` - List and manage projects
- `/api/password` - Password operations (setup, verify, change, recover)
- Project status checking and control
- 🎨 **Enhanced UI/UX**
- Page title shows project name and git branch: `projectName[branch] | Env Manager | BuildAppolis`
- Project info display in CLI (name, version, path)
- Better env.config.ts/js detection
- TTY detection for password prompts
- 🔧 **Improved CLI Experience**
- Global password required once per machine
- Optional project-specific passwords
- Current project display in help menu
- Fixed password setup flow
### Fixed
- Password prompt handling in non-TTY environments
- env.config.ts detection in project directories
- Project registration and port assignment
## [1.3.0] - 2025-08-19
### Added
- 🔥 **Hot-Reload System** - Real-time environment variable updates without server restart
- WebSocket server for instant notifications
- Client library with framework integrations (Next.js, Astro, Vue, SvelteKit)
- Beautiful loading overlay and toast notifications
- Configurable auto-reload with delay settings
- 🌿 **Branch-Specific Variables** - Different configs for different git branches
- Auto-detection of current git branch
- Branch inheritance strategies (inherit, isolate, merge)
- Environment mapping (dev, staging, prod)
- CLI commands for branch management
- 📊 **Git Integration** - Complete git information in project status
- Shows branch, commit, author, dirty status
- Ahead/behind tracking for remote branches
- Tag detection at current commit
- 🔄 **Config Migration System** - Automatic config file upgrades
- Version tracking and migration
- Backup creation before migration
- Branch-aware config loading
- 🔑 **Secure Password Storage** - Master password in home directory
- Credentials stored in `~/.env-manager/credentials.json`
- Recovery phrase system for forgotten passwords
- Backward compatibility with project .env files
- 🏢 **Multi-Project Support** - Manage multiple projects simultaneously
- Project registry with unique ports
- Custom port configuration per project
- Project switching and listing
- 📚 **Comprehensive Documentation**
- Framework Integration Guide
- Branch Configuration Guide
- Hot-reload setup instructions
### Changed
- Password storage moved from project `.env` to secure home directory location
- Variables API now supports branch-specific storage
- Project status endpoint includes git information
- Database structure enhanced for hot-reload settings
- CLI enhanced with new commands: `branch`, `branch-list`, `branch-copy`, `configure`, `recover-password`, `projects`
### Fixed
- Build errors with missing imports and CSS dependencies
- Config loading now uses PROJECT_ROOT environment variable
- Password prompt hanging issue in CLI
- Vite alias configuration for proper path resolution
- Project-specific env.config.ts loading
## [1.2.0] - 2025-08-19
### Added
-
### Changed
-
### Fixed
-
## [1.1.0] - 2025-08-19
### Added
- 🎮 Complete 8-bit retro gaming UI theme using 8bitcn-ui components
- 🎨 React-based interactive components with shadcn/ui integration
- 🔒 Custom lock-themed favicon with gradient design
- 📱 Responsive 8-bit styled interface with CRT monitor effects
- ⚡ Tailwind CSS v4 with Vite plugin for improved performance
- 🎵 Sound effect placeholders for user interactions
- 🏷️ Dynamic page titles with project name support
- 🖼️ Animated retro grid background with scanline effects
- 🎯 Press Start 2P font for authentic pixel-art typography
### Changed
- Migrated from Astro components to React components for better interactivity
- Updated to Tailwind CSS v4 with modern CSS-based configuration
- Redesigned entire UI with 8-bit gaming aesthetic
- Improved CLI commands for simpler usage (env-manager instead of npx)
- Enhanced page title structure: [Project] | Env Manager | BuildAppolis
### Fixed
- Astro build configuration for Tailwind v4 compatibility
- TypeScript configuration for React JSX support
- Path aliases for proper module resolution
## [1.0.5] - 2025-08-18
### Added
-
### Changed
-
### Fixed
-
## [1.0.4] - 2025-08-18
### Added
- `DevServerConfig` interface for development server configuration
- `projectVersion` property to ProjectConfig for project versioning
- `envManagerVersion` property to ProjectConfig for version compatibility
- `devServer` property to ProjectConfig for dev server settings
- Export DevServerConfig and CustomValidation types in index.ts
### Fixed
- Missing properties from original env-manager implementation
- Full compatibility with env.config.ts structure
## [1.0.3] - 2025-08-18
### Added
- `example` property to ProjectVariableConfig for showing example values
- `CustomValidation` interface for custom validation functions
- `customValidation` property to ProjectValidation interface
### Fixed
- Missing type exports for CustomValidation interface
## [1.0.2] - 2025-08-18
### Added
- `type` property to ProjectVariableConfig for variable type hints ('url', 'email', 'json', etc.)
- `generate` property for automatic value generation strategies ('uuid', 'crypto', 'password')
- `default` as an alias for `defaultValue` for better compatibility
### Fixed
- TypeScript interface compatibility with env.config.ts usage
## [1.0.1] - 2024-08-18
### Added
- Proper TypeScript type exports in package.json
- Main index.ts file for centralized exports
- Export mappings for better module resolution
- Files field in package.json to control published content
### Fixed
- TypeScript types not being accessible when importing the package
- Module resolution issues with TypeScript projects
### Changed
- Main entry point changed from dist/server/entry.mjs to index.ts
- Added explicit exports field for better ESM support
## [1.0.0] - 2024-08-18
### Added
- Initial release of BuildAppolis Env-Manager
- Web-based UI for managing environment variables
- Encrypted storage using SQLite database
- Snapshot functionality for versioning configurations
- Project validation against env.config.ts requirements
- Docker support with Dockerfile and docker-compose.yml
- Astro-based frontend with TypeScript
- API endpoints for programmatic access
- BuildAppolis custom license for commercial protection
- Export functionality for .env and .env.example files
- Categories and filtering for variable organization
- Password protection for sensitive operations
- Modular component architecture
- Optimized bundle size (14KB JS, 3.6KB gzipped)
### Security
- Sensitive variables are automatically encrypted at rest
- Password-based authentication for access control
- Secure export with password confirmation
[Unreleased]: https://github.com/buildappolis/env-manager/compare/v1.4.12...HEAD
[1.4.12]: https://github.com/buildappolis/env-manager/compare/v1.4.11...v1.4.12
[1.4.11]: https://github.com/buildappolis/env-manager/compare/v1.4.10...v1.4.11
[1.3.0]: https://github.com/buildappolis/env-manager/compare/v1.2.0...v1.3.0
[1.2.0]: https://github.com/buildappolis/env-manager/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/buildappolis/env-manager/compare/v1.0.5...v1.1.0
[1.0.5]: https://github.com/buildappolis/env-manager/compare/v1.0.4...v1.0.5
[1.0.4]: https://github.com/buildappolis/env-manager/compare/v1.0.3...v1.0.4
[1.0.3]: https://github.com/buildappolis/env-manager/compare/v1.0.2...v1.0.3
[1.0.2]: https://github.com/buildappolis/env-manager/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/buildappolis/env-manager/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/buildappolis/env-manager/releases/tag/v1.0.0