diff --git a/packages/components/credentials/ConfluenceApi.credential.ts b/packages/components/credentials/ConfluenceCloudApi.credential.ts similarity index 83% rename from packages/components/credentials/ConfluenceApi.credential.ts rename to packages/components/credentials/ConfluenceCloudApi.credential.ts index 656ecf6bc..8dcba4929 100644 --- a/packages/components/credentials/ConfluenceApi.credential.ts +++ b/packages/components/credentials/ConfluenceCloudApi.credential.ts @@ -1,6 +1,6 @@ import { INodeParams, INodeCredential } from '../src/Interface' -class ConfluenceApi implements INodeCredential { +class ConfluenceCloudApi implements INodeCredential { label: string name: string version: number @@ -8,8 +8,8 @@ class ConfluenceApi implements INodeCredential { inputs: INodeParams[] constructor() { - this.label = 'Confluence API' - this.name = 'confluenceApi' + this.label = 'Confluence Cloud API' + this.name = 'confluenceCloudApi' this.version = 1.0 this.description = 'Refer to official guide on how to get Access Token or API Token on Confluence' @@ -30,4 +30,4 @@ class ConfluenceApi implements INodeCredential { } } -module.exports = { credClass: ConfluenceApi } +module.exports = { credClass: ConfluenceCloudApi } diff --git a/packages/components/credentials/ConfluenceServerDCApi.credential.ts b/packages/components/credentials/ConfluenceServerDCApi.credential.ts new file mode 100644 index 000000000..668b1e447 --- /dev/null +++ b/packages/components/credentials/ConfluenceServerDCApi.credential.ts @@ -0,0 +1,27 @@ +import { INodeParams, INodeCredential } from '../src/Interface' + +class ConfluenceServerDCApi implements INodeCredential { + label: string + name: string + version: number + description: string + inputs: INodeParams[] + + constructor() { + this.label = 'Confluence Server/Data Center API' + this.name = 'confluenceServerDCApi' + this.version = 1.0 + this.description = + 'Refer to official guide on how to get Personal Access Token on Confluence' + this.inputs = [ + { + label: 'Personal Access Token', + name: 'personalAccessToken', + type: 'password', + placeholder: '' + } + ] + } +} + +module.exports = { credClass: ConfluenceServerDCApi } diff --git a/packages/components/nodes/documentloaders/Confluence/Confluence.ts b/packages/components/nodes/documentloaders/Confluence/Confluence.ts index bccda24c1..3e15048f5 100644 --- a/packages/components/nodes/documentloaders/Confluence/Confluence.ts +++ b/packages/components/nodes/documentloaders/Confluence/Confluence.ts @@ -28,7 +28,7 @@ class Confluence_DocumentLoaders implements INode { label: 'Connect Credential', name: 'credential', type: 'credential', - credentialNames: ['confluenceApi'] + credentialNames: ['confluenceCloudApi', 'confluenceServerDCApi'] } this.inputs = [ { @@ -77,16 +77,24 @@ class Confluence_DocumentLoaders implements INode { const credentialData = await getCredentialData(nodeData.credential ?? '', options) const accessToken = getCredentialParam('accessToken', credentialData, nodeData) + const personalAccessToken = getCredentialParam('personalAccessToken', credentialData, nodeData) const username = getCredentialParam('username', credentialData, nodeData) - const confluenceOptions: ConfluencePagesLoaderParams = { - username, - accessToken, + let confluenceOptions: ConfluencePagesLoaderParams = { baseUrl, spaceKey, limit } + if (accessToken) { + // Confluence Cloud credentials + confluenceOptions.username = username + confluenceOptions.accessToken = accessToken + } else if (personalAccessToken) { + // Confluence Server/Data Center credentials + confluenceOptions.personalAccessToken = personalAccessToken + } + const loader = new ConfluencePagesLoader(confluenceOptions) let docs = []