Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs/testplan: add admin UI testplan #6592

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
53 changes: 53 additions & 0 deletions docs/testplan/admin-ui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Satellite Admin UI

## Background

This testplan covers the new Satellite Admin UI.
 

| Test Scenario | Test Case | Description | Comments |
|---------------|------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------|
| UX Search | Search User by Email | Customer opens a support ticket and notes down his email address. How easy is it to find the user in our database? | |
| | Search User by Project ID | Customer opens a support ticket and notes down his Project ID and forgets to mention his email address. Or we identify that a project is sharing illegal files. Project ID is still unique and should allow us to find the corresponding user. Next step could be an account freeze (to make sure the test returns the user and not the project). | |
| | Search User by User Agent | Customer has 2 user accounts. We know one of them has a user agent set and the other account is more for testing with no special settings. How easy can we identify the main account? | |
| | Search User by Placement Constraint | Customer has 2 user accounts. We know one of them has a placement constraint set and the other account is more for testing with no special settings. How easy can we identify the main account? | |
| | Search Project by Project ID | Customer would like to have a limit increase and gives us his project ID. | |
| | Search Project by Project Name | Customer gives us his email address and project name but forgets to mention his project ID. | |
| | Search Project by User Agent | Customer has 2 projects. We know one of them has a user agent and the other one doesn't. How easy can we identify the important project? | |
| | Search Project by Placement Constraint | Customer has 2 projects. We know one of them has a placement constraint and the other one doesn't. How easy can we identify the important project? | |
| | Search Bucket by Bucket Name | Customer has a special bucket name that is unique enough to search for it. We don't know the project ID or email address. Can we search for the bucket name without having to ask the customer for more details? | |
| | Search Bucket by User Agent | We have special pricing bound to specific user agents. Can we search for all buckets that have this user agent set? | |
littleskunk marked this conversation as resolved.
Show resolved Hide resolved
| | Search Bucket by Placement Constraint | We define a new placement constraint. After deployment we find out that we have a bug. Do we have any buckets with that placement constraint yet or can we just fix the bug without having to worry about possible side effects? | |
littleskunk marked this conversation as resolved.
Show resolved Hide resolved
| UX Update | Update Limits (User level) | Create a customer with a single project. Update all available limits (number of projects, used space, download traffic, number of buckets, rate limit) on the user level. The limits for the existing projects shouldn't change. Create a new project. That one will inherit the new limits from the user level. | |
| | Update Limits (Project level) | Create a customer with a 2 projects. Update all available limits (used space, download traffic, number of buckets, rate limit) for one of the projects. Verify that the new limits have been set and that the second project still has the old limits. | |
| | Update User Agent (User level) | Create a customer that has a project with no user agent set. Set the default user agent on the user level. Should not set the user agent on the project level unless explicit called. | |
| | Update Placement Constraint (User level) | Create a customer that has a project with no placement constraint set. Set the default placement constraint on the user level. Should not set the placement constraint on the project level unless explicit called. | |
| | Update User Agent (Project level) | Create a customer that has a bucket with no user agent set. Set the default user agent on the project level. Should not set the user agent on the bucket level unless explicit called. | |
| | Update Placement Constraint (Project level) | Create a customer that has a bucket with no placement constraint set. Set the default placement constraint on the project level. Should not set the placement constraint on the bucket level unless explicit called. | |
| | Update User Agent (Bucket level) | Create a customer with 2 buckets. Set the user agent for one of the buckets. Check the user agent value for both buckets. | |
| | Update Placement Constraint (Bucket level) | Create a customer with 2 buckets. Set the placement constraint for one of the buckets. Check the placement constraint value for both buckets. | |
| | Disable MFA | Create a customer with MFA enabled. Disable MFA in the Admin UI. | |
| | Account Freeze | Create a user with 2 projects. Freeze the user. Verify that the user is unable to create a third project and is unable to upload or download any files (checking the current limits in the DB is enough here) | |
| | Account Unfreeze | Create a user with 3 projects. Set customer project limits for the second project (the one sandwitched in the middle). Increase the limit for the number of projects. Freeze the user. Unfreeze the user. Verify that the old custom limits have been restored. | |
| Consistency | Create Project inherits User Agent | Any project we create via the admin UI needs to inherit the user agent from the user level. | |
| | Create Project inherits Placement Constrains | Any project we create via the admin UI needs to inherit placement constraint from the user level. | |
| | Create Bucket inherits User Agent | Create a user that has a user agent A on the user level and user agent B on the project level. Any bucket we create via the admin UI needs to inherit the user agent B from the project level.| |
| | Create Bucket inherits Placement Constrains | Create a user that has a placement constraint 1 on the user level and placement constraint 10 on the project level. Any bucket we create via the admin UI needs to inherit the placement constraint 10 from the project level. | |
| | Update User doesn't override User Agent | Create a user that has a user agent on the user level. Perform all the update user activities. Change Email, Disable MFA, Set Limits, Set Data Placement, Remove Data Placement, Freeze, Unfreeze and so on. Verify that non of them overrides the user agent. | |
| | Update User doesn't override Placement Constrains | Create a user that has a placement constraint on the user level. Perform all the update user activities. Change Email, Disable MFA, Set Limits, Set User Agent, Remove User Agent, Freeze, Unfreeze and so on. Verify that non of them overrides the placement constraint. | |
| | Update Project doesn't override User Agent | Create a project that has a user agent on the project level. Perform all the update project activities. Set Limits, Set Data Placement, Remove Data Placement, Send Invitation and so on. Verify that non of them overrides the user agent. | |
| | Update Project doesn't override Placement Constrains | Create a project that has a placement constraint on the project level. Perform all the update project activities. Set Limits, Set User Agent, Remove User Agent, Send Invitation and so on. Verify that non of them overrides the placement constraint. | |
| | Update Bucket doesn't override User Agent | Create a bucket that has a user agent on the bucket level. Perform all the update bucket activities. Set Data Placement, Remove Data Placement, and so on. Verify that non of them overrides the user agent. | |
| | Update Bucket doesn't override Placement Constrains | Create a bucket that has a placement constraint on the bucket level. Perform all the update bucket activities. Set User Agent, Remove User Agent, and so on. Verify that non of them overrides the placement constraint. | |
| Permissions | Super-Admin | Not worth testing since a super admin would be allowed to call everything. | |
| | Viewer | Open the admin UI as viewer. Search for a project and try to update the limits and try to freeze the user. A viewer shouldn't be able to do that. | |
| | Customer Support | Open the admin UI as customer support. Search for a project and try to update the limits and try to freeze the user. Updating the limits should be possible but freezing the user shouldn't be allowed. | |
| | Finance Manager | Open the admin UI as a finance manager. Search for a project and try to update the limits and try to freeze the user. Freezing an account should work but updating the limits shouldn't be allowed. | |
| | Multiple Roles | Open admin UI as a user that belongs to the customer support and finance manager. Try to update limits and try to freeze a user. Both should work. | |
| Security | Default Settings | Storj Private Cloud partner satellites shouldn't expose the admin UI by default. The admin UI should refuse to start and force the operator to protect this endpoint. | |
| | Event History | Any update activity in the Admin UI should create a new entry in an event history. | |
| | Encryption Salt | Everything in the Admin UI should use the public project ID. Nowhere we should show the encryption salt / private project ID. | |

## Questions

How about tagging storj select nodes? We are currently using SQL war crimes to do that. It is not planned for the current admin UI. Can we add some tickets to our backlog to add that function?