TenantFleet Ecosystem / Mind

Provision Tenants.
Not Config Drift.

Production-grade Terraform modules for Microsoft Entra ID. OIDC federation, multi-tenant apps, and environment matrices — with zero hardcoded secrets.

6
Terraform Modules
OIDC Credentials
0
Hardcoded Secrets
< 10m
First Deploy

Infrastructure as tenant-aware code

Modular Terraform

Composable modules for app registrations, RBAC assignments, and federated credentials.

OIDC Federation

GitHub Actions to Azure via workload identity federation. No client secrets stored in CI.

Multi-Tenant App

Single app registration model that scales across MSP, PE portfolio, and franchise tenants.

Environment Matrix

GitHub Environments per tenant with matrix deployment strategies and approval gates.

State Isolation

Per-tenant backend storage with naming conventions that prevent cross-tenant leakage.

Cost Tagging

Automatic Azure cost tags per brand, portfolio, and environment for chargeback visibility.

Zero secrets, full federation

main.tf
module "tenant_core" {
  source = "github.com/t-granlund/tenantforge//modules/entra-app-registration"

  tenant_id   = var.tenant_id
  app_name    = "dashboard-${var.brand}"
  redirect_uris = ["https://${var.brand}.app/auth/callback"]

  # Zero secrets — OIDC federation only
  enable_oidc_federation = true
  github_org = var.github_org
  repo_name  = var.repo_name
}

One module. Any tenant.

Stop rewriting Terraform for every new brand. TenantForge abstracts the patterns so you provision, not puzzle.

Clone on GitHub

The TenantFleet Ecosystem

Install · Architecture · Ecosystem

Install

git clone https://github.com/t-granlund/tenantforge.git
cd tenantforge

MIT-licensed · open source · fork it and make it yours.

Architecture

Composable Terraform modules (app registration, RBAC, federated credentials, environment matrix, state isolation, cost tagging) over OIDC federation.

Part of the TenantFleet ecosystem · see it on tylergranlund.com/work#ecosystem.