Skip to content

Conversation

@dheerajturaga
Copy link
Member

@dheerajturaga dheerajturaga commented Sep 5, 2025

  • Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  • Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  • Add maintenance request form with required comment field (max 1024 chars)
  • Add maintenance state handling for all maintenance-related worker states
  • Add proper error handling and user feedback for maintenance operations
  • Add worker existence validation and database session management
  • Remove authentication dependencies for UI maintenance endpoints
  • Update frontend to show maintenance controls based on worker state
  • Format maintenance comments with timestamps for audit trail
image image image image

Expect more beautification in additional PRs, this is bringing in base functionality

@boring-cyborg boring-cyborg bot added area:providers provider:edge Edge Executor / Worker (AIP-69) / edge3 labels Sep 5, 2025
  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail
@dheerajturaga dheerajturaga force-pushed the feature/edge-maintenance-plugin branch from 4fc6780 to 39024c2 Compare September 5, 2025 18:51
Copy link
Contributor

@jscheffl jscheffl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very cool! I also wanted to get started with the maintenance but you opened the PR faster. Cool!
Functionally the skeleton is working.

Sorry about the many comments, don't be afraid. If too much then let me know and I can also contribute to this as this is an important feature urgently needed in UI for Airflow 3.1 release.

Remove explicit session.commit() calls - let SQLAlchemy handle transactions
  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability
…tenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code
Copy link
Contributor

@jscheffl jscheffl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was not able to commit to your repo, Github gave me the following error :-(

jscheffl@hp860g9:~/Workspace/airflow_review$ git push
error: Authentication error: Authentication required: You must have push access to verify locks
error: failed to push some refs to 'github.com:dheerajturaga/airflow.git'

Therefore (1) added commits 1-3 from my additions as recommondations/comments. Did not pply them because generated and compiled code was not possible to be added by this ... you need to apply and compile UI.

Alternatively opened a DRAFT PR, you can also easily git cherry-pick from there:
#55348:

  1. Add tooltips to buttons
  2. Have exit button not if it is in maintenance exit already
  3. Add authentication to (new) API endpoints

My change attempt to make a proper dialog in commit 4 / Rework maintenance dialog to be a dialog as not successful, asked in Slack if I am tooo stupid... I assume to need help on this.
So to un-block the efforts, maybe if commits 1-3 are cherry picked it is OK to merge and then applying beautification later?

@dheerajturaga
Copy link
Member Author

I was not able to commit to your repo, Github gave me the following error :-(


jscheffl@hp860g9:~/Workspace/airflow_review$ git push

error: Authentication error: Authentication required: You must have push access to verify locks

error: failed to push some refs to 'github.com:dheerajturaga/airflow.git'

Therefore (1) added commits 1-3 from my additions as recommondations/comments. Did not pply them because generated and compiled code was not possible to be added by this ... you need to apply and compile UI.

Alternatively opened a DRAFT PR, you can also easily git cherry-pick from there:

#55348:

  1. Add tooltips to buttons

  2. Have exit button not if it is in maintenance exit already

  3. Add authentication to (new) API endpoints

My change attempt to make a proper dialog in commit 4 / Rework maintenance dialog to be a dialog as not successful, asked in Slack if I am tooo stupid... I assume to need help on this.

So to un-block the efforts, maybe if commits 1-3 are cherry picked it is OK to merge and then applying beautification later?

@jscheffl sure thing! Let me cherry pick these and re compile the assets in a couple of hours. Lets merge if base functionality is available and cleanup the UI in subsequent PRs

@dheerajturaga
Copy link
Member Author

@jscheffl, I updated the PR with latest screenshots

Copy link
Contributor

@jscheffl jscheffl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@jscheffl jscheffl merged commit acc1765 into apache:main Sep 7, 2025
133 of 134 checks passed
@dheerajturaga dheerajturaga deleted the feature/edge-maintenance-plugin branch September 7, 2025 20:54
RoyLee1224 pushed a commit to RoyLee1224/airflow that referenced this pull request Sep 8, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Sep 30, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 1, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 2, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 3, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 4, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 5, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 5, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 7, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 8, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 9, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 10, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 11, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 12, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 14, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 15, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 17, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 19, 2025
…e#55301)

* Add worker maintenance mode functionality to Edge3 provider UI

  - Add POST /edge_worker/ui/worker/{worker_name}/maintenance endpoint to request maintenance mode
  - Add DELETE /edge_worker/ui/worker/{worker_name}/maintenance endpoint to exit maintenance mode
  - Add maintenance request form with required comment field (max 1024 chars)
  - Add maintenance state handling for all maintenance-related worker states
  - Add proper error handling and user feedback for maintenance operations
  - Add worker existence validation and database session management
  - Remove authentication dependencies for UI maintenance endpoints
  - Update frontend to show maintenance controls based on worker state
  - Format maintenance comments with timestamps for audit trail

* Move MaintenanceRequest to datamodels_ui.py for better code organization
Remove explicit session.commit() calls - let SQLAlchemy handle transactions

* refactor: extract OperationsCell into separate component

  - Move MaintenanceRequest class to datamodels_ui.py for better organization
  - Remove explicit session.commit() calls, let SQLAlchemy handle transactions
  - Extract OperationsCell and MaintenanceForm into separate component file
  - Clean up unused imports in WorkerPage.tsx
  - Improve code modularity and maintainability

* refactor: replace manual fetch with generated axios wrappers for maintenance operations

  - Use useUiServiceRequestWorkerMaintenance and useUiServiceExitWorkerMaintenance hooks
  - Remove manual fetch implementation with CSRF token handling
  - Simplify error handling using React Query's onSuccess/onError callbacks
  - Improve type safety with generated API client
  - Reduce bundle size and code complexity
  - Maintain same functionality with cleaner, more maintainable code

* Use react icons instead of old school buttons

* Add tooltips to buttons

* Have exit button not if it is in maintenance exit already

* Add authentication to (new) API endpoints

---------

Co-authored-by: Jens Scheffler <jscheffl@apache.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:providers provider:edge Edge Executor / Worker (AIP-69) / edge3

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants