Problem
Approved policy documents lived in a quality-management system that Microsoft Search couldn’t see. People needed to find them from Microsoft 365 — and only the approved versions.
Constraints
- Only approved documents may appear in search.
- Sync follows changes in the source vault instead of re-crawling it.
- A connector that deletes the wrong document is worse than one that deletes nothing.
Decisions
- Designed against an ADR foundation: the decisions were written down before the code.
- A canonical document model sits between the source system and Microsoft Graph, so neither side’s shape leaks into the other.
- Incremental sync from vault changes.
- Stale-deletion rules fail closed: if the connector can’t be sure a document is gone, it stays.
- Run locks stop two syncs from overlapping.
Verification
- Dry-run validation exercises a sync end to end without writing to the index.
Outcome
A greenfield integration in TypeScript on Azure Functions and Microsoft Graph, bringing approved policy PDFs into Microsoft Search.