← Work

typescript · azure-functions · microsoft-graph

Enterprise Search Connector

Indexes approved policy documents from a quality-management system into Microsoft Search — and fails closed when unsure.

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.

Next: Approval Workflow Engine →