* feat: add specification and quality checklist for Shell Reload API endpoints * feat: implement Shell Reload API endpoints and associated documentation * feat: enhance Shell Reload API documentation and add tasks for implementation phases * feat: implement Shell Reload API features with endpoints, interface contracts, models, and component tests * feat: update Shell Reload API responses and tests to reflect changes in error handling and response structure * Fix shell reload follow-up review issues (#7354) * Initial plan * Address shell reload review feedback Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com> * Dispose shell reload semaphore Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com> * Harden shell reload follow-up fixes Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com> * Update src/modules/Elsa.Workflows.Api/Endpoints/Shells/Reload/Endpoint.cs Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Potential fix for pull request finding 'Missed opportunity to use Where' Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com> * Update src/modules/Elsa.Workflows.Api/Endpoints/Shells/Reload/Endpoint.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com> Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
129 lines
3.5 KiB
YAML
129 lines
3.5 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: Shell Reload API
|
|
version: 0.1.0
|
|
description: Administrative endpoints for reloading shell-backed configuration.
|
|
paths:
|
|
/actions/shells/reload:
|
|
post:
|
|
summary: Reload all shells
|
|
operationId: reloadAllShells
|
|
tags:
|
|
- Shells
|
|
responses:
|
|
'200':
|
|
description: Reload completed or partially completed.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ShellReloadResponse'
|
|
'409':
|
|
description: Another reload is already in progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ShellReloadResponse'
|
|
'503':
|
|
description: Shell configuration could not be loaded from the current provider.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ShellReloadResponse'
|
|
/shells/{shellId}/reload:
|
|
post:
|
|
summary: Reload a specific shell
|
|
operationId: reloadShellById
|
|
tags:
|
|
- Shells
|
|
parameters:
|
|
- name: shellId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Case-insensitive shell identifier.
|
|
responses:
|
|
'200':
|
|
description: The fallback reload completed and the requested shell refreshed successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ShellReloadResponse'
|
|
'404':
|
|
description: The requested shell ID is unknown.
|
|
'409':
|
|
description: Another reload is already in progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ShellReloadResponse'
|
|
'422':
|
|
description: The fallback reload did not refresh the requested shell successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ShellReloadResponse'
|
|
'503':
|
|
description: Shell configuration could not be loaded from the current provider.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ShellReloadResponse'
|
|
components:
|
|
schemas:
|
|
ShellReloadResponse:
|
|
type: object
|
|
required:
|
|
- status
|
|
- shells
|
|
- reloadedAt
|
|
properties:
|
|
status:
|
|
$ref: '#/components/schemas/ShellReloadStatus'
|
|
requestedShellId:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
reloadedAt:
|
|
type: string
|
|
format: date-time
|
|
shells:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ShellReloadItemResult'
|
|
ShellReloadStatus:
|
|
type: string
|
|
enum:
|
|
- Completed
|
|
- Partial
|
|
- Failed
|
|
- Busy
|
|
- NotFound
|
|
- RequestedShellFailed
|
|
ShellReloadItemResult:
|
|
type: object
|
|
required:
|
|
- shellId
|
|
- outcome
|
|
- requested
|
|
properties:
|
|
shellId:
|
|
type: string
|
|
outcome:
|
|
$ref: '#/components/schemas/ShellReloadItemOutcome'
|
|
requested:
|
|
type: boolean
|
|
message:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
ShellReloadItemOutcome:
|
|
type: string
|
|
enum:
|
|
- Reloaded
|
|
- Unchanged
|
|
- Removed
|
|
- InvalidConfiguration
|
|
- Unknown
|
|
- Skipped
|