[ 
https://issues.apache.org/jira/browse/AIRAVATA-3976?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lahiru Jayathilake updated AIRAVATA-3976:
-----------------------------------------
    Labels: gsoc gsoc2026  (was: )

> 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
>            Priority: Major
>              Labels: gsoc, gsoc2026
>
> 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