Day One on a New Project: Navigating SharePoint, Power Apps & Graph API

THE STARTING POINT

I knew nothing. That was fine.

Joining a new project mid-flight is always a mix of excitement and uncertainty. Today was that day for me. The app in question — a Power App — pulls data from SharePoint. My job: figure out how to validate that data pipeline automatically, using our existing Java + REST Assured framework.

I started with one question: how does data actually get into this app? The answer, it turned out, was more nuanced than expected.


WHAT I LEARNED

The architecture is simpler — and more complex — than it looks

The team confirmed there are no custom APIs. Data flows directly from SharePoint lists into the Power App via Microsoft's built-in connectors, authenticated through Entra ID (formerly Azure AD). No App Registration, no Client Secret — just delegated user-based auth.

SharePoint Lists → Power Automate Flows (list-to-list movement) → Power App (raw data + in-app transformations) → User-facing tables and forms

The key insight: Power Automate flows are involved for some data processing, moving items between lists. That means there's a traceable source → destination relationship — and that's exactly where validation adds the most value.


THE TOOLING DEBATE

RPA vs Playwright vs API — which wins?

This is a question worth addressing head-on. RPA tools are popular in Power Platform circles but they're fragile, hard to version-control, and not great for assertions. Playwright works for UI validation but Canvas Apps have notoriously unstable DOM locators.

The winner for the data layer? Graph API + our existing Java framework. It's stable, testable, and fits right into what the team already maintains. UI validation via Playwright can come later as a separate layer.

 Graph API — data layer

 Java + REST Assured — existing framework

 Playwright — UI layer, later

 RPA — not needed


WHAT WE CAN VALIDATE

Four dimensions of data quality


Freshness

Was data updated within the expected time window?


Completeness

Are all mandatory fields filled with no nulls?


Connector health

Did the last fetch succeed? Is data reachable?


Accuracy

Are values in expected formats, ranges, and types?

Plus one bonus: list-to-list integrity — verifying that when Power Automate moves a record from List A to List B, nothing gets lost in transit. Row counts, key fields, all of it.


ACCESS & NEXT STEPS

The path to the first Graph API call

The team has a UAT environment and was generous with access. They added me to the SharePoint site as a reader. The Tenant ID? I can pull that directly from the SharePoint URL — no need to ask. That means I have everything I need to make my very first call in Postman tomorrow.

1. Get OAuth token via Postman using delegated auth (resource owner password flow)

2. Call Graph API to fetch the SharePoint site ID from the UAT URL

3. List all SharePoint lists in the site — understand the data structure

4. Explore list items, map fields, identify source → destination flows

5. Port first working call into the Java + REST Assured framework


The best thing about day one on a new project isn't knowing everything — it's asking the right questions. Today was a good day for questions.

Post a Comment

0 Comments