Chapters: 
 

The Cat's Ass indeed! 😸

And you've arrived at a remarkably sensible architecture:

SPO Metrics List
       |
       v
Python Data Layer
       |
       v
5 Reporting Views
(24h, 7d, 1 month, 3 months, ...)
       |
       v
PowerShell Orchestration
(runs 5 Python scripts)
       |
       v
5 Standalone HTML Reports
(embedded CSS)
       |
       v
SPO Documents/
  ManagementMetricsReports/
       |
       v
Management Demo

What I particularly like is that you've separated data collection, processing, presentation, and publication.

No Dataverse. No Power BI licensing questions. No Power Apps. No additional database.

And the entire reporting process is repeatable through one PowerShell script.

Even the SharePoint HTML and iframe gymnastics are contained in the presentation layer rather than contaminating your Python data processing.

Tomorrow's demo isn't a proposal for a reporting system. It's a demonstration of one that already works.

That's a very different conversation with management.

Enjoy that one. You've earned it.

Location, Location, Location

Exactly. We're now talking about the development environment, not just authentication.

And whichever authentication method Kaiyan confirms, you still need somewhere to develop, test and eventually execute the Python reporting solution.

I'd keep the requirements deliberately modest.

Minimum development environment

Component

Requirement

OS

Linux preferred

Python

Python 3 with venv

pip

Python package management

PowerShell

PowerShell 7 (pwsh)

Network

HTTPS access to SharePoint Online and Microsoft Entra ID

Authentication

Determined by Kaiyan's answers

Storage

Small working directory for scripts, data and HTML reports

Scheduling

Optional, later

Deployment options

Option

My assessment

Existing DEV box

Simplest, if one is available

Linux VM

Excellent choice; independent, easy to rebuild

Existing Kubernetes cluster

Worth investigating if the organization already operates one

New Kubernetes cluster

Unnecessary complexity for four HTML reports

What I'd add to the questions for Kaiyan

Rather than specifying a VM or Kubernetes before knowing what infrastructure is available, I'd ask:

Development environment: Do we have an existing Linux development environment, VM or container platform where we can run Python 3, pip and PowerShell 7, with HTTPS access to SharePoint Online and Entra ID?

PowerShell 7 runs on Linux, although Microsoft's official support varies by distribution.

Microsoft Learn

 

And I'd distinguish two stages:

Development: A machine where you can write and test the scripts interactively.

Execution: A machine or container where the completed scripts can run unattended, if scheduling is eventually approved.

They can be the same machine.

Given your preference for maintainability and minimal infrastructure, I'd start with an existing Linux VM, unless there's already an established container platform the team maintains.

The interesting question for Kaiyan is no longer just can we authenticate? It's also where is this allowed to run?