Skip to content

Conversation

@mosoriob
Copy link
Contributor

@mosoriob mosoriob commented Apr 29, 2025

This PR adds functionality to synchronize Model Configurations with Tapis Apps, enabling seamless integration between the Model Catalog and Tapis applications. The changes include new API endpoints, models, and utility functions to handle the synchronization process.

Key Changes

New Features

  • Added /modelconfigurations/{id}/tapis/sync endpoint to sync ModelConfigurations with Tapis Apps
  • Implemented conversion functions to transform Tapis App inputs and parameters into Model Catalog format
  • Added support for managing Tapis App components through new API routes
  • Added new models and enums for Tapis Application attributes and parameters

API Changes

  • Added OpenAPI specification for Model Catalog API with endpoints for CatalogIdentifiers
  • Added new routes for listing and retrieving TapisApp instances
  • Updated security authentication to return proper credentials

Infrastructure

  • Added Python debugger configuration in launch.json for FastAPI development
  • Added tapipy==1.8.2 dependency to requirements.txt
  • Added utility function to remove 'anyOf' keys from OpenAPI schemas

Technical Details

  • The sync process handles:
    • Converting Tapis App inputs to DatasetSpecifications
    • Converting Tapis App parameters to Parameters
    • Managing the lifecycle of inputs and parameters during sync
    • Proper cache invalidation for affected resources

Testing

  • Unit tests for new sync functionality
  • Integration tests for Tapis App synchronization
  • API endpoint tests for new routes

Dependencies

  • Requires tapipy==1.8.2
  • Updates to FastAPI cache configuration

Notes

  • Cache is cleared for ModelConfiguration, DatasetSpecification, and Parameter namespaces during sync operations
  • The sync process maintains data consistency by removing old inputs and parameters before adding new ones

- Introduced new API endpoints to list all TapisApp instances and retrieve a specific TapisApp by its ID and version.
- Created response models for TapisApp and a collection of TapisApps, enhancing data structure and validation.
- Implemented token-based authentication for secure access to the API endpoints.
…andling

- Added TapisComponentLocation API router to the main application for enhanced functionality.
- Updated the token retrieval function to return credentials directly, improving clarity and usability.
- Introduced a new OpenAPI specification file to define the API structure and endpoints for the Model Catalog.
- Implemented the TapisApp model to represent application details, including properties like tenant, id, version, and runtime options.
- Enhanced the Tapis API endpoints to support tenant-specific queries for listing and retrieving TapisApp instances.
- Added functionality to remove 'anyOf' keys from the OpenAPI schema for improved compatibility.
@mosoriob mosoriob linked an issue Apr 29, 2025 that may be closed by this pull request
mosoriob added 2 commits May 2, 2025 12:31
- Added a new endpoint to synchronize ModelConfiguration with Tapis applications, allowing for the retrieval and conversion of inputs and parameters.
- Introduced utility functions to handle the conversion of Tapis inputs and parameters into the corresponding DatasetSpecification and Parameter models.
- Enhanced the TapisApp model with additional attributes and improved structure for job execution parameters and attributes.
- Introduced a new launch.json file to configure the Python debugger for FastAPI applications using uvicorn.
- Set up environment variables for context and query directories, Redis address, and authentication details to streamline the development process.
- Updated settings.json for consistent formatting.
@mosoriob mosoriob changed the title add: list tapis apps as component feat: Sync Model Configuration with Tapis App May 2, 2025
@mosoriob mosoriob merged commit 7f681b2 into master May 2, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support tapis apps list

2 participants