Access control

Current RBAC configuration for the CPD Portal Hub. Every user is mapped to one or more roles; every portal declares the roles that can see it. Edit public/_hub/auth-config.js and scripts/portal-manifest.json, then run make sync.

Roles

Named permission buckets. Admin implies every role.
RoleLabelImpliesUsers

Users

Mapping of email (exact or *@domain) to roles. Order is preserved; exact match wins. Edits stage in the browser; click Apply changes to publish live from this page.
No staged changes
EmailRolesResolved (with implies)Action

Portal access matrix

Which role can open which portal. ✓ = allowed. Admin has all cells.

Cost & Billing

Monthly spend by GCP project + $100/mo budget guardrail. All links open the live GCP Billing console.
Portal Hub budget — $100 / month
Email alert at 70% ($70), 90% ($90), and 100% ($100). Alert recipient: himanshu.shukla@cellpointmobile.com. Scope: cpd-himanshu-gemini.
Full billing overview — all CPD projects
Roll-up across every CPD-owned GCP project under the same billing account. Breakdown by project and service.
Cost anomalies & forecast
Cloud Billing detects unexpected spend increases and projects end-of-month total. Configure one alert per billing account.

Analytics & Observability

Live dashboards for user behaviour, performance, and error tracking.
Live sign-in activity (last 20)
Streams login_success / login_failure from Cloud Logging. Scope this session or every session.
Email alerts
Checking SendGrid + ALERT_EMAIL_TO…
GA4 measurement ID
Checking window.CPD_GA_MEASUREMENT_ID…