You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement public job output sharing functionality in TapisJobService to leverage Tapis backend's sharePublic and share with a user capabilities specifically for job outputs and generated files.
Background
While TapisJobService will have job sharing capabilities, there's a need for granular sharing of job outputs and generated files. Users should be able to:
Share specific output files publicly without sharing the entire job
Share output datasets with specific users
Provide direct access to generated results and artifacts
Proposed Implementation
New TapisJobService Methods
classTapisJobService{// Make job outputs publicly accessibleasyncshareJobOutputsPublic(jobId: string,outputPaths?: string[]): Promise<void>// Share job outputs with specific userasyncshareJobOutputsWithUser(jobId: string,username: string,outputPaths?: string[]): Promise<void>// Get output sharing statusasyncgetJobOutputSharingStatus(jobId: string): Promise<JobOutputSharingStatus>// Revoke output sharingasyncrevokeJobOutputSharing(jobId: string,outputPaths?: string[]): Promise<void>// List shareable outputsasyncgetShareableOutputs(jobId: string): Promise<ShareableOutput[]>}
API Endpoints
POST /v1/tapis/jobs/{executionId}/outputs/share/public
POST /v1/tapis/jobs/{executionId}/outputs/share/user
GET /v1/tapis/jobs/{executionId}/outputs/share/status
DELETE /v1/tapis/jobs/{executionId}/outputs/share
GET /v1/tapis/jobs/{executionId}/outputs/shareable
Summary
Implement public job output sharing functionality in TapisJobService to leverage Tapis backend's
sharePublicandshare with a usercapabilities specifically for job outputs and generated files.Background
While TapisJobService will have job sharing capabilities, there's a need for granular sharing of job outputs and generated files. Users should be able to:
Proposed Implementation
New TapisJobService Methods
API Endpoints
Data Types
Implementation Tasks
Phase 1: Core Output Sharing
shareJobOutputsPublic()method to TapisJobServiceshareJobOutputsWithUser()method to TapisJobServicePhase 2: API Integration
Phase 3: UI Integration
Phase 4: Enhanced Features
Acceptance Criteria
sharePublicshare with a userSecurity Considerations
Files to Modify
src/classes/tapis/adapters/TapisJobService.tssrc/api/api-v1/paths/tapis/jobs/outputs/src/classes/graphql/queries/src/components/job-results/(UI components)src/types/(TypeScript interfaces)Related Issues
Notes