diff --git a/confluence/.env-template b/confluence/.env-template index a85d3a002..7c2fadf07 100644 --- a/confluence/.env-template +++ b/confluence/.env-template @@ -1,5 +1,5 @@ CONFLUENCE_USER= -CONFLUENCE_PASSWORD= +CONFLUENCE_API_TOKEN= CONFLUENCE_PRODUCT_URL=https://sample.atlassian.net CONFLUENCE_SPACE_NAME= CONFLUENCE_SEARCH_LIMIT=10 diff --git a/confluence/README.md b/confluence/README.md index 70e0dfbad..d3f58d4de 100644 --- a/confluence/README.md +++ b/confluence/README.md @@ -13,12 +13,14 @@ This connector requires the following environment variables: ``` CONFLUENCE_USER -CONFLUENCE_PASSWORD +CONFLUENCE_API_TOKEN CONFLUENCE_PRODUCT_URL CONFLUENCE_SPACE_NAME ``` -The user and password combination should be a user email address and an API token pair. +The user and api token combination should be a user email address and an API token pair. +The API token can be generated by logging into Confluence and going +to the API tokens [page](https://id.atlassian.com/manage-profile/security/api-tokens). The product URL should be the URL for the Confluence wiki, including the https:// scheme. The space name should be the name of a single space in your wiki. diff --git a/confluence/dev/load_data.py b/confluence/dev/load_data.py index b2d89730f..501d5516b 100644 --- a/confluence/dev/load_data.py +++ b/confluence/dev/load_data.py @@ -9,8 +9,8 @@ confluence = Confluence( url=os.environ.get("CONFLUENCE_PRODUCT_URL"), - username=os.environ.get("CONFLUENCE_CLIENT_USER"), - password=os.environ.get("CONFLUENCE_CLIENT_PASS"), + username=os.environ.get("CONFLUENCE_USER"), + password=os.environ.get("CONFLUENCE_API_TOKEN"), ) space = os.environ.get("CONFLUENCE_SPACE_NAME") diff --git a/confluence/provider/client.py b/confluence/provider/client.py index b69d653af..f68ba0307 100644 --- a/confluence/provider/client.py +++ b/confluence/provider/client.py @@ -1,6 +1,6 @@ +import asyncio import functools -import asyncio from atlassian import Confluence from flask import current_app as app @@ -10,12 +10,12 @@ class ConfluenceClient: - def __init__(self, url, user, password, space, search_limit=10): + def __init__(self, url, user, api_token, space, search_limit=10): try: self.confluence = Confluence( url=url, username=user, - password=password, + password=api_token, ) self.space = space self.search_limit = search_limit @@ -77,9 +77,11 @@ def get_client(): assert (url := app.config.get("PRODUCT_URL")), "CONFLUENCE_PRODUCT_URL must be set" assert (user := app.config.get("USER")), "CONFLUENCE_USER must be set" - assert (password := app.config.get("PASSWORD")), "CONFLUENCE_PASSWORD must be set" + assert ( + api_token := app.config.get("API_TOKEN") + ), "CONFLUENCE_API_TOKEN must be set" assert (space := app.config.get("SPACE_NAME")), "CONFLUENCE_SPACE_NAME must be set" search_limit = app.config.get("SEARCH_LIMIT", 10) - client = ConfluenceClient(url, user, password, space, search_limit) + client = ConfluenceClient(url, user, api_token, space, search_limit) return client