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 DemoWhat 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 |
|
pip |
Python package management |
|
PowerShell |
PowerShell 7 ( |
|
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.
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?