zmuxuny opened a new issue, #7212: URL: https://github.com/apache/rocketmq-dashboard/issues/7212
### Before Creating the Bug Report - [x] I have searched the [open issues](https://github.com/apache/rocketmq-dashboard/issues) of this repository and believe that this is not a duplicate. - [x] This is a defect in RocketMQ Studio, not a usage question and not a defect in another Apache RocketMQ repository. - [x] I can reproduce this on the current `master` branch, or I have stated the exact version I am running below. ### Studio Version Source inspected on 2026-10-20 at rocketmq-studio@127c47b06a268cc74224d5f34c56ec7c36ac0d55. Published October 10 validation in #6301/#5251 is historical, not a fresh runtime test. ### Runtime Environment Studio K8s certificate metadata inventory, K8sCertService and frontend status labels. Original validation used Java 21 fixed-clock service tests and frontend Vitest. ### Connected RocketMQ Cluster No live RocketMQ or Kubernetes cluster is needed. Scope is certificate-status reporting, not installing certificates or changing Kubernetes. ### Build Toolchain _No response_ ### Describe the Bug Tracking continuation of #6301, automatically closed by github-actions for seven days of inactivity on 2026-10-20. Reopening is unavailable to this account. Existing fix PR #5251 remains open; no new implementation or PR is proposed. Certificate metadata retains notBefore and notAfter, but refreshExpirationState checks only expiry. A future-starting certificate with distant expiry can therefore be reported as valid before its validity begins. ### Steps to Reproduce 1. Use a fixed clock at 2025-07-01 UTC. 2. Supply a synthetic certificate record with notBefore=2025-07-02 and notAfter=2026-07-02. 3. Call listCerts() and inspect its status/inventory label. The original controlled fixture and regression are recorded in #6301/#5251. Today’s check is source inspection, not a new execution or real certificate upload. ### What Did You Expect to See? Return not_yet_valid before notBefore, preserve expired precedence and existing valid/expiring boundaries, validity dates and daysRemaining. When notBefore equals now or is absent, preserve existing behavior. Expose the status consistently through API documentation and Chinese/English UI labels. ### What Did You See Instead? At the inspected revision, refreshExpirationState(cert, now) reads notAfter, calculates daysRemaining, then chooses expired, expiring or valid without checking notBefore. copyOf preserves notBefore, so the missing condition remains in the status calculation. ### Additional Context Original report: https://github.com/apache/rocketmq-dashboard/issues/6301 Existing fix: https://github.com/apache/rocketmq-dashboard/pull/5251 Current source: https://raw.githubusercontent.com/apache/rocketmq-dashboard/127c47b06a268cc74224d5f34c56ec7c36ac0d55/server/src/main/java/org/apache/rocketmq/studio/cluster/k8s/K8sCertService.java October 10 validation of head 7067166: 34 Java tests and 16 focused frontend tests passed; TypeScript/Vite/frontend license checks passed. Exact-head CI was not green: two CloudCredentialTab failures and the backend binary-license gate failed. Details and limits remain in #5251; no fresh test, CI, maintainer approval or merge is claimed. Open-issue reference and notBefore searches found no equivalent continuation on October 20. AI assistance was used. ### Are You Willing to Submit a Pull Request? - [ ] Yes, I am willing to submit a pull request. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
