Design a cloud console main page
Design a Cloud Console Main Page
Scenario
You are tasked with designing the main landing page (home page) for a cloud service console. This page is the first thing a user sees immediately after successfully logging in, similar to a major cloud provider's dashboard.
The design should pay particular attention to:
- Authentication: How users prove their identity.
- Authorization/Permissions: What actions and resources a user is allowed to access.
- Audit Logging: Tracking sensitive actions and access for security and compliance.
Requirements
Functional Requirements
- Personalized Home Page: After login, the user must see a personalized page displaying:
- A list of projects, accounts, or tenants they have access to.
- A summary of key resources (e.g., Virtual Machines, databases, storage buckets) that the user has permission to view.
- Recent activity or notifications (optional).
- Multi-Tenancy Isolation: Strictly enforce that a user can never see resources belonging to tenants they do not have explicit access to.
- Permission Models: Support robust access control, including:
- Role-Based Access Control (RBAC) as a minimum, with roles like Owner, Admin, and Viewer.
- Preferably, allow for more granular resource- or project-scoped roles.
- Audit Logging: Generate comprehensive audit logs for security-relevant events, which must include at least:
- User login and logout events, including token issuance and refresh.
- Access to sensitive pages or listing of sensitive resources (the candidate should state their approach/stance on what constitutes "sensitive").
- Changes to permissions or role assignments.
- Create, Update, and Delete (CUD) actions on resources initiated from the console.
Non-Functional Requirements (Assume Reasonable Scale)
- Low Latency: The home page should render quickly, with a P95 latency of less than 500-1000 milliseconds.
- High Availability: The system must be highly available, targeting 99.9% uptime or better.
- Security: The design must be secure by default, adhering to the principle of least privilege and implementing strong session handling.
- Tamper-Resistant Audit Logs: Audit logs must be resistant to tampering and easily queryable by security and compliance teams.
Deliverables
Your design should describe the following aspects:
- The end-to-end request flow from user login to the final rendering of the personalized home page.
- The core services, components, and APIs involved in the system.
- How and where permission checks are enforced throughout the system.
- The audit log pipeline, detailing what information is logged, where it is stored, and how its security is ensured.
- Key data models and considerations for scaling the system.
AI interview prep
Core dilemma
Balancing low-latency, personalized data retrieval for a dashboard with strict, granular multi-tenant authorization and comprehensive, tamper-resistant audit logging, all at scale.
3 tradeoffs and 3 stress tests locked
Interview prep
Unlock the interviewer X-Ray rubric, tradeoff matrix, stress tests, clarifying questions, and key concepts.
Design a cloud console main page
Design a Cloud Console Main Page
Scenario
You are tasked with designing the main landing page (home page) for a cloud service console. This page is the first thing a user sees immediately after successfully logging in, similar to a major cloud provider's dashboard.
The design should pay particular attention to:
- Authentication: How users prove their identity.
- Authorization/Permissions: What actions and resources a user is allowed to access.
- Audit Logging: Tracking sensitive actions and access for security and compliance.
Requirements
Functional Requirements
- Personalized Home Page: After login, the user must see a personalized page displaying:
- A list of projects, accounts, or tenants they have access to.
- A summary of key resources (e.g., Virtual Machines, databases, storage buckets) that the user has permission to view.
- Recent activity or notifications (optional).
- Multi-Tenancy Isolation: Strictly enforce that a user can never see resources belonging to tenants they do not have explicit access to.
- Permission Models: Support robust access control, including:
- Role-Based Access Control (RBAC) as a minimum, with roles like Owner, Admin, and Viewer.
- Preferably, allow for more granular resource- or project-scoped roles.
- Audit Logging: Generate comprehensive audit logs for security-relevant events, which must include at least:
- User login and logout events, including token issuance and refresh.
- Access to sensitive pages or listing of sensitive resources (the candidate should state their approach/stance on what constitutes "sensitive").
- Changes to permissions or role assignments.
- Create, Update, and Delete (CUD) actions on resources initiated from the console.
Non-Functional Requirements (Assume Reasonable Scale)
- Low Latency: The home page should render quickly, with a P95 latency of less than 500-1000 milliseconds.
- High Availability: The system must be highly available, targeting 99.9% uptime or better.
- Security: The design must be secure by default, adhering to the principle of least privilege and implementing strong session handling.
- Tamper-Resistant Audit Logs: Audit logs must be resistant to tampering and easily queryable by security and compliance teams.
Deliverables
Your design should describe the following aspects:
- The end-to-end request flow from user login to the final rendering of the personalized home page.
- The core services, components, and APIs involved in the system.
- How and where permission checks are enforced throughout the system.
- The audit log pipeline, detailing what information is logged, where it is stored, and how its security is ensured.
- Key data models and considerations for scaling the system.