mirror of
https://github.com/Mintplex-Labs/anything-llm.git
synced 2025-03-13 05:32:24 +00:00
Merge 7811d57bb4
into 4bdd921c75
This commit is contained in:
commit
d93cb258c6
3 changed files with 57 additions and 10 deletions
collector/utils/extensions/Confluence
frontend/src
components/Modals/ManageWorkspace/DataConnectors/Connectors/Confluence
models
|
@ -18,15 +18,16 @@ async function loadConfluence(
|
|||
spaceKey = null,
|
||||
username = null,
|
||||
accessToken = null,
|
||||
personalAccessToken = null,
|
||||
cloud = true,
|
||||
},
|
||||
response
|
||||
) {
|
||||
if (!baseUrl || !spaceKey || !username || !accessToken) {
|
||||
if (!accessToken && !personalAccessToken || accessToken && !username || personalAccessToken && username) {
|
||||
return {
|
||||
success: false,
|
||||
reason:
|
||||
"You need either a username and access token, or a personal access token (PAT), to use the Confluence connector.",
|
||||
"You need either a username and access token, or only a personal access token (PAT), to use the Confluence connector.",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -51,6 +52,7 @@ async function loadConfluence(
|
|||
spaceKey,
|
||||
username,
|
||||
accessToken,
|
||||
personalAccessToken,
|
||||
cloud,
|
||||
});
|
||||
|
||||
|
@ -98,7 +100,7 @@ async function loadConfluence(
|
|||
description: doc.metadata.title,
|
||||
docSource: `${origin} Confluence`,
|
||||
chunkSource: generateChunkSource(
|
||||
{ doc, baseUrl: origin, spaceKey, accessToken, username, cloud },
|
||||
{ doc, baseUrl: origin, spaceKey, accessToken, personalAccessToken, username, cloud },
|
||||
response.locals.encryptionWorker
|
||||
),
|
||||
published: new Date().toLocaleString(),
|
||||
|
@ -137,14 +139,14 @@ async function fetchConfluencePage({
|
|||
spaceKey,
|
||||
username,
|
||||
accessToken,
|
||||
personalAccessToken,
|
||||
cloud = true,
|
||||
}) {
|
||||
if (!pageUrl || !baseUrl || !spaceKey || !username || !accessToken) {
|
||||
if (!accessToken && !personalAccessToken || accessToken && !username || personalAccessToken && username) {
|
||||
return {
|
||||
success: false,
|
||||
content: null,
|
||||
reason:
|
||||
"You need either a username and access token, or a personal access token (PAT), to use the Confluence connector.",
|
||||
"You need either a username and access token, or only a personal access token (PAT), to use the Confluence connector.",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -170,6 +172,7 @@ async function fetchConfluencePage({
|
|||
spaceKey,
|
||||
username,
|
||||
accessToken,
|
||||
personalAccessToken,
|
||||
cloud,
|
||||
});
|
||||
|
||||
|
@ -234,9 +237,12 @@ function validBaseUrl(baseUrl) {
|
|||
* @returns {string}
|
||||
*/
|
||||
function generateChunkSource(
|
||||
{ doc, baseUrl, spaceKey, accessToken, username, cloud },
|
||||
{ doc, baseUrl, spaceKey, accessToken, personalAccessToken, username, cloud },
|
||||
encryptionWorker
|
||||
) {
|
||||
if (personalAccessToken) {
|
||||
accessToken = personalAccessToken;
|
||||
}
|
||||
const payload = {
|
||||
baseUrl,
|
||||
spaceKey,
|
||||
|
|
|
@ -26,6 +26,7 @@ export default function ConfluenceOptions() {
|
|||
spaceKey: form.get("spaceKey"),
|
||||
username: form.get("username"),
|
||||
accessToken: form.get("accessToken"),
|
||||
personalAccessToken: form.get("personalAccessToken"),
|
||||
cloud: form.get("isCloud") === "true",
|
||||
});
|
||||
|
||||
|
@ -133,7 +134,7 @@ export default function ConfluenceOptions() {
|
|||
name="username"
|
||||
className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
|
||||
placeholder="jdoe@example.com"
|
||||
required={true}
|
||||
required={false}
|
||||
autoComplete="off"
|
||||
spellCheck={false}
|
||||
/>
|
||||
|
@ -157,7 +158,7 @@ export default function ConfluenceOptions() {
|
|||
clickable={true}
|
||||
>
|
||||
<p className="text-sm">
|
||||
You need to provide an access token for authentication.
|
||||
You need to provide a username and access token or a personal access token for authentication.
|
||||
You can generate an access token{" "}
|
||||
<a
|
||||
href="https://id.atlassian.com/manage-profile/security/api-tokens"
|
||||
|
@ -181,7 +182,45 @@ export default function ConfluenceOptions() {
|
|||
name="accessToken"
|
||||
className="border-none bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
|
||||
placeholder="abcd1234"
|
||||
required={true}
|
||||
required={false}
|
||||
autoComplete="off"
|
||||
spellCheck={false}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col pr-10">
|
||||
<div className="flex flex-col gap-y-1 mb-4">
|
||||
<label className="text-white text-sm font-bold flex gap-x-2 items-center">
|
||||
<p className="font-bold text-white">
|
||||
Confluence Personal Access Token
|
||||
</p>
|
||||
<Warning
|
||||
size={14}
|
||||
className="ml-1 text-orange-500 cursor-pointer"
|
||||
data-tooltip-id="personal-access-token-tooltip"
|
||||
data-tooltip-place="right"
|
||||
/>
|
||||
<Tooltip
|
||||
delayHide={300}
|
||||
id="personal-access-token-tooltip"
|
||||
className="max-w-xs z-99"
|
||||
clickable={true}
|
||||
>
|
||||
<p className="text-sm">
|
||||
You need to either provide a personal access token or a username and password for authentication.
|
||||
You can create a personal access token in your confluence user settings
|
||||
</p>
|
||||
</Tooltip>
|
||||
</label>
|
||||
<p className="text-xs font-normal text-theme-text-secondary">
|
||||
Personal access token for authentication.
|
||||
</p>
|
||||
</div>
|
||||
<input
|
||||
type="password"
|
||||
name="personalAccessToken"
|
||||
className="bg-theme-settings-input-bg text-white placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5"
|
||||
placeholder="abcd1234"
|
||||
required={false}
|
||||
autoComplete="off"
|
||||
spellCheck={false}
|
||||
/>
|
||||
|
|
|
@ -136,6 +136,7 @@ const DataConnector = {
|
|||
spaceKey,
|
||||
username,
|
||||
accessToken,
|
||||
personalAccessToken,
|
||||
cloud,
|
||||
}) {
|
||||
return await fetch(`${API_BASE}/ext/confluence`, {
|
||||
|
@ -146,6 +147,7 @@ const DataConnector = {
|
|||
spaceKey,
|
||||
username,
|
||||
accessToken,
|
||||
personalAccessToken,
|
||||
cloud,
|
||||
}),
|
||||
})
|
||||
|
|
Loading…
Add table
Reference in a new issue