- Authorization Model - How roles, policies, and scoping work in the portal.
- CSS Architecture Guide - Styling conventions, structure, and tooling for the web UI.
- Datatable Implementation Guide - Patterns for server-backed data tables and pagination.
- Development Workflows - Branch strategy, CI/CD triggers, and development flows.
- Identity Manual Run - Manual SQL to validate or repair identity artifacts.
- Manual Steps - Post-deployment configuration steps.
- Mobile Table Improvements - Responsive table patterns and UX notes.
Web front end for the XtremeIdiots Portal providing player and game server management for community admins. Built on ASP.NET Core 9 with server-rendered Razor views, shared UI components, and API integrations to enforce bans, manage servers, and surface telemetry. Uses Application Insights, AuthZ/role checks, and the GeoLocation V1.1 intelligence API for IP risk assessment and geolocation. CI/CD runs via GitHub Actions with OIDC deployments to Azure App Service and supporting resources provisioned by Terraform.
The portal uses a structured {Domain}.{Action} permissions model. Role claims (SeniorAdmin, HeadAdmin, GameAdmin, Moderator) are synced from forum group membership, while additional permissions can be directly assigned for fine-grained access. All authorization handlers check both paths, so a user's effective permissions are the union of role-based access and any direct grants.
For details on how the authorization model works, see the Authorization Model documentation. For exact role-to-permission mappings, the authorization handlers in src/XtremeIdiots.Portal.Web/Auth/Handlers/ are the source of truth.
Please read the contributing guidance; this is a learning and development project.
Please read the security guidance; I am always open to security feedback through email or opening an issue.