elsa-core/specs/001-shell-reload-api/contracts/shell-reload-api.yaml
Sipke Schoorstra 21e982c2c6
Add shell reload API endpoints and client support (#7353)
* 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>
2026-03-09 08:37:11 +01:00

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