Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ import { CreateStdOAuthCredential } from "@/components/credentials/actions/Creat
import { Spinner } from "@/components/Spinner";
import { Button } from "@/components/ui/button";
import { deleteConnector } from "@/lib/connector";
import ConnectorDocsLink from "@/components/admin/connectors/ConnectorDocsLink";

export interface AdvancedConfig {
refreshFreq: number;
Expand Down Expand Up @@ -640,6 +641,7 @@ export default function AddConnector({
null
}
/>
<ConnectorDocsLink sourceType={connector} />
</CardSection>
)}

Expand Down
34 changes: 34 additions & 0 deletions web/src/components/admin/connectors/ConnectorDocsLink.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { ValidSources } from "@/lib/types";
import { getSourceDocLink } from "@/lib/sources";

export default function ConnectorDocsLink({
sourceType,
className,
}: {
sourceType: ValidSources;
className?: string;
}) {
const docsLink = getSourceDocLink(sourceType);

if (!docsLink) {
return null;
}

const paragraphClass = ["text-sm", className].filter(Boolean).join(" ");

return (
<p className={paragraphClass}>
Check out
<a
className="text-blue-600 hover:underline"
target="_blank"
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Sep 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

target="_blank" is missing rel="noopener noreferrer", which is a security risk (reverse tabnabbing).

Prompt for AI agents
Address the following comment on web/src/components/admin/connectors/ConnectorDocsLink.tsx at line 24:

<comment>target=&quot;_blank&quot; is missing rel=&quot;noopener noreferrer&quot;, which is a security risk (reverse tabnabbing).</comment>

<file context>
@@ -0,0 +1,33 @@
+      Check out
+      &lt;a
+        className=&quot;text-blue-600 hover:underline&quot;
+        target=&quot;_blank&quot;
+        href={docsLink}
+      &gt;
</file context>
Fix with Cubic

rel="noopener"
href={docsLink}
>
{" "}
our docs{" "}
</a>
for more info on configuring this connector.
</p>
);
}
17 changes: 2 additions & 15 deletions web/src/components/credentials/actions/CreateCredential.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import { submitCredential } from "@/components/admin/connectors/CredentialForm";
import { TextFormField } from "@/components/Field";
import { Form, Formik, FormikHelpers } from "formik";
import { PopupSpec } from "@/components/admin/connectors/Popup";
import { getSourceDocLink } from "@/lib/sources";
import GDriveMain from "@/app/admin/connectors/[connector]/pages/gdrive/GoogleDrivePage";
import { Connector } from "@/lib/connectors/connectors";
import { Credential, credentialTemplates } from "@/lib/connectors/credentials";
Expand All @@ -24,6 +23,7 @@ import { useUser } from "@/components/user/UserProvider";
import CardSection from "@/components/admin/CardSection";
import { CredentialFieldsRenderer } from "./CredentialFieldsRenderer";
import { TypedFile } from "@/lib/connectors/fileTypes";
import ConnectorDocsLink from "@/components/admin/connectors/ConnectorDocsLink";

const CreateButton = ({
onClick,
Expand Down Expand Up @@ -213,20 +213,7 @@ export default function CreateCredential({

return (
<Form className="w-full flex items-stretch">
{!hideSource && (
<p className="text-sm">
Check our
<a
className="text-blue-600 hover:underline"
target="_blank"
href={getSourceDocLink(sourceType) || ""}
>
{" "}
docs{" "}
</a>
for information on setting up this connector.
</p>
)}
{!hideSource && <ConnectorDocsLink sourceType={sourceType} />}
<CardSection className="w-full items-start dark:bg-neutral-900 mt-4 flex flex-col gap-y-6">
<TextFormField
name="name"
Expand Down
Loading