- 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>
98 lines
3.0 KiB
Markdown
98 lines
3.0 KiB
Markdown
# 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
|