declarative infrastructure-as-code configuration for identity and access management
Defines a strictly-typed TypeScript configuration layer (src/config/) that serves as a single source of truth for identity and access control across GitHub, Google Workspace, and Discord. The configuration uses a declarative model where members, roles, and repository access levels are expressed as TypeScript objects, which are then validated for schema correctness and referential integrity before being transformed into platform-specific resources via Pulumi providers. This approach enables peer review of all access changes through Pull Requests and prevents configuration drift across multiple platforms.
Unique: Uses a strictly-typed TypeScript configuration layer (src/config/) with compile-time type safety and referential integrity validation, rather than YAML or JSON-based IaC that relies on runtime validation. The configuration is transformed into platform-specific resources through Pulumi providers, enabling a unified abstraction over heterogeneous platforms (GitHub, Google Workspace, Discord).
vs alternatives: Provides stronger type safety and IDE support than YAML-based IaC tools like Terraform or CloudFormation, while maintaining the auditability and peer-review benefits of infrastructure-as-code through Git-based workflows.
github team and repository permission synchronization via pulumi
Automatically provisions and synchronizes GitHub teams and repository permissions by translating declarative configuration into github.Team and github.TeamMembership Pulumi resources. The system reads member and role definitions from the configuration layer, maps them to GitHub team structures, and uses the GitHub Pulumi provider to create/update teams, manage memberships, and enforce repository access levels. Changes are previewed via pulumi preview before being applied, enabling safe deployments with rollback capability.
Unique: Uses Pulumi's GitHub provider to manage teams and memberships as first-class infrastructure resources with state tracking and preview capabilities, rather than shell scripts or GitHub CLI commands. This enables safe, auditable deployments with automatic rollback on failure and full Git-based change history.
vs alternatives: Provides safer deployments than GitHub CLI scripts because Pulumi tracks state and can detect drift, while offering better auditability than manual GitHub UI changes through declarative configuration and Git history.
google workspace user provisioning and email group management via pulumi
Automatically provisions @modelcontextprotocol.io email accounts and manages Google Workspace groups by translating configuration into googleworkspace.User and googleworkspace.Group Pulumi resources. The system reads member definitions with Google Workspace prefixes from configuration, creates user accounts with standardized email addresses, and manages group memberships. Validation ensures that Google Workspace prefixes are globally unique across the configuration to prevent email conflicts. The Pulumi provider handles API interactions with Google Workspace, including account creation, group assignment, and lifecycle management.
Unique: Enforces Google Workspace prefix uniqueness through configuration-time validation (scripts/validate-config.ts) before provisioning, preventing email conflicts at the source rather than handling them reactively. Uses Pulumi's Google Workspace provider to manage user and group resources with state tracking, enabling safe deployments and drift detection.
vs alternatives: Provides stronger validation and conflict prevention than manual Google Workspace admin console management, while offering better auditability than shell scripts through Pulumi's state tracking and declarative configuration.
discord role synchronization with organizational membership
Automatically synchronizes Discord server roles with organizational membership by translating role definitions into Discord role assignments via Pulumi. The system reads member and role definitions from configuration, maps them to Discord roles, and uses the Discord Pulumi provider to assign/revoke roles. This ensures that Discord server roles remain aligned with the authoritative organizational structure defined in configuration, preventing manual role management drift.
Unique: Treats Discord role assignments as infrastructure resources managed through Pulumi, enabling state tracking and drift detection rather than one-off bot commands. This approach ensures that Discord roles remain synchronized with the authoritative configuration even if manual changes are made in the Discord UI.
vs alternatives: Provides better auditability and synchronization guarantees than Discord bots that only respond to commands, while maintaining the flexibility of Pulumi's infrastructure-as-code approach.
configuration validation with schema enforcement and referential integrity checking
Validates all configuration changes before deployment by running a suite of validation scripts (scripts/validate-config.ts) that enforce schema correctness, referential integrity, and business rules. The validation layer checks that all member IDs exist, roles are correctly assigned, Google Workspace prefixes are globally unique, and repository access configurations reference valid teams and repositories. Validation runs automatically in CI/CD (GitHub Actions) on Pull Requests, preventing invalid configurations from being merged. The system uses TypeScript's strict type system to catch errors at compile time, supplemented by runtime validation for cross-entity constraints.
Unique: Combines compile-time TypeScript type checking with runtime validation scripts that enforce cross-entity constraints (e.g., Google Workspace prefix uniqueness, member ID existence). This two-layer approach catches both structural errors and business logic violations before deployment.
vs alternatives: Provides stronger validation than JSON Schema alone because TypeScript's type system catches structural errors at compile time, while runtime scripts enforce domain-specific rules that would require custom JSON Schema extensions.
pulumi state management with google cloud storage backend
Manages Pulumi infrastructure state using a Google Cloud Storage (GCS) backend instead of local state files, enabling safe multi-user deployments and state recovery. The Pulumi project is configured (Pulumi.yaml) to use a GCS bucket as the remote state backend, which stores the current state of all provisioned resources (GitHub teams, Google Workspace users, Discord roles). This enables multiple team members to deploy changes safely without state conflicts, provides automatic backups, and allows state inspection and recovery if deployments fail. The GCS backend is authenticated via Google Cloud SDK credentials.
Unique: Uses GCS as a remote state backend rather than local files or Pulumi's managed service, providing organization-specific control over state storage and backup policies. This approach is particularly suitable for open-source communities that want to avoid vendor lock-in while maintaining safe multi-user deployments.
vs alternatives: Provides better multi-user safety than local Pulumi state files (which can cause conflicts), while offering more control than Pulumi's managed backend service (which stores state in Pulumi's infrastructure).
automated infrastructure deployment via github actions ci/cd
Automatically deploys infrastructure changes to GitHub, Google Workspace, and Discord when configuration is merged to the main branch using GitHub Actions workflows. The CI/CD pipeline (defined in .github/workflows/) runs pulumi up on the main branch, which applies all pending infrastructure changes. Pull Requests trigger pulumi preview to show what changes will be deployed, enabling reviewers to understand the impact before approving. The workflow is authenticated via GitHub secrets containing Pulumi credentials, Google Cloud credentials, and platform-specific API tokens, ensuring secure credential management without exposing secrets in the repository.
Unique: Integrates Pulumi deployments directly into GitHub Actions workflows, enabling preview-on-PR and automatic-on-merge patterns without requiring external CI/CD systems. This approach leverages GitHub's native workflow system and secret management, reducing operational overhead.
vs alternatives: Simpler to set up than external CI/CD systems (Jenkins, GitLab CI) because it uses GitHub's native Actions, while providing better auditability than manual Pulumi CLI deployments through workflow logs and Git history.
member registry and role definition management
Maintains a centralized member registry and role definitions that serve as the authoritative source for all identity and access decisions across platforms. The member registry (src/config/members.ts) defines individual members with platform-specific identifiers (GitHub username, Google Workspace prefix, Discord user ID), while role definitions (src/config/roles.ts) map abstract roles (e.g., 'maintainer', 'contributor') to platform-specific team/group assignments. This separation enables role-based access control where members are assigned to roles, and roles are automatically translated into platform-specific permissions. The system uses TypeScript types to ensure that all member references are valid and all role assignments are correctly structured.
Unique: Uses TypeScript's type system to enforce that all member references are valid and all role assignments reference existing members and roles, catching errors at compile time rather than runtime. This approach provides stronger guarantees than JSON-based member registries that rely on runtime validation.
vs alternatives: Provides better type safety and IDE support than JSON-based member registries, while maintaining the simplicity of a declarative configuration approach compared to external identity providers (Okta, Azure AD).
+2 more capabilities