Skip to content

Algorithms Jupyter Extension#23

Draft
marjo-luc wants to merge 45 commits intodevelopfrom
feature/major-refactor
Draft

Algorithms Jupyter Extension#23
marjo-luc wants to merge 45 commits intodevelopfrom
feature/major-refactor

Conversation

@marjo-luc
Copy link
Member

@marjo-luc marjo-luc commented Jul 2, 2025

Major refactor of the Algorithms Jupyter Extension for MAAP.

Key updates:

  • Compliant with OGC API Processes
  • Redesigned UI/UX, allowing for better search and discovery of registered algorithms
  • Removed maap-py dependency
  • Extension is now a Jupyter frontend extension
  • Updated repo architecture to be consistent with Jupyter community recommendations

@marjo-luc marjo-luc self-assigned this Jul 2, 2025
marjo-luc and others added 28 commits July 13, 2025 13:38
- Add TypeScript interfaces for Build, Deployment, and related types
- Create authentication utility functions for MAAP token management
- Support for API response structures from builds and deployments endpoints
- Replace proxy-ticket header with cpticket to resolve CORS issues
- Add unified fetchWithAuth helper for consistent authentication
- Update all API calls (builds, deployments, algorithm registration) to use cpticket
- Resolve 401 authentication errors caused by browser CORS header blocking
- Create comprehensive builds/deployments widget with Material React Table
- Support combined view of builds and deployment jobs with status tracking
- Include expandable detail panels with full build/deployment information
- Add MAAP token authentication modal with profile link
- Implement sorting, filtering, and action buttons for pipeline/deployment links
- Follow existing widget patterns and Stellar design system styling
- Add BuildsDeploymentsWidget class to widgets.tsx
- Register new plugin and command for "My Builds & Deployments"
- Add launcher entry in MAAP Plugins category
- Update constants with new command identifier
- Enable widget to be opened from JupyterLab launcher interface
- Add comprehensive CLAUDE.md with project overview and development guidelines
- Update .gitignore to exclude Python virtual environment directory
- Document architecture, key components, and development workflow
- Update package-lock.json with latest dependency resolutions
- Update Stellar design system styles and CSS configurations
- Update UI test configurations for new widget testing
- Maintain consistent styling across extension components
- Add refresh button to manually update build/deployment statuses
- Implement auto-refresh logic for builds and deployments in non-final states
- Add getBuildStatus and getDeploymentStatus API functions
- Update status chip color for pending state (mustard/orange)
- Sort items by creation date with most recent first
- Add deploymentStatus field to Build and BuildDeploymentItem types
- Add deploymentPipelineLink field to separate deployment endpoint link from GitLab pipeline link
- This separation allows proper data flow: deploymentLink points to deployment API, deploymentPipelineLink points to GitLab pipeline
- Remove quotes from cpticket header property
- Add missing newlines in auth.ts
- Format error logging in API functions
- Add spacing in checkbox CSS
Major Changes:
- Remove deployment listing logic since no endpoint exists to list deployments
- Add deploymentPipelineLink field to separate concerns:
  * deploymentLink: points to deployment API endpoint (from build response)
  * deploymentPipelineLink: points to GitLab pipeline (from deployment status response)
- Add async deployment data fetching for builds with deployment links
- Update UI to show deployment status from actual deployment endpoint instead of inferred from build status

Features:
- Show "Loading..." for deployment status while fetching from deployment API
- Actions column now shows "View Deployment Pipeline" using correct GitLab pipeline URL
- Deployment status comes from deployment endpoint response, not build inference
- Proper error handling for deployment API failures
- Focus UI on builds only since deployment listing is not available

Technical Details:
- Add extractDeploymentId() helper to parse deployment IDs from hrefs
- Add fetchDeploymentDataForBuilds() for async deployment data retrieval
- Update fetchData() flow to load builds first, then fetch deployment data asynchronously
- Replace incorrect getDeploymentStatus() inference logic with getDefaultDeploymentStatus()
- Update refresh logic to handle both deployment links properly
…idget

Feature add builds deployments widget
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.

2 participants