Artur Mukhamadiev e65fbf4b67 backend: FastAPI backend track handoff (contract revision 1)
FastAPI app, upstream Confluence/model adapters, authoritative history,
rootless container lifecycle, artifact storage and downloads, fake peers
under backend/dev, tests under tests/backend. Root pytest.ini deselects
the live marker by default; requirements gain the backend dependencies.
2026-09-14 21:57:54 +03:00
2026-09-14 17:06:32 +03:00

Confluence Crawler (PAT)

Crawls Confluence Data Center pages into Markdown files, authenticated with a personal access token (PAT) from .env.

⚠️ PATs only work on Confluence Data Center / Server 7.9+. Confluence Cloud does not support PATs — use an API token (basic auth) there instead.

Setup

python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env   # then fill in your values

.env:

CONFLUENCE_URL=https://collab.lge.com
CONFLUENCE_PAT=<your personal access token>

Create the PAT in Confluence: avatar (top right) → Settings → Personal access tokens → Create token. The token inherits your permissions — you can only crawl pages you can see.

Usage

python main.py --space KEY --out output/KEY   # one space
python main.py --all --out output             # all visible spaces
python main.py --all --max-spaces 3 --verbose # limit + debug logging

Each page becomes output/<space>/<page_id>_<slug>.md with YAML front matter (title, page id, space, URL, version, last modified) and the body converted from Confluence storage format to Markdown.

Tests

pytest                 # unit tests + live tests (live uses the PAT from .env)
pytest -m "not live"   # unit tests only, no network
pytest -m live         # live tests only

Live tests are skipped automatically when .env lacks credentials.

Description
No description provided
Readme 548 KiB
Languages
Python 52%
JavaScript 26.9%
TypeScript 15.3%
CSS 3.2%
HTML 1.1%
Other 1.5%