Modular Terraform
Composable modules for app registrations, RBAC assignments, and federated credentials.
Production-grade Terraform modules for Microsoft Entra ID. OIDC federation, multi-tenant apps, and environment matrices — with zero hardcoded secrets.
Composable modules for app registrations, RBAC assignments, and federated credentials.
GitHub Actions to Azure via workload identity federation. No client secrets stored in CI.
Single app registration model that scales across MSP, PE portfolio, and franchise tenants.
GitHub Environments per tenant with matrix deployment strategies and approval gates.
Per-tenant backend storage with naming conventions that prevent cross-tenant leakage.
Automatic Azure cost tags per brand, portfolio, and environment for chargeback visibility.
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
}
Stop rewriting Terraform for every new brand. TenantForge abstracts the patterns so you provision, not puzzle.
Clone on GitHubThe TenantFleet Ecosystem
git clone https://github.com/t-granlund/tenantforge.git
cd tenantforge
MIT-licensed · open source · fork it and make it yours.
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.