Skip to content

Validate connectors against real accounts: opt-in live smoke tests + checklist #77

Open

Description

@AlanEdward19

Context

Every connector merged so far was built and tested against fake APIs only (CI has no network and no credentials, by design). None has been run against a real account using the Waymark identity yet: GitHub App (#61), Entra provider (#62), Atlassian provider (#63), repo docs (#52), Linear (#55), Notion (#57), Discord (#58). Real APIs drift from docs (field names, pagination, rate-limit headers, auth quirks), so we need a repeatable way to prove each connector works end to end, read-only, with its own identity.

Part of epic #20.

Goal

  1. Opt-in live smoke tests that run against real accounts when credentials are present and are skipped otherwise.
  2. A manual GitHub Actions workflow to run them on demand with repository secrets.
  3. A validation checklist per connector, filled once by the maintainer, recorded in this issue.

Evidence

Exact decisions

Live smoke tests

Manual workflow

.github/workflows/live.yml: on: workflow_dispatch with an input connectors (comma list or all), environment: live (secrets live there, not at repo level), permissions: contents: read, Node 24, npm ci, npm run test:live. Uses SHA-pinned actions like ci.yml (#60).

Checklist (maintainer, once per connector; tick here with date)

For each source: identity created as in docs/identities.md with read-only permissions → waymark sync succeeds → waymark search <a known word> finds a doc with the right link → change something at the source and resync (update shows up) → delete/trash something where supported (removed after resync) → the source's audit log shows Waymark as the actor → auth: 'personal' (if supported) works and logs the warning.

Deferred manual checks from #113

#113 merges without these; they were moved here so they are not lost. Counts only, never content.

How to run

The maintainer runs the checklist above by hand for each connector: add the source to config.json, set the env vars from docs/identities.md, run waymark sync, then check counts and search. npm run test:live / live.yml stay the automated path. This issue stays open until the checklist is done for every connector listed.

Acceptance criteria

  • npm run test:live with no env vars: every live test skipped, exit 0; npm run check unchanged (does not include test-live/).
  • With credentials for at least one source (maintainer), the corresponding live test passes; result (counts only) pasted in this issue.
  • Secret-leak scan helper unit-tested with a synthetic secret.
  • live.yml present, manual-only, uses the live environment, pinned actions.
  • test-live/README.md lists every env var per connector and links docs/identities.md.

Out of scope

Write operations of any kind, load/performance testing, running live tests on PRs.

Pending test coverage and live validation from PR #130

Tracks the remaining test-only work for #54, #64 and #65, implemented in PR #130. Automated fake-API and local integration validation passed: npm run check (494 passed, 1 skipped). This is not evidence of successful authentication or synchronization against real Azure DevOps/Confluence accounts. Keep this issue open until the following checks have recorded results.

  • Add opt-in live smoke coverage for Azure DevOps PRs (Azure DevOps connector: pull requests and review threads #54), Azure DevOps wikis (Azure DevOps connector: project and code wikis #65) and Confluence (Confluence connector: pages of configured spaces #64), following the existing test-live/ harness. Document target environment variables in test-live/README.md; keep live tests outside npm run check and skip cleanly without credentials.
  • Azure DevOps PRs: use a maintainer-selected project and Waymark service principal with Basic access and repository Read permissions. Confirm repository filtering, full PR descriptions, reviewer votes, file threads/replies, and incremental resync. Exercise pagination with suitable existing data and record any scenario not exercised.
  • Azure DevOps wikis: confirm wiki filtering, markdown content and page pagination. Run a second unchanged sync and verify no new wiki commit. Using maintainer-prepared fixture changes, verify updated pages and removal after a page disappears. Do not modify remote content from the connector or live tests.
  • Confluence: use a maintainer-selected space and Waymark service account. Confirm space-key resolution, ADF panel/table rendering, Link pagination, incremental resync and search links. Using maintainer-prepared fixture changes, verify archived/deleted pages disappear after resync.
  • For each connector, verify read-only app identity/permissions and that credentials do not appear in stored files or logs. Record identity evidence where the platform exposes it; otherwise mark the limitation explicitly.
  • Record execution date, tested commit SHA, commands or workflow-run link, document counts for first/second sync, pass/fail for each scenario and remaining limitations here. Never paste tokens, document content or personal data. Skipped tests do not count as live validation.

No live execution has been performed for these three connectors yet. This checklist is follow-up validation; it does not claim PR #130 has passed real-account tests.

Activity

  1. added this to the v0.4 Connectors milestone on Oct 31, 2026
  2. AlanEdward19 commented on Oct 31, 2026

    @AlanEdward19
    OwnerAuthor

    Live run 2026-10-31 (counts only)

    Still pending: manual checklist items (search, update/delete at source, audit log shows Waymark) and the other connectors (identities not created yet).

  3. AlanEdward19 commented on Oct 31, 2026

    @AlanEdward19
    OwnerAuthor

    Manual checklist, GitHub (2026-10-31)

    • Search: waymark search "installation token confirmed" → first hit waymark-gh/issue/77 with the correct link.
    • Update at source → resync: the previous comment on this issue was posted after the last local sync; the incremental resync picked it up (it is the matched text above).
    • Delete: N/A. The GitHub connector does not handle deletions (issues/PRs are almost never deleted).
    • Audit log shows Waymark: N/A on a personal account. The GitHub security log does not record API reads, and the org audit log with API events requires an organization or Enterprise. Substitute evidence: the live test asserts the installation token belongs to the app (uses an installation token, not a user token ✓).
    • auth: 'personal': works and logs warn: waymark-gh uses a personal token; production must use the Waymark app identity.
  4. waymark-ops commented on Nov 2, 2026

    @waymark-ops

    Reopened: live validation is still pending for most connectors, and #113 (Jira #56, Azure DevOps work items #53, path facts #84) merges without its manual checks. Those checks are now listed in the body and will be run through the local portal (#81) once it lands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions