Skip to content
This repository was archived by the owner on Mar 22, 2026. It is now read-only.

rpothin/ppcc25-terraform-power-platform-governance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,124 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Power Platform Governance with Terraform

Power Platform + Terraform Infrastructure as Code PPCC25 Archived

Transform your Power Platform governance from ClickOps to Infrastructure as Code

License: MIT

Warning

This repository is archived and no longer actively maintained.

It was created as demonstration material for the session "Enhancing Power Platform Governance Through Terraform: Embracing Infrastructure as Code" presented at Power Platform Community Conference 2025 by Raphael Pothin.

The code and documentation are preserved here as a read-only reference. No issues, pull requests, or discussions will be monitored. For questions or feedback, please reach out to Raphael Pothin directly.


🎯 About

This repository demonstrates how Infrastructure as Code (IaC) with Terraform can transform Power Platform governance, addressing common challenges faced by platform administrators:

Traditional ClickOps Infrastructure as Code
πŸ–±οΈ Manual clicks πŸ“ Declarative configuration
πŸ” No audit trail πŸ“Š Complete version history
😰 Error-prone βœ… Validated and tested
🐌 Slow to scale πŸš€ Instantly replicable
πŸ”§ Hard to maintain πŸ”„ Self-documenting

πŸ“ Project Structure

πŸ—οΈ ppcc25-terraform-power-platform-governance/
β”œβ”€β”€ πŸ“¦ configurations/     # Ready-to-deploy Terraform configurations
β”‚   β”œβ”€β”€ ptn-*             # Complete implementation patterns
β”‚   β”œβ”€β”€ res-*             # Individual resource configurations
β”‚   └── utl-*             # Utility configurations (exports, generation)
β”œβ”€β”€ πŸ“š docs/              # Complete documentation (tutorials, guides, references)
β”œβ”€β”€ πŸ€– .github/           # GitHub workflows and automation
β”œβ”€β”€ 🎬 .demo/             # Demo scripts and assets used during the conference session
β”œβ”€β”€ πŸ› οΈ scripts/           # Setup, cleanup, and utility scripts
└── πŸ”§ .devcontainer/     # Development container configuration

🎯 What Does This Demonstrate?

πŸ›‘οΈ Data Loss Prevention (DLP) Policies

Control which connectors can be used together to prevent data leakage.

Example: Finance department policy restricting data flow between SharePoint and external services.

🌍 Environment Provisioning

Create and configure Power Platform environments consistently.

Example: Dev/Test/Prod environment group with standardized settings.

πŸ”— Azure Integration

Extend environments with Azure VNet for secure hybrid connectivity.

Example: Private connectivity between Power Platform and Azure SQL using enterprise policies, zero-trust NSGs, and private DNS zones.


Configuration Catalog

Configuration Purpose Complexity
utl-export-connectors Export connector list from tenant ⭐ Simple
utl-export-dlp-policies Export existing DLP policies ⭐ Simple
utl-generate-dlp-tfvars Generate tfvars from exported policies ⭐ Simple
res-dlp-policy Create/update DLP policies ⭐⭐ Easy
ptn-environment-group Provision environment group (Dev/Test/Prod) ⭐⭐⭐⭐ Advanced
ptn-azure-vnet-extension Add Azure VNet integration ⭐⭐⭐⭐ Advanced

πŸ”¬ Key Technical Details

  • Terraform: >= 1.5.0 required
  • Authentication: OIDC (zero stored credentials)
  • State Management: Azure Storage backend
  • Provider: microsoft/power-platform ~> 3.8
  • Azure Infrastructure: Built on Azure Verified Modules (AVM)
  • Naming: Cloud Adoption Framework (CAF) conventions

πŸ“– Documentation

The docs/ folder contains full DiΓ‘taxis-structured documentation preserved for reference:

Section Content
πŸ“š Documentation Home Starting point and navigation
πŸŽ“ Tutorials Step-by-step walkthroughs (Getting Started, DLP Policies, Environment Groups)
πŸ”§ How-to Guides Task-specific instructions (setup, DLP management, ClickOps migration, troubleshooting)
πŸ“– Reference Configuration catalog, module reference, common patterns
πŸ’‘ Explanations Architecture decisions, why IaC, known limitations

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.

πŸ™ Acknowledgments

Author

Raphael Pothin
Raphael Pothin

πŸ’» πŸ“– 🎨

Inspiration


Made with ❀️ for the Power Platform Community

Presented at Power Platform Community Conference 2025

⬆ Back to top

About

πŸš€ Terraform configurations and blueprints for Power Platform governance demonstrated at PPCC25. Transform from ClickOps to Infrastructure as Code with ready-to-use modules for DLP policies, environments, and integrated Azure/Fabric workloads.

Topics

Resources

License

Stars

Watchers

Forks

Contributors