tftsr-devops_investigation/docs/wiki/Integrations.md
Shaun Arman 52f464d8bd docs: add wiki source files and CI auto-sync pipeline
- Add docs/wiki/ with 11 wiki pages (Home, Architecture, Database,
  AI-Providers, PII-Detection, IPC-Commands, CICD-Pipeline,
  Security-Model, Integrations, Development-Setup, Troubleshooting)
- Add wiki-sync step to .woodpecker/test.yml: syncs docs/wiki/*.md to
  the Gogs wiki git repo on every push to master
- Add Wiki Maintenance section to CLAUDE.md: code→wiki file mapping
  so Claude and contributors know which wiki page to update per change

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 13:45:30 -05:00

3.0 KiB

Integrations

Status: All integrations are v0.2 stubs. They are implemented as placeholder commands that return "not yet available" errors. The authentication framework and command signatures are finalized, but the actual API calls are not yet implemented.


Confluence

Purpose: Publish RCA and post-mortem documents to a Confluence space.

Commands:

  • test_confluence_connection(base_url, credentials) — Verify credentials
  • publish_to_confluence(doc_id, space_key, parent_page_id?) — Create/update page

Planned implementation:

  • Confluence REST API v2: POST /wiki/rest/api/content
  • Auth: Basic auth (email + API token) or OAuth2
  • Page format: Convert Markdown → Confluence storage format (XHTML-like)

Configuration (Settings → Integrations → Confluence):

Base URL:   https://yourorg.atlassian.net
Email:      user@example.com
API Token:  (stored in Stronghold)
Space Key:  PROJ

ServiceNow

Purpose: Create incident records in ServiceNow from TFTSR issues.

Commands:

  • test_servicenow_connection(instance_url, credentials) — Verify credentials
  • create_servicenow_incident(issue_id, config) — Create incident

Planned implementation:

  • ServiceNow Table API: POST /api/now/table/incident
  • Auth: Basic auth or OAuth2 bearer token
  • Field mapping: TFTSR severity → ServiceNow priority (P1=Critical, P2=High, etc.)

Configuration:

Instance URL: https://yourorg.service-now.com
Username:     admin
Password:     (stored in Stronghold)

Azure DevOps

Purpose: Create work items (bugs/incidents) in Azure DevOps from TFTSR issues.

Commands:

  • test_azuredevops_connection(org_url, credentials) — Verify credentials
  • create_azuredevops_workitem(issue_id, project, config) — Create work item

Planned implementation:

  • Azure DevOps REST API: POST /{organization}/{project}/_apis/wit/workitems/${type}
  • Auth: Personal Access Token (PAT) via Basic auth header
  • Work item type: Bug or Incident

Configuration:

Organization URL: https://dev.azure.com/yourorg
Personal Access Token: (stored in Stronghold)
Project:          MyProject
Work Item Type:   Bug

v0.2 Roadmap

Integration implementation order (planned):

  1. Confluence — Most commonly requested; Markdown-to-Confluence conversion library needed
  2. Azure DevOps — Clean REST API, straightforward PAT auth
  3. ServiceNow — More complex field mapping; may require customer-specific configuration

Each integration will also require:

  • Audit log entry on every publish action
  • PII check on document content before external publish
  • Connection test UI in Settings → Integrations

Adding an Integration

  1. Implement the logic in src-tauri/src/integrations/{name}.rs
  2. Remove the stub Err("not yet available") return in commands/integrations.rs
  3. Add the new API endpoint to the Tauri CSP connect-src
  4. Add Stronghold secret key for the API credentials
  5. Wire up the Settings UI in src/pages/Settings/Integrations.tsx
  6. Add audit log call before the external API request