fix(license): shared invalid/grace banners + instance copy

Surface expired/over_instance/revoked red banners with CTAs via a
shared LicenseStatusBanners used by settings and ProGate. Hide seats
in product UI; keep HMAC dual-path and never silent-clear keys.
This commit is contained in:
opsx committed 2026-11-01 03:08:37 +08:00
1 parent af0298e994
commit 62d9b81a70
10 files changed
+265 -45

No files matched your search

+8 -1
View File
@@ -6,7 +6,6 @@ export default {
edition: 'Edition',
expiry: 'Valid until',
customer: 'Licensed to',
seats: 'Seats',
instances: 'Instance limit',
permanent: 'perpetual',
personalTitle: 'Personal',
@@ -18,6 +17,14 @@ export default {
activateFailed: 'Activation failed',
legacyBanner: 'Legacy HMAC keys are in a migration window. Please switch to a LIC- / LICOFF- key. Old keys stay valid until the window ends — never silently invalidated.',
graceBanner: 'Offline grace: {{days}} day(s) left. Reconnect to re-verify.',
status: {
expired: 'License expired. Pro features are locked.',
expiredCta: 'Re-activate',
overInstance: 'Instance limit exceeded',
overInstanceCta: 'Release another instance / change key',
revoked: 'License invalid or revoked',
revokedCta: 'Replace license key',
},
gate: {
title: '{{feature}} is a Pro feature',
desc: 'Upgrade to Pro to unlock the full analytics suite. The Free plan keeps log query, deployment management and user/LDAP administration.',