[MVC] Namespace lookup in customersdot

Summary

In order to edit the trial or subscription information on a namespace as outlined in Namespace controls for trials in customersdot (&9451 - closed) and Namespace controls for subscriptions in custome... (&9453 - closed), we first need to be able to search for the namespace and view it's details.

A namespace is linked to many different attributes (e.g customer, subscription, gitlab.com users) and we should be able to find the namespace via searching by any of its attributes.

Requirements

  1. Create new navigation item in customersdot with URL: https://customers.gitlab.com/admin/namespaces
  2. Provide search box and accept input:
    • Namespace ID,
    • Namespace name,
    • Namespace path name
    • Namespace owner username
    • Namespace owner email address
    • Customer company
    • Customer ID
    • Customer email (or parts of it)
    • Customer first name + Customer last name
    • Subscription name
  3. Search results should return any namespace that matches with the input provided
  4. Search result should have columns:
    • namespace ID | show: namespace ID
    • path | show: namespace path name | link to: gitlab.com namespace path
    • customer | show: customer name | link to: customer account in cdot
    • subscription | show: subscription name | link to: zuora subscription
    • subscription seats
    • seats in use
    • max seats
    • plan
    • trial? | show: yes/no/expired
    • start date
    • end date

UI

namespace-lookup-result

Permissions

  • Namespace lookup is allowed for roles with read permission
  • Create/Update/Delete actions are only allowed for cdot admins with write permissions

Prioritization + ROI

Why is this feature important?

Without a namespace lookup, we are not able to build any namespace controls and the support team will have to continue to use Mechanizer to complete namespace actions

Currently the team uses multiple systems to find namespace information: cdot, Zuora, SFDC, gitlab.com, chatops, rails console, and gitlab APIs; this feature should allow the admin to find the namespace and its relevant details by using on cdot. Eliminating 6 other sources of information means less time logging in, navigating, searching, and processing information.

TODO: calculate efficiency costs of using multiple sources to find namespace information.

Future iterations

Namespace edit actions (aka controls) are not in scope for this issue. Namespace controls are addressed in:

  1. Namespace controls for trials in customersdot (&9451 - closed)
  2. Namespace controls for subscriptions in custome... (&9453 - closed)
Edited by Donique Smit