zmuxuny opened a new issue, #6301: URL: https://github.com/apache/rocketmq-dashboard/issues/6301
### 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 Originally reported in #5039; that report did not record its exact initial commit. PR #5251 was refreshed against rocketmq-studio@5e4c39b053c35a5598cc79ff331b8a54e649d7b1 on October 10; latest review revision is 70671669743fa024155c8b3416b471f71e8c767a. The results below are dated published validation, not fresh October 12 tests. ### Runtime Environment Studio K8s certificate metadata inventory, K8sCertService and its frontend page. Fixed-clock service tests on Java 21 and frontend Vitest. This concerns reporting certificate validity, not installing certificates or changing Kubernetes. ### Connected RocketMQ Cluster No live RocketMQ or Kubernetes cluster is required for the certificate-status calculation. ### Build Toolchain _No response_ ### Describe the Bug This continues #5039 → #5549. github-actions[bot] closed #5549 on 2026-10-12 at 00:22:15 UTC after seven days without issue activity: https://github.com/apache/rocketmq-dashboard/issues/5549#issuecomment-6115549109 . The closure is stale housekeeping, not a maintainer rejection. K8sCertService.createCert parses and stores both notBefore and notAfter, but the reported refreshExpirationState implementation only checks notAfter. A certificate whose expiry is more than 30 days away can be shown as valid even before its validity starts. Existing fix PR #5251 remains Open and Ready for review at 70671669743fa024155c8b3416b471f71e8c767a, unmerged. No new PR or expanded implementation is proposed. ### Steps to Reproduce 1. Use a fixed clock at 2025-07-01 UTC. 2. Provide a certificate with notBefore=2025-07-02 and notAfter=2026-07-02. 3. Call listCerts() and inspect its status and inventory label. The create form's parsed PEM dates flow through the same status calculation. A controlled service fixture reproduces the defect without uploading a real certificate. ### What Did You Expect to See? Return a distinct not_yet_valid state before notBefore, preserving expired precedence and the existing valid/expiring boundaries. Preserve validity dates and daysRemaining; expose and translate the state consistently in API/UI. notBefore equal to now or absent retains existing behavior. ### What Did You See Instead? Before the correction, listCerts() returns status=valid before the validity period begins and the inventory shows a green valid label. ### Additional Context ### Existing review and revision The October 10 review confirmed the defect and requested the missing API enum-glossary entry, consistent translation of all four labels, and conflict resolution retaining upstream UTC tests: https://github.com/apache/rocketmq-dashboard/pull/5251#pullrequestreview-5478049590 . The published response https://github.com/apache/rocketmq-dashboard/pull/5251#issuecomment-6095264396 records those changes in 70671669743fa024155c8b3416b471f71e8c767a, following non-force merge 360d1817. No later maintainer approval or merge is claimed. ### Dated validation (2026-10-10) 34/34 Java service/controller tests and 16/16 focused frontend certificate/translation tests passed. Both original future-validity and upstream UTC regressions remain. Chinese/English LangProvider cases render all four tags. TypeScript, Vite and final artifact-license verification passed locally; lint had zero errors/ten warnings, formatting and whitespace checks passed. The full local frontend suite was not rerun for this final three-file follow-up. Exact-head CI https://github.com/apache/rocketmq-dashboard/actions/runs/38034250005 completed with failures: - Backend Tests: 3436/3436 passed; Go and frontend Docker passed. - Frontend: 1518 passed, two failures in unchanged CloudCredentialTab tests; all 14 certificate-page cases passed. Later license/build steps in that job were skipped. - Backend Build: binary-license gate failed with 164 missing complete LICENSE/COPYING diagnostics, matching base 5e4c39b0's run 38031714207. Repeated focused CloudCredential runs on this source both passed and reproduced the same failures. Base/preceding-head focused checks passed, so the frontend failures are not claimed proven baseline failures. Overall CI is not green. No unrelated tests were modified/skipped and no remote rerun is claimed. References to #5549 and future-dated/notBefore reports were checked before filing; no newer equivalent continuation was found. Scope remains certificate-status reporting only. AI assistance was used. ### Are You Willing to Submit a Pull Request? - [x] 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]
