Microsoft integrations
Fabric pipeline and adapters across the Microsoft stack
Everything runs in your Microsoft tenant except the call to Jev. One reusable decision service; many surfaces.
Six-layer Fabric pipeline
- Data Layer — Dynamics 365, Dataverse, apps and IoT create raw records; actions land here again via sync.
- ETL Ingestion — ADF, Fabric pipelines, Dataflow Gen2 or Eventstream clean and land tables in OneLake.
- Data Lake / Fabric — Delta Parquet plus a semantic model of business meaning the orchestrator can query.
- Jev decision tier — Your code builds state, calls the TypeSafe API, validates typed answers, applies policy.
- Presentation — Low confidence or irreversible actions go to a person (Teams adaptive card, Power Apps).
- Action — Power Automate or Logic Apps update source systems; audit to OneLake.
Corrected framing: earlier diagrams labelled layer 4 as “LLM business rules”. System One models do not write replies, produce code or generate reasoning essays. Jev is not a Foundry catalogue model or Azure OpenAI wrapper.
Adapter surfaces
| Microsoft surface | Proposed integration | Important boundary |
|---|---|---|
| Power Automate | Custom connector or HTTP call to the adapter | Confirm premium licensing and tenant data policies |
| Logic Apps | HTTP action to an Entra-protected adapter | Managed identity authenticates to Azure, not automatically to TypeSafe |
| Copilot Studio | Custom connector tool or agent flow | Tool output is a recommendation subject to policy |
| Microsoft 365 Copilot | Publish a suitable Copilot Studio agent to a supported channel | Do not assume every lightweight agent surface supports custom actions |
| Microsoft Foundry | OpenAPI tool for the adapter | External tool call, not evidence of native Jev model hosting |
| Azure Functions | Adapter host (optionally behind API Management) | Holds TypeSafe credential; pins model version; validates I/O |
Two authentication boundaries
The workflow uses Microsoft identity to reach your Azure adapter. The adapter then uses the credential accepted by TypeSafe. These are separate trust relationships. Grant each caller only the business operation it needs, and retrieve the vendor secret through Key Vault or an approved secret store.
Illustrative adapter contract
Expose POST /decisions/route-ticket, not an unrestricted evaluate-anything endpoint. Proposed response shape (not the raw TypeSafe schema):
{"decisionId":"d-demo-001","route":"billing",
"reviewRequired":false,"reasonCode":"ROUTE_THRESHOLD_MET",
"routeProbability":0.94,"modelVersion":"jev-1.13.0",
"policyVersion":"ticket-policy-1","questionVersion":"ticket-1"}
reasonCode is generated by policy; it is not a model explanation. Missing data, invalid responses or timeouts produce a review outcome—never a silent approval.