Baseplate provides the following System Standard Roles out of the box. These “System Roles” are non-editable and ship as system wide concepts. They are administrative roles with broad scope and permission sets. No users can edit these and they have canonically defined scopes of access that are natively defined in the application.
System Administrator
The System Administrator has the highest level of access in the Baseplate framework. This role is responsible for the overall management and configuration of the system. They can manage users and customers, configure system-wide settings (via remote config), and monitor system health. For example, a System Administrator might add a new customer for a client, configure security settings, or troubleshoot system errors. They might also manage billing and subscriptions, create new roles and permissions, and handle support tickets.
Example System Administrator User Stories
User Management
- I want to view all users across all customers so that I can monitor platform-wide usage and activity.
- I want to add new users to a specific customer so that I can set up customers for new clients or personnel.
- I want to edit user details so that I can correct or update their information as needed.
- I want to deactivate or delete user customers so that I can manage user access and security.
- I want to assign specific roles to users so that I can control their permissions and access levels.
- I want to view user activity logs so that I can track actions and ensure compliance.
Customer Management
- I want to view all customers so that I can monitor their status and usage.
- I want to add new customers so that I can onboard new clients.
- I want to edit customer details so that I can update their information as needed.
- I want to suspend or delete customers so that I can manage their access and billing as subscription status changes.
- I want to view customer subscription status so that I can manage billing and renewals.
Role and Permission Management
- I want to create new Rich User Personas so that I can refine how the systems works for specific users
- I want to edit role based permissions so that I can adjust access levels as needed.
- I want to assign roles to users so that I can control their access.
Payment and Subscription Management (In Stripe)
- I want to view all transactions so that I can monitor billing and revenue.
- I want to issue refunds or credits so that I can resolve billing issues.
- I want to manage subscription plans so that I can update pricing and features.
System Configuration
- I want to configure system-wide settings so that I can customize the platform. (In Firebase Config)
- I want to manage integrations so that I can connect with other tools and services.
- Note: This will be managed through Prismatic but we’ll still need to implement the integration logic
- I want to view system logs and performance metrics so that I can monitor health and troubleshoot issues.
- Note: This will principally be provided via Google Cloud Log management
Documentation and Support
- I want to manage system documentation so that I can provide resources for users.
- I want to handle support tickets so that I can resolve user issues.
- I want to view the system dashboard so that I can monitor overall status and activity.
Customer Success
Customer Success (also used for support) can access assigned customer customers and assist with user issues. They can view user and customer details, troubleshoot problems, and communicate with users to provide assistance. For example, a Customer Success representative might help a user reset their password, troubleshoot an error message, or guide them through a new feature. They can also manage support tickets and provide feedback to the development team.
One key feature that System Administrators and Customer Support can access is the ability to impersonate specific users. On the user list screen for a given Customer the System Administrator and Customer Success have access to an “Impersonate” button. When activated the systems logs them in as that user and they then “become” that user in the system. They are granted the full permissions of that user. The goal of this is to allow quick diagnosis of any system issues from the perspective of that user. System Administrators can impersonate any user in the system. Customer Success can only impersonate users in a Customer that they are responsible for.
Example Customer Success User Stories
customer Access and Impersonation
- I want to access assigned customer customers so that I can assist with their specific issues.
- I want to impersonate users within a customer so that I can troubleshoot problems from their perspective.
User and customer Management
- I want to view user details so that I can understand their roles and activities.
- I want to view customer details so that I can understand their setup and configuration.
Troubleshooting and Issue Resolution
- I want to view system logs and error messages specific to a customer and user so that I can diagnose issues.
- I want to manage support tickets so that I can track and resolve user problems.
Communication and Assistance
- I want to communicate with users within a customer so that I can provide assistance and updates.
- I want to guide users through the platform so that I can help them understand its features.
Customer Administrator
The Customer Administrator manages their specific customer’s users, settings, and data. They can add, edit, and deactivate users, assign roles and permissions, and customize their customer’s environment. For example, a customer Administrator might invite new team members, adjust subscription details, or monitor user activity within their customer. They can also access reports on user engagement and feature adoption.
Example Customer Administrator User Stories
User Management
- I want to add, edit, and deactivate users within my organization so that I can manage team access.
- I want to assign roles and permissions to users so that I can control their access levels.
Customer Configuration
- I want to edit customer details and settings so that I can customize our environment.
- I want to manage subscription details so that I can upgrade or downgrade our plan.
- Note this will be handled via the Stripe Billing platform but we need to provide a button driven means of accessing it
Data and Access Control
- I want to view and manage our data so that I can ensure security and compliance.
- I want to monitor user activity within our customer so that I can track usage and identify issues.
Reporting and Analytics
- I want to view reports on user engagement and feature adoption so that I can optimize our use of the platform.
- I want to monitor performance and usage limits so that I can ensure we stay within our plan.