Releases: gregPerlinLi/CertVault
Release v2.11.0
This release introduces a range of improvements across the development environment, CI/CD pipelines, and dependency management for both backend and frontend. Key enhancements include optimized Docker and npm mirror usage for faster builds in China, improved caching and artifact handling in GitLab CI, and updates to frontend dependencies for better compatibility and performance.
Development Environment and Build Optimization
- Switched base Docker image and apt sources to China-based mirrors in
.devcontainer/Dockerfilefor faster image builds; also simplified npm mirror config. [1] [2]
CI/CD Pipeline Improvements
- Updated GitLab CI to improve caching: now caches both Maven and pnpm dependencies, ensures cache is pulled and pushed, and includes
frontend/node_modulesfor faster builds. [1] [2] [3] - Enhanced artifact and release handling: build artifacts (like JARs) are now uploaded using job tokens, and release jobs link to built packages for easier access. [1] [2]
- Improved Docker build caching by using S3-compatible cache storage for multi-arch builds, reducing build times.
- Ensured CI triggers on changes to
.gitlab-ci.ymlitself for better pipeline reliability. - Fixed a typo in Maven build options (
sktip→skip). [1] [2] - Updated Docker login in GitHub Actions to support custom registry tokens.
Frontend Dependency Updates
- Upgraded key frontend dependencies:
valibotto 1.2.0,viteto 6.4.1, and corresponding lockfile updates, improving compatibility and performance. [1] [2] [3] [4] [5] - Updated several
@rollupand@tailwindcss/oxideplatform-specific packages to newer versions, with expanded platform and libc support in the lockfile. [1] [2] - Added new dependencies and type definitions, including
fdir@6.5.0and@types/estree@1.0.8, for improved tooling and type safety. [1] [2]
Release v2.10.0
This pull request introduces a comprehensive DevContainer setup for the CertVault project, enabling a fully reproducible development environment with Java, Node.js, PostgreSQL, and Redis, along with automated configuration scripts and documentation. In addition, it updates the CI workflow to use newer GitHub Actions versions, enhances Docker build and signing processes, and improves artifact handling.
The most important changes are:
DevContainer Environment Setup:
- Added a complete DevContainer configuration, including a
Dockerfilethat installs Java 17, Maven, Node.js 22, pnpm, and PostgreSQL client, and configures npm/pnpm mirrors for faster dependency installation. (.devcontainer/Dockerfile) - Introduced
devcontainer.jsonwith VS Code extension recommendations, port forwarding, persistent volume mounts, environment variables, and post-create/start hooks. (.devcontainer/devcontainer.json) - Added supporting files for Maven (
settings.xml), npm/pnpm mirror configs (.npmrc,.pnpmrc), and database initialization (init-db.sql). [1] [2] [3] [4] - Provided setup scripts to automate dependency installation and environment readiness checks after container creation and start. (
post-create.sh,post-start.sh) [1] [2] - Added documentation describing the DevContainer environment, usage instructions, and troubleshooting. (
README.md) - Added a Docker Compose file to orchestrate the workspace, PostgreSQL, and Redis services with appropriate volumes and environment variables. (
docker-compose.yml)
CI/CD Workflow Improvements:
- Upgraded GitHub Actions to the latest major versions for improved security and reliability, including
actions/checkout@v5,actions/setup-java@v5,actions/setup-node@v6, and artifact actions. (backend-ci.yaml) [1] [2] [3] [4] [5] [6] - Enhanced Docker build pipeline: added QEMU and BuildX setup for multi-architecture builds, and integrated Cosign for image signing (both with a private key and with GitHub OIDC). (
backend-ci.yaml) [1] [2] - Improved artifact handling and publishing, including copying and updating Helm chart documentation. (
backend-ci.yaml)
Configuration and Documentation:
- Added a detailed DevContainer README to guide developers on environment usage, customization, and troubleshooting. (
README.md) - Provided sample npm and pnpm mirror configuration files for fast and reliable package installation in China. (
.npmrc,.pnpmrc) [1] [2]
These changes together enable a fast, reliable, and portable local development experience and bring the CI/CD pipeline up to date with best practices.
Release v2.4.0
Release Description
Title: CI/CD Enhancements and Database Support for CertVault
Description:
This release introduces several updates to enhance the CertVault project, focusing on CI/CD workflows, database support, and API documentation. Below are the highlights:
1. CI/CD Workflow Enhancements
- OpenAPI Documentation:
- Added steps to generate OpenAPI documentation during the CI build process.
- Uploaded the OpenAPI YAML file as an artifact.
- Implemented a new job to publish API documentation to a separate repository (
CertVaultAPIDoc). - Redis Integration:
- Added Redis service configuration to
backend-ci.yamlfor testing in the CI environment. - Application Configuration for CI:
- Created a new
application-ci.yamlfile with specific configurations for the CI environment, including database, security, logging, and superadmin initialization.
2. Database Support
- H2 Database Integration:
- Added support for the H2 database.
- Created an
schema-h2.sqlfile defining tables for CA, certificates, roles, users, and login records. - Updated configurations to extend PostgreSQL driver checks to include the H2 driver.
- Ensured column and table name formatting is compatible with both databases.
3. API and Documentation Updates
- Swagger UI Enhancements:
- Added the CertVault logo to the Swagger UI for branding.
- Updated API documentation configuration to improve clarity and remove unnecessary imports.
4. Version Updates
- Incremented the server version across the following updates:
- 2.3.0 → 2.3.1: Adjusted dependencies and added H2 database dependency.
- 2.3.1 → 2.3.2: Included CI-related configurations and Redis service.
- 2.3.2 → 2.3.3: Finalized incremental changes.
Commits:
- Generate and publish OpenAPI documentation
- Update server version to 2.3.1
- Add H2 database schema
- Add application-ci.yaml for CI environment
- Add H2 database support
- Enhance Swagger UI with CertVault logo
- Update server version to 2.3.2
- Add Redis service to GitHub Actions
- Update server version to 2.3.3
Please note that the results may be incomplete. You can view additional commits for further details.
Release v2.3.0
Release Description
Title: Enhance Certificate and Private Key Management Features
Description:
This release introduces several key improvements and features for managing certificates and private keys in the CertVault project. Below are the detailed updates:
1. Private Key Management
- New Classes for Private Key Details:
PrivkeyDetails: Stores metadata, such as algorithm, encoding, format, parameters, and specific information about private keys.PrivkeyDetailsDTO: Facilitates the transmission of private key metadata via APIs.- Specific detail classes for private key types:
ECCPrivkeySpecificEd25519PrivkeySpecificRSAPrivkeySpecific- Private Key Parsing Functionality:
- Introduced the
analyzePrivkeymethod for parsing Base64-encoded PEM private keys. - Supported key types include RSA, EC, and Ed25519.
- Added detailed parsing for:
- EC curve names.
- X coordinate and parity for Ed25519 keys.
- New API for Private Key Analysis:
/cert/privkey/analyze: Enables the parsing and analysis of private key information.
2. Certificate Enhancements
- Certificate DTO Improvements:
- Added
algorithmandkeySizefields to certificate DTOs for more detailed metadata. - API Enhancements:
- Extended the
getCaCertAPI by introducing theneedRootCaparameter, allowing the inclusion of root CA certificates in responses. - Enhanced
getSslCertAPI to support exporting full certificate chains with root CA. - UI Updates:
- Updated
DispCertInfoDlgto display detailed information about public keys, including RSA, ECC, and Ed25519-specific details. - Improved
ReqNewCertDlgto allow users to selectalgorithmandkeySizewhen requesting new certificates. - Added functionality in
ExCertDlgto export full certificate chains with root CA.
3. Bug Fixes
- Corrected values for displaying ECC and Ed25519 details in
DispCertInfoDlg: - Updated
AccordionPanelvalues for ECC Point Q and W, and Ed25519 Point.
4. Additional Features
- Enhanced Certificate Request Dialogs:
- Added support for algorithm and key size selection in
ReqNewCertDlg. - Included computed properties for key size validation.
- Reset form values upon dialog close or CA selection changes.
- Exporting Full Certificate Chains:
- Introduced the
exportChainRootstate inExCertDlgfor managing root CA exports. - Added a button for exporting full chains with root CA.
Commits:
- Upgrade server version to 2.1.0
- Add private key detail classes
- Add private key parsing function
- Add
/cert/privkey/analyzeAPI - Enhance certificate DTOs and APIs
- Fix AccordionPanel values in certificate details
- Add algorithm and key size options to certificate requests
- Support exporting fullchain with root CA
For more details, view the full commit history.
Release v2.0.0
Release Description
Title: Dependency Updates, Component Refactoring, and UI Enhancements
Description:
This release introduces multiple improvements and updates for the CertVault project, focusing on dependency upgrades, component refactoring, and UI enhancements. Below are the details:
- Dependency Updates
- Upgraded the
Vitedependency from version6.3.1to6.3.2to ensure compatibility with the latest features and fixes.
- Bug Fixes
- Fixed a potential runtime error in
Binding.vueby adding a null check forcaList.selection, ensuring robustness in therefreshUserfunction.
- Refactoring
- Renamed profile dialog components to include a "Dlg" suffix for better clarity, updated references, and adjusted event handlers in
Profile.vue. - Removed async component imports in
CertMgr.vueand replaced them with direct component usage, simplifying the codebase. - Refactored
Users.vueby removing async component loading, replacing the header with aBreadcrumbcomponent, and cleaning up the template structure. - Removed unused dependencies and code in
SelectCa.vue, including theuseUserStoreimport andisAdminreactive property.
- New Features
- Introduced the
SelectCacomponent for CA selection and integrated it into existing views likeReqNewCertDlgandBinding. - Added a
warnmethod to theuseNotifycomposable for warning notifications. - Enhanced the dashboard by replacing the static header with a dynamic
Breadcrumbcomponent for better navigation.
- UI Enhancements
- Customized the PrimeVue paginator styling in
CertMgrwith aptprop for a consistent look. - Updated the welcome message styling in the dashboard for improved consistency and aesthetics.
Commits:
- Update Vite to version 6.3.2
- Fix null check for caList.selection in Binding.vue
- Rename dialog components and update references
- Remove async component imports in CertMgr.vue
- Remove async component loading in certificate views
- Simplify Users view component
- Add SelectCa component and integrate into views
- Add PrimeVue paginator styling in CertMgr.vue
- Update dashboard with Breadcrumb component
- Remove unused user store from SelectCa.vue
Please note that the results may be incomplete. You can view additional commits for more details.
Release v1.9.0
Release Description
Title: Enhancements to Routing, Exception Handling, and Build Configuration
Description:
This release introduces various improvements and fixes in the CertVault project, focusing on routing configuration, exception handling, and build configuration. Below are the highlights:
- Routing Improvements
- Updated router configuration to switch from
createWebHashHistorytocreateWebHistoryfor cleaner URLs. - Added a new
NotFound.vuecomponent to handle 404 errors gracefully. - Included a catch-all route in the router to display the
NotFound.vuecomponent.
- Exception Handling Fixes
- Fixed the HTTP status code for the
NoResourceFoundExceptionto returnPAGE_NOT_FOUNDinstead of the commentedFORBIDDEN. - Improved page-not-found exception handling logic:
- Added
HttpServletRequestparameter inGlobalExceptionHandler. - Redirected non-API requests to the homepage for better user experience.
- Replaced
response.sendRedirectwithrequest.getRequestDispatcher(\"/index.html\").forwardto better handle conflicts between front-end and back-end routing.
- Build and CI Updates
- Updated the server module version from
1.8.3to1.8.7across multiple commits. - Improved GitHub Actions workflows:
- Upgraded
docker/login-actionto v3 andactions/checkoutto v4. - Enhanced the release process by replacing "Release" with "Release" in PR title and comment content.
- Documentation Updates
- Updated document images to reflect the latest changes.
Commits:
- Update project version to 1.8.4
- Fix status code for page-not-found
- Optimize GitHub Actions workflow
- Update document images
- Update project version to 1.8.5
- Add NotFound view and update router configuration
- Update project version to 1.8.6
- Update project version to 1.8.7
- Fix page-not-found exception handling
Please note that the results may be incomplete. You can view additional commits for more details.
Release v1.8.3
Release Description
Title: Enhancements to Certificate Conversion, OpenID Connect, and Build Automation
Description:
This release introduces multiple improvements and new features across the CertVault project, focusing on certificate management, authentication support, and build automation. Below are the highlights:
-
Certificate Management
- Added
CertConverterclass to support mutual conversion between PEM and PFX certificate formats. - Introduced
convertFromPemToPfxandconvertFromPfxToPemmethods for certificate format conversion. - Implemented
convertPemToPfxAPI to accept JSON input and return PKCS12 format certificates. - Enhanced security by optimizing parsing and encryption processes during certificate conversion.
- Added unit tests to validate PEM-to-PFX and PFX-to-PEM conversions, including password-protected scenarios.
- Added
-
OpenID Connect Support
- Added OpenID Connect-related configurations in
application.yml. - Integrated OAuth2 authentication to enhance security and user management.
- Added OpenID Connect-related configurations in
-
Build Automation
- Added
application.yml.exampleto provide configuration examples for project startup. - Created a
Makefileto automate build and installation processes for the frontend and backend, supporting tasks like building, installation, and uninstallation.
- Added
-
Refactorings and Fixes
- Updated database initialization configuration by replacing
DATABASE_TYPEwithspring.sql.init.platformfor schema-locations. - Standardized text case in the
SignInview for consistency.
- Updated database initialization configuration by replacing
-
Version Updates
- Incremented the project version from
1.8.1to1.8.3.
- Incremented the project version from
-
New Domain Classes
- Added
PemResultclass to handle Base64-encoded certificates and private keys, simplifying entity management.
- Added
Commits:
- Update project version to 1.8.2
- Update database initialization configuration
- Add OpenID Connect configuration
- Add configuration examples and build scripts
- Add PEM format certificate and private key entity class
- Add certificate conversion feature
- Add certificate converter unit test
- Add PEM to PKCS12 conversion feature
- Refactor text case in
SignInview
Please note that the above results may be incomplete. You can view additional commits for more details.
Release v1.8.1
Release Description
Title: Add GeoIP Integration, API Enhancements, and Session Management Improvements
Description:
This release introduces several new features, improvements, and updates:
- GeoIP Integration
- Added
GeoLite2-City.mmdbas a geo-IP database for geolocation queries. - Introduced new geographic information fields (
region,province,city) in thelogin_recordtable for MySQL and PostgreSQL databases. - Updated the project version from
1.6.1to1.7.0and added necessary GeoIP2 dependencies.
- Session Management Enhancements
- Reduced the maximum session count from 20 to 3 for improved security and performance.
- Improved user session management in
Security.vue: - Added sorting and selection functionality for online and offline login records.
- Introduced buttons for refreshing, logging out selected sessions, and logging out all sessions.
- Updated table columns to include browser, platform, and OS details.
- API Enhancements
- Added
AbortOptioninterface for timeout and signal control in API calls. - Introduced an
abortparameter to all API functions to replace the deprecatednoTimeoutflag. - Updated
callRestfulApito handle abort signals effectively.
- Authentication Refactoring
- Replaced
DefaultAuthorizationCodeTokenResponseClientwithRestClientAuthorizationCodeTokenResponseClientto improve maintainability and flexibility.
- Dependency Updates
- Bumped
@primeuix/themesto version1.0.3for compatibility with the latest theme updates.
- Login Records Table
- Added a login records table in
Security.vue: - Utilized
LoginRecordDTOandgetUsrLoginRecsfor fetching login data. - Displayed online and offline login records with an asynchronous data table.
Commits:
- Add login records table
- Update project version to 1.6.1
- Adjust maximum session limit
- Optimize authentication code client
- Update @primeuix/themes
- Enhance user session management
- Upgrade version to 1.7.0 and add GeoIP dependency
- Add geographic information fields to login records
- Add GeoLite2-City.mmdb for GeoIP
- Add abort option to API calls
Please note that the above results may be incomplete. You can view additional commits for more details.
Release v1.6.0
Release Description
Title: Add OIDC Logo Support, Security Enhancements, and Dependency Updates
Description:
This release introduces several new features, enhancements, and updates:
- OpenID Connect (OIDC) Logo Support
- Added
OidcProviderDTOclass for handling OpenID Connect Provider data, including provider name and Base64-encoded logo. - Modified the
getOidcProvidermethod to returnOidcProviderDTO. - Integrated OIDC provider logo display in
SignIn.vue. - Added configuration for OIDC logos in
application-dev.ymlandapplication-prod.yml. - Updated deployment configuration with OIDC logo support via environment variables.
- Security Enhancements
- Added a new
Securitycomponent and route in the dashboard for enhanced security management. - Simplified command functions in
AppSidebar.vue.
- Dependency and Build Updates
- Updated
tailwindcss-primeuiand moved it fromdevDependenciestodependencies. - Upgraded
viteto version6.2.6. - Updated
pnpmto version10.8.0. - Incremented the project version to
1.5.2.
- Styling Improvements
- Introduced a custom hover state variant in
main.cssfor better user interaction. - Improved styling of the login button and divider in
SignIn.vue.
- Bug Fixes
- Resolved issues with OIDC login redirection, ensuring redirection occurs within the same window and added a
noopenerflag for security.
Commits:
- Add OpenID Connect Provider DTO
- Add OIDC provider information and logo
- Add support for OIDC authentication provider logo
- Update project version to 1.5.1
- Added support for OIDC provider logo in deployment
- Update dependencies
- Enhance OIDC provider integration
- Add security section to dashboard
- Add custom hover state variant
- Update project version to 1.5.2
Please note that the above results may be incomplete. You can view additional commits for more details.
Release v1.5.0
Rleease Description
Title: Update Project Version, Fix Certificate Validity, and Enhance OIDC Support
Description:
This release includes various updates, fixes, and enhancements:
- Project Version Updates
- Updated the version number of the
certvault-serverproject: - From
1.4.1to1.4.2. - From
1.4.2to1.4.3. - From
1.4.3to1.4.4.
- Certificate Management Fix
- Fixed an issue where the validity period of sub CA and server certificates exceeded that of the parent CA:
- Added checks to validate the sub CA and server certificate validity periods.
- Exceptions with prompts are thrown if validity exceeds the parent CA.
- Dependency Updates
- Upgraded
@vueuse/corefrom^13.0.0to^13.1.0. - Upgraded
@primeuix/themesfrom^1.0.1to^1.0.2.
- OIDC Support Enhancements
- Added OIDC provider support in the user store and sign-in view:
- Introduced
oidcProviderstate and fetch functionality in the user store. - Integrated OIDC login button in the sign-in view.
- Handled busy state during the sign-in process.
- Fixed OIDC login redirection:
- Replaced
fetchwithwindow.openfor OIDC login. - Ensured redirection occurs in the same window with a
noopenerflag for security.
- Cross-Origin Support
- Added global CORS configuration to
WebConfigto solve cross-domain request issues. - Enabled cross-origin support for all controllers by adding the
@CrossOriginannotation.
- UI and Styling Improvements
- Adjusted styling for the divider and text in
SignIn.vue: - Updated border color for better visibility.
- Added consistent text colors for light and dark modes.
Commits:
- Update project version to 1.4.2
- Fix certificate validity issue
- Update dependency versions
- Add OIDC provider support
- Update project version to 1.4.3
- Update project version to 1.4.4
- Added global CORS configuration
- Add cross-domain support for controllers
- Styling improvements in SignIn.vue
- Fix OIDC login redirection
Please note that the above results may be incomplete. You can view additional commits for more details.