feat(store,doctor): surface the hub's trust + exposure data (0.77.0)
Some checks failed
Security / Security check (push) Failing after 1s
Some checks failed
Security / Security check (push) Failing after 1s
The trust-gate dialog replaces its generic 'no per-entry status yet (alpha)' note with the hub's classified verification statement — pinned store key / trusted publishers (green), installs without signature checking (amber), install would be refused (red), bridge entry (neutral) — via one shared describeInstallVerification mapping. Against a pre-0.23 hub the field is empty and the old honest wording stays (pinned by test). Information architecture: policy-off is a GLOBAL fact, so it appears as ONE ChainInlineHelp notice above the store grid instead of a warning pill on every card (card noise); only 'blocked' — a genuine per-source anomaly — earns a card pill. Doctor's host services show the hub-classified network reach per endpoint (local only / private network / publicly reachable with a protect-it hint / reach unknown). Verified end-to-end against the live dev hub (guide harness): the wire field arrives, the store page shows exactly one policy notice and quiet cards; trust-gate variants captured via the dialog harness. Suite 123 green. Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
87afa4dc05
commit
2f076ccf29
15 changed files with 732 additions and 13 deletions
|
|
@ -2149,6 +2149,26 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get doctorSummaryDeclared => 'deklariert';
|
||||
|
||||
@override
|
||||
String get svcExposureLoopback => 'nur lokal';
|
||||
|
||||
@override
|
||||
String get svcExposurePrivate => 'privates Netz';
|
||||
|
||||
@override
|
||||
String get svcExposurePublic => 'öffentlich erreichbar';
|
||||
|
||||
@override
|
||||
String get svcExposureUnknown => 'Reichweite unbekannt';
|
||||
|
||||
@override
|
||||
String get svcExposurePublicHint =>
|
||||
'Dieser Dienst-Endpunkt liegt auf einer öffentlichen Adresse — prüfen Sie, ob er abgesichert ist (TLS, Auth, Firewall).';
|
||||
|
||||
@override
|
||||
String get svcExposureUnknownHint =>
|
||||
'Hostname statt IP-Adresse — der Hub löst zur Einstufung bewusst keine Namen auf.';
|
||||
|
||||
@override
|
||||
String get doctorLinkStore => 'Store öffnen';
|
||||
|
||||
|
|
@ -2886,6 +2906,54 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get installConfirmTrustBody =>
|
||||
'Das Modul läuft in einer Sandbox: Es darf nur auf die Netzwerk-Endpunkte, Dateien und Umgebungsvariablen zugreifen, die es selbst deklariert — der Hub setzt diese Liste durch. Die vollständige Berechtigungsliste sehen Sie nach der Installation in den Modul-Details.';
|
||||
|
||||
@override
|
||||
String get storePolicyUnverifiedNotice =>
|
||||
'Die Signaturpflicht ist in der Hub-Richtlinie ausgeschaltet — Installationen werden nicht kryptografisch geprüft. Der Installations-Dialog zeigt den Status je Modul; für geprüfte Installationen security.require_signatures aktivieren.';
|
||||
|
||||
@override
|
||||
String get verifPillUnverified => 'unsigniert';
|
||||
|
||||
@override
|
||||
String get verifPillBlocked => 'blockiert';
|
||||
|
||||
@override
|
||||
String get verifPinnedKey =>
|
||||
'Signatur wird geprüft — hinterlegter Store-Schlüssel';
|
||||
|
||||
@override
|
||||
String get verifPinnedKeyBody =>
|
||||
'Der Hub verifiziert das Paket beim Installieren gegen den fest hinterlegten Schlüssel dieser Quelle. Ein manipuliertes Paket wird abgelehnt.';
|
||||
|
||||
@override
|
||||
String get verifTrustedPublishers =>
|
||||
'Signatur wird geprüft — vertrauenswürdige Herausgeber';
|
||||
|
||||
@override
|
||||
String get verifTrustedPublishersBody =>
|
||||
'Der Hub verifiziert die Signatur beim Installieren gegen die Liste vertrauenswürdiger Herausgeber. Ein Paket ohne gültige Signatur wird abgelehnt.';
|
||||
|
||||
@override
|
||||
String get verifUnverified => 'Wird ohne Signaturprüfung installiert';
|
||||
|
||||
@override
|
||||
String get verifUnverifiedBody =>
|
||||
'Die Signaturpflicht ist in der Hub-Richtlinie ausgeschaltet — dieses Paket wird beim Installieren nicht kryptografisch geprüft. Für geprüfte Installationen security.require_signatures aktivieren.';
|
||||
|
||||
@override
|
||||
String get verifBlocked => 'Installation würde abgelehnt';
|
||||
|
||||
@override
|
||||
String get verifBlockedBody =>
|
||||
'Die Richtlinie verlangt Signaturen, aber für diese Quelle ist kein Schlüsselmaterial hinterlegt — der Hub würde die Installation verweigern.';
|
||||
|
||||
@override
|
||||
String get verifFederated =>
|
||||
'Über Integration angebunden — keine Paket-Signatur';
|
||||
|
||||
@override
|
||||
String get verifFederatedBody =>
|
||||
'Dieser Eintrag ist kein installierbares Paket, sondern läuft über eine konfigurierte Integration (z. B. MCP oder n8n). Eine Paket-Signatur gibt es hier nicht; es gilt das Vertrauen in die Integration.';
|
||||
|
||||
@override
|
||||
String get installConfirmSignatureNote =>
|
||||
'Signaturen prüft der Hub beim Installieren, sofern die Signaturpflicht im Sicherheitsprofil aktiv ist. Einen Signaturstatus vorab zeigt der Store-Index derzeit noch nicht an (Alpha).';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue