Posts

Showing posts from November, 2025

KB: Understanding Microsoft-Owned APIs, SPs, and API Permissions

  1. Microsoft-Owned APIs behave differently The App Registration lives in Microsoft’s tenant (hidden from you) You only see the Service Principal (SP) in your tenant The Microsoft API SP never shows API permissions This is expected and correct Example: Power Platform API → AppID 8578e004-a5c6-46e7-913e-12f58912df43 (Microsoft-owned) 2. API permissions are ALWAYS stored on the client application , not on the Microsoft API When you grant a permission like: CopilotStudio.Copilots.Invoke It gets added to the client application's SP/App Registration , e.g.: "My Application" —not— Power Platform API SP So the client app will show: ✔ API permissions ✔ Delegated permissions ✔ Admin consent The Microsoft API SP will show: ❌ Nothing ❌ No API permissions ❌ No scopes ❌ No roles 3. Why? Because permissions are modeled as: Client App → requests → permission → from → Resource API The resource API (Microsoft-owned SP) does NOT keep track of who...

KB: Git HEAD explained using the "Tape Head" Analogy

Image
  The “Tape Head” Analogy for Git HEAD version control   HEAD = The read/write head on a cassette tape Think of your entire Git repository like an old cassette tape with multiple tracks (branches). ✔️ HEAD is the physical read/write head. It doesn’t store music itself — it just points to where on the tape you want to read or write. ✔️ Switching branches = moving the tape head When you run: git switch feature/login You’re not changing the branch itself — you’re just moving the tape head to read/write on that track. HEAD only exists once There is one tape head , but many tracks. The head points to whichever track you choose. Branches = multiple tracks on the same cassette Each branch is like its own “audio track” that ends at a different timestamp (commit): main -> Commit A feature/ login -> Commit C bugfix -> Commit F All those tracks exist, but the HEAD can point only to ONE at a time . Commits = positions on the track When you rewind to an old...