Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
plugins
/
admin
/
components
/
File Content:
PluginDetailsSignature.tsx
import React from 'react'; import { PluginErrorCode, PluginSignatureStatus } from '@grafana/data'; import { selectors } from '@grafana/e2e-selectors'; import { Alert } from '@grafana/ui'; import { CatalogPlugin } from '../types'; type Props = { className?: string; plugin: CatalogPlugin; }; // Designed to show signature information inside the active tab on the plugin's details page export function PluginDetailsSignature({ className, plugin }: Props): React.ReactElement | null { const isSignatureValid = plugin.signature === PluginSignatureStatus.valid; const isCore = plugin.signature === PluginSignatureStatus.internal; const isDisabled = plugin.isDisabled && isDisabledDueTooSignatureError(plugin.error); // The basic information is already available in the header if (isSignatureValid || isCore || isDisabled) { return null; } return ( <Alert severity="warning" title="Invalid plugin signature" data-testid={selectors.pages.PluginPage.signatureInfo} className={className} > <p> Grafana Labs checks each plugin to verify that it has a valid digital signature. Plugin signature verification is part of our security measures to ensure plugins are safe and trustworthy. Grafana Labs can’t guarantee the integrity of this unsigned plugin. Ask the plugin author to request it to be signed. </p> <a href="https://grafana.com/docs/grafana/latest/plugins/plugin-signatures/" className="external-link" target="_blank" rel="noreferrer" > Read more about plugins signing. </a> </Alert> ); } function isDisabledDueTooSignatureError(error: PluginErrorCode | undefined) { // If the plugin is disabled due to signature error we rely on the disabled // error message instad of the warning about the signature. switch (error) { case PluginErrorCode.invalidSignature: case PluginErrorCode.missingSignature: case PluginErrorCode.modifiedSignature: return true; default: return false; } }
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
Badges
---
0755
GetStartedWithPlugin
---
0755
InstallControls
---
0755
AppConfigWrapper.tsx
3864 bytes
0644
HorizontalGroup.tsx
833 bytes
0644
Loader.tsx
297 bytes
0644
PluginActions.tsx
2818 bytes
0644
PluginDashboards.tsx
2820 bytes
0644
PluginDetailsBody.tsx
4721 bytes
0644
PluginDetailsDeprecatedWarning.tsx
1273 bytes
0644
PluginDetailsDisabledError.tsx
2802 bytes
0644
PluginDetailsHeaderDependencies.tsx
1823 bytes
0644
PluginDetailsHeaderSignature.tsx
1384 bytes
0644
PluginDetailsPage.tsx
4489 bytes
0644
PluginDetailsSignature.tsx
2077 bytes
0644
PluginList.test.tsx
2394 bytes
0644
PluginList.tsx
1087 bytes
0644
PluginListItem.test.tsx
5436 bytes
0644
PluginListItem.tsx
4181 bytes
0644
PluginListItemBadges.test.tsx
3304 bytes
0644
PluginListItemBadges.tsx
1539 bytes
0644
PluginLogo.tsx
329 bytes
0644
PluginSignatureDetailsBadge.tsx
2081 bytes
0644
PluginSubtitle.tsx
2203 bytes
0644
PluginUsage.tsx
2355 bytes
0644
SearchField.tsx
1268 bytes
0644
VersionList.tsx
2211 bytes
0644
N4ST4R_ID | Naxtarrr