Skip to content

feat(domains): certificate problems in the notifications - #93

Merged
hiddify-com merged 3 commits into
hiddify:devfrom
Hiddify-Official:feat/domain-notices
Oct 23, 2026
Merged

hiddify-com merged 3 commits into
hiddify:devfrom
Hiddify-Official:feat/domain-notices

Conversation

@Hiddify-Official

Copy link
Copy Markdown
Contributor

Builds on #86 (the notifications bell) and #87 (Config health), and includes their commits until they are merged. Only the last commit is this change.

Problem

Certificate problems and save warnings showed only on the Domains page (a row's error, a toast after saving). An admin on another page never heard of them.

Change

  • Endpoint GET domains-page/problems/ (domains_page_api.py): a light endpoint, unlike the page's own GET, that lists domains needing a real certificate whose certificate does not work:
    • getting it failed, or its renewal failed;
    • rate limited;
    • expired, self-signed, missing or invalid.
      Not while a certificate is being requested.
  • Notifications (usePanelNotifications.ts, new shared/composables/useDomainNotices.ts):
    • a notice per problem, saying which domain, what's wrong, the CA's message and "Details: Domains page", errors first;
    • refreshed every 10 minutes for super admins and admins, and whenever the Domains page list changes.
  • Save warnings (DomainsView.vue): the warnings a save answers with (the toasts) also stay in the notifications for three days, or until dismissed.
  • Strings in all 7 languages.

Screenshots

Before After
before after

The "after" uses a sample problem (cdn.example.com) and a sample save warning: the test panel has no failing certificate.

Tested

  • On main (panel restart):
    • the endpoint answers and lists no problem there, since all certificates are fine;
    • with a sample problem and warning, the bell shows the certificate error first and the save warning with the other warnings.
  • Not tested: a real certificate failure, and a real save warning.

Review

  • Confidence: Needs review — the notices were checked with sample data only; the problem rules mirror the row's own certificate badge (certState).
  • Complexity: Simple — one read-only endpoint and the notifications list.

🤖 Generated with Claude Code

Hiddify-Official and others added 3 commits October 23, 2026 03:57
The panel's notices (default domain, SSH password login, …) were banners
above every page.

- A bell in the topbar, next to the account icon, lists them; it is
  shown only while there are notices.
- A blinking red dot while some have not been seen; opening the list
  marks them seen (kept per browser, like dismissals). A notice whose
  text changes counts as new again. New ones are tagged until it closes.
- Each notice can be dismissed from the list, as from the banner; with
  none left the bell goes away.
- The banner component is removed; toasts for toast notices still show.
- Strings in all 7 languages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in the bell

The check fetched the subscription from the first domain, which can be the
server's bare IP: its certificate names the server's hostname, so the fetch
failed with an SSL hostname mismatch although nothing was wrong. A domain
name is now preferred; with only an IP the server asks itself without the
certificate check.

Errors get a kind (certificate, timeout, dns, unreachable, http, empty,
core) and the dashboard card explains each one and where to look, with the
technical message (subscription path removed) on demand and wrapped inside
the card. Failed configs get a reason in words. Config health problems also
show in the topbar notifications, errors first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tions

Domains whose certificate does not work (getting it failed, its renewal
failed, rate limited, expired, self-signed, missing) show in the topbar
notifications on every page, errors first, from a light
domains-page/problems/ endpoint. The warnings a save answers with (a toast
on the page) also stay there for three days or until dismissed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🥷 Ninja i18n – 🛎️ Translations need to be updated

Project /project.inlang

lint rule new reports level link
Missing translation 125 warning contribute (via Fink 🐦)
Identical pattern 2 warning contribute (via Fink 🐦)

@hiddify-com
hiddify-com merged commit 348589a into hiddify:dev Oct 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants