Lahiru Jayathilake created AIRAVATA-3976:
--------------------------------------------

             Summary: SSH Signer Admin Portal & Allocation Management Dashboard
                 Key: AIRAVATA-3976
                 URL: https://issues.apache.org/jira/browse/AIRAVATA-3976
             Project: Airavata
          Issue Type: Task
          Components: Airavata Allocation Manager, Custos Airavata Integration
            Reporter: Lahiru Jayathilake


h3. Summary

Design and build the user-facing web interfaces for two core Custos components: 
the SSH Certificate Signer admin portal and the Allocation Management 
dashboard. This includes Figma design work (wireframes, mockups, design system) 
followed by React/TypeScript implementation. The interfaces serve different 
user roles (researchers, PIs, site administrators) and are backed by existing 
Go REST APIs.
h3. Problem

Custos provides backend services for SSH certificate signing and compute 
allocation management, but these services currently lack user-facing 
interfaces. Site administrators managing SSH certificates need to interact 
directly with APIs or the database. PIs and researchers have no portal to view 
their allocations, track usage, or manage their projects. Site admins have no 
dashboard to approve allocation requests or monitor system-wide activity.

 

Building these interfaces is essential for making Custos usable in production 
HPC environments where non-technical users (researchers, PIs) need self-service 
access and administrators need operational visibility.
h3. Description

This project covers *Figma design followed by React/TypeScript implementation* 
for two connected web applications.

 

*Part 1: SSH Signer Admin Portal*

 

The signer service provides a Go REST API for issuing and managing short-lived 
SSH certificates. This portal gives administrators and users visibility into 
certificate operations:

 
 * {*}Dashboard{*}: At-a-glance metrics showing certificates issued (today, 
this week), active gateway clients, upcoming CA key rotations, recent 
revocations
 * {*}Client management{*}: Register new gateway clients, enable/disable them, 
configure per-client policies (max certificate TTL, allowed key types, source 
address restrictions, critical options)
 * {*}Certificate browser{*}: Search and filter issued certificates by tenant, 
principal, validity window, and revocation status. View certificate details 
including the full audit trail (who requested it, when, from where).
 * {*}CA key management{*}: View current and next CA key fingerprints, trigger 
manual CA key rotation, view rotation history
 * {*}Revocation management{*}: Revoke certificates by serial number, key ID, 
or CA fingerprint. View revocation history with reasons.
 * {*}User certificate view{*}: Authenticated users can see their own issued 
certificates, validity periods, and status

 

*Part 2: Allocation Management Dashboard*

 

The allocation management system tracks compute credits from multiple sources 
(ACCESS-CI, internal discretionary pools, and others in the future). The 
hierarchy is: Projects contain Awards (approved credit grants), which contain 
Allocations (resource-specific: CPU, GPU, storage). This dashboard surfaces 
that data to different roles:

 
 * {*}PI / Co-PI view{*}:

 
 * List of their projects with current allocation balances (by resource type)
 * Aggregated usage across all users in the project, broken down by user and 
resource type (CPU hours, GPU hours)
 * How much remains in each allocation
 * History of allocation changes (grants, adjustments, expirations)
 * Audit trail of user activity across the project (jobs submitted, resources 
consumed)
 * For internal awards: self-service allocation of credits from the award pool 
to specific resource types (CPU, GPU, storage)

 
 * {*}User view{*}:

 
 * Their own usage within each project, broken down by resource type
 * Overall allocation balance for the project (how much is left), but not 
per-user breakdown of other users
 * Their active SSH certificates and status

 
 * {*}Site Admin view{*}:

 
 * Everything across the entire site: all projects, all allocations, all usage, 
all users
 * Internal allocation requests pending approval, with approve/deny workflow
 * Configuration details (allocation source connections, conversion rates, 
enforcement status)
 * System health and activity overview

 
 * {*}Approval workflows{*}: Site admins can review, approve, or deny internal 
allocation requests. PIs/Co-PIs can approve member requests for credit 
transfers within their projects.

 
 * {*}Allocation lifecycle visibility{*}: Show award states (Pending, Active, 
Expired, Suspended, Depleted) and allocation states clearly, with timeline 
views of grants, adjustments, and expirations.

 

*Design Process*

 
 # Start with Figma wireframes and mockups for both portals
 # Establish a shared design system / component library (buttons, tables, 
forms, status badges, charts)
 # Get design review and approval before moving to implementation
 # Build in React/TypeScript with a component-based architecture
 # Connect to the existing Go REST APIs

h3. Expected Deliverables
 * Figma designs: wireframes and high-fidelity mockups for both the signer 
admin portal and allocation management dashboard, covering all role-based views
 * Shared design system / component library in Figma
 * React/TypeScript implementation of the SSH signer admin portal (dashboard, 
client management, certificate browser, CA management, revocation management)
 * React/TypeScript implementation of the allocation management dashboard (PI 
view, user view, site admin view, approval workflows)
 * Connected to existing Go REST APIs with proper authentication handling

h3. Required Skills
 * UI/UX design (Figma)
 * React/TypeScript
 * REST API integration
 * Data visualization (charts, tables, timelines)
 * Responsive web design
 * Understanding of role-based access control concepts

h3. Resources
 * {*}Custos repository{*}: 
[github.com/apache/airavata-custos|https://github.com/apache/airavata-custos]
 * {*}Signer service{*}: signer/ directory for the Go REST API that backs the 
signer admin portal. Key endpoints: /api/v1/sign, /api/v1/revoke, 
/api/v1/certificates, /api/v1/admin/rotate-ca, /api/v1/jwks, /api/v1/health
 * {*}Allocation management{*}: allocations/ directory for the allocation 
service architecture and data model
 * {*}Allocation requirements document{*}: Available in the project repository, 
covers the full data model (Projects, Awards, Allocations, Roles), role-based 
visibility rules, approval workflows, and allocation lifecycle states

{*}ColdFront{*}: [https://coldfront.readthedocs.io/] (an existing open-source 
allocation management UI for HPC, useful as design reference)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to