Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
38198c9
feat: adds string literal replacement syntax
baywet Feb 18, 2026
74f3a40
feat: adds high level definitions for templates and templates parameters
baywet Feb 18, 2026
2f2fbcc
feat: adds the action template reference object
baywet Feb 18, 2026
77d9e4f
docs: adds an example for the action templates
baywet Feb 18, 2026
5633f57
feat: adds reusable actions to the components
baywet Feb 25, 2026
06a21c9
feat: adds environment variables template
baywet Feb 25, 2026
553fca8
chore: capitalization fixes
baywet Feb 25, 2026
9329227
chore: typo fixes
baywet Feb 25, 2026
d01be1e
fix: case sensitive environment variable
baywet Feb 25, 2026
0b71e07
feat: merges reusable actions
baywet Mar 3, 2026
beeeab0
Merge branch 'feat/action-templates' of https://github.com/baywet/Ove…
baywet Mar 3, 2026
e64846a
fix: updates wording for references definition
baywet Mar 3, 2026
e5be862
Merge branch 'main' into feat/action-templates
baywet Mar 3, 2026
3a58335
fix: aligns wording for the action fields in template and template re…
baywet Mar 3, 2026
d332446
docs: minor fixes for samples mismatches
baywet Mar 31, 2026
b79ed3e
docs: aligns on reusable action terminology
baywet Mar 31, 2026
3ab579e
docs: further alignments on the reusable action terminology
baywet Mar 31, 2026
694f572
Merge branch 'main' into feat/action-templates
baywet Mar 31, 2026
f9802ec
docs: aligns the examples names on the reusable action terminology
baywet Mar 31, 2026
789568c
docs: adds description to the new examples
baywet Mar 31, 2026
d205893
docs: adds important considerations for the reusable actions
baywet Mar 31, 2026
79f81dd
docs: adds precisions in the reusable action object abstract
baywet Mar 31, 2026
edcf47a
docs: adds precision on how to reuse actions in the components section
baywet Mar 31, 2026
35a1e94
feat: adds schema definition for reusable actions
baywet Mar 31, 2026
d692a77
fix: makes actions a oneOf with reusable action reference
baywet Mar 31, 2026
357b742
fix: adds missing parameter values to the schema
baywet Mar 31, 2026
df5ca29
chore: refactors the action definition to avoid having a required tar…
baywet Mar 31, 2026
ef024cf
tests: adds a first set of fail tests for action parameters
baywet Mar 31, 2026
357c782
fix: actions definitions should use the action object not the reusabl…
baywet Mar 31, 2026
1879f2a
tests: adds another batch of pass/fail tests for reusable actions
baywet Mar 31, 2026
1cb9539
tests: additional pass tests for extensions
baywet Mar 31, 2026
ccc453a
fix: pattern validation in the schema
baywet Mar 31, 2026
2ba09b6
tests: adds missing tests for unescaped characters
baywet Mar 31, 2026
b05ab45
tests: increases coverage through additional fail tests
baywet Mar 31, 2026
f0d5536
tests: duplicates additional tests that would be beneficial to earlie…
baywet Mar 31, 2026
6842b95
Merge branch 'main' into feat/action-templates
baywet Apr 1, 2026
f9f5ffa
Merge branch 'main' into feat/action-templates
baywet Apr 1, 2026
f57ce30
Apply suggestions from code review
baywet Apr 6, 2026
e03b60d
chore: feedback updates for a number of tests
baywet Apr 6, 2026
ad8f5e8
fix: allow underscores in parameter names
baywet Apr 6, 2026
569cff0
fix: removes outdated note about optional fields
baywet Apr 6, 2026
c04856d
docs: better representation of the reusable action object
baywet Apr 6, 2026
caade0d
chore: Apply suggestions from code review
baywet Apr 7, 2026
fd729d5
tests: removes duplicate test definition
baywet Apr 7, 2026
7d43013
fix: restrict parameters defaults and values to string
baywet Apr 7, 2026
18ea3ee
fix: restrict the string interpolation syntax to string fields of obj…
baywet Apr 7, 2026
11e4053
fix: adds encoding considerations for keys
baywet Apr 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 65 additions & 3 deletions schemas/v1.2-dev/schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,72 @@ properties:
minItems: 1
uniqueItems: true
items:
$ref: "#/$defs/action-object"
oneOf:
- $ref: "#/$defs/reusable-action-reference-object"
- $ref: "#/$defs/action-object"
components:
$ref: "#/$defs/components-object"
required:
- overlay
- info
- actions
$ref: "#/$defs/specification-extensions"
unevaluatedProperties: false
$defs:
reusable-action-reference-object:
type: object
allOf:
- $ref: "#/$defs/specification-extensions"
- $ref: "#/$defs/action-object-base"
properties:
$ref:
type: string
pattern: ^#\/components\/actions\/(?:[^~/]|~0|~1)+$
parameterValues:
type: object
additionalProperties:
type: string
required:
- $ref
$ref: "#/$defs/specification-extensions"
unevaluatedProperties: false
reusable-action-object-parameter:
type: object
properties:
name:
type: string
pattern: ^[A-Za-z_][A-Za-z_0-9]*$
default:
type: string
required:
- name
description: A parameter to be used in a reusable action object
$ref: "#/$defs/specification-extensions"
unevaluatedProperties: false
reusable-action-object:
type: object
allOf:
- $ref: "#/$defs/specification-extensions"
- $ref: "#/$defs/action-object-base"
properties:
parameters:
type: array
items:
$ref: "#/$defs/reusable-action-object-parameter"
environmentVariables:
type: array
items:
$ref: "#/$defs/reusable-action-object-parameter"
unevaluatedProperties: false
components-object:
type: object
properties:
actions:
type: object
additionalProperties:
$ref: "#/$defs/reusable-action-object"
$ref: "#/$defs/specification-extensions"
unevaluatedProperties: false
info-object:
type: object
properties:
Expand All @@ -38,7 +96,7 @@ $defs:
- version
$ref: "#/$defs/specification-extensions"
unevaluatedProperties: false
action-object:
action-object-base:
type: object
properties:
target:
Expand All @@ -59,9 +117,13 @@ $defs:
remove:
type: boolean
default: false
action-object:
type: object
allOf:
- $ref: "#/$defs/action-object-base"
- $ref: "#/$defs/specification-extensions"
required:
- target
$ref: "#/$defs/specification-extensions"
unevaluatedProperties: false
specification-extensions:
patternProperties:
Expand Down
20 changes: 20 additions & 0 deletions tests/v1.2-dev/fail/action-parameter-value-invalid-type.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
overlay: 1.2.0
info:
title: Reusable action reference parameter values must be strings
version: 1.0.0
components:
actions:
errorResponse:
target: "$.paths['%param.pathItem%'].%param.operation%.responses"
update:
'404':
description: Not Found
parameters:
- name: pathItem
- name: operation
default: get
actions:
- $ref: '#/components/actions/errorResponse'
parameterValues:
pathItem: /items
operation: 100
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
overlay: 1.2.0
info:
title: Non-reusable action objects cannot have environment variables
version: 1.0.0
actions:
- target: '$.info'
environmentVariables:
- name: stageName
update:
description: Example
10 changes: 10 additions & 0 deletions tests/v1.2-dev/fail/action-with-parameter-invalid.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
overlay: 1.2.0
info:
title: Reusable action parameter missing name
version: 1.0.0
actions:
- target: '$.info'
parameters:
- default: fallback
update:
description: Updated
8 changes: 8 additions & 0 deletions tests/v1.2-dev/fail/components-actions-invalid-type.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
overlay: 1.2.0
info:
title: Components actions must be an object
version: 1.0.0
components:
actions: []
actions:
- target: '$'
13 changes: 13 additions & 0 deletions tests/v1.2-dev/fail/components-invalid-property.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
overlay: 1.2.0
info:
title: Components invalid property
version: 1.0.0
components:
invalidProperty: true
actions:
setDescription:
target: '$.info'
update:
description: Updated
actions:
- target: '$.info'
7 changes: 7 additions & 0 deletions tests/v1.2-dev/fail/components-invalid-type.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
overlay: 1.2.0
info:
title: Components must be an object
version: 1.0.0
components: []
actions:
- target: '$'
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
overlay: 1.2.0
info:
title: Components action must be an object
version: 1.0.0
components:
actions:
brokenAction: not-an-object
actions:
- target: '$'
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
overlay: 1.2.0
info:
title: Reusable action environment variable default values must be strings in components
version: 1.0.0
components:
actions:
setDescription:
target: '$.info'
environmentVariables:
- name: STAGE_NAME
default: false
update:
description: Updated
actions:
- target: '$'
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
overlay: 1.2.0
info:
title: Reusable action environment variable name must start with a letter and be alphanumeric
version: 1.0.0
components:
actions:
setDescription:
target: '$.info'
environmentVariables:
- name: stage-name
default: dev
update:
description: Updated
actions:
- target: '$.info'
update:
description: Invalid reusable action environment variable name
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
overlay: 1.2.0
info:
title: Reusable action environment variable invalid name type
version: 1.0.0
actions:
- target: '$.info'
environmentVariables:
- name: 123
default: dev
update:
description: Updated
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
overlay: 1.2.0
info:
title: Reusable action environment variables must be an array in components
version: 1.0.0
components:
actions:
setDescription:
target: '$.info'
environmentVariables:
name: stageName
update:
description: Example
actions:
- target: '$'
13 changes: 13 additions & 0 deletions tests/v1.2-dev/fail/reusable-action-invalid-property.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
overlay: 1.2.0
info:
title: Reusable action invalid property
version: 1.0.0
components:
actions:
setDescription:
target: '$.info'
invalidProperty: true
update:
description: Updated
actions:
- target: '$.info'
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
overlay: 1.2.0
info:
title: Reusable action parameter default values must be strings in components
version: 1.0.0
components:
actions:
setTitle:
target: '$.info'
parameters:
- name: titleValue
default: 100
update:
title: Example
actions:
- target: '$'
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
overlay: 1.2.0
info:
title: Reusable action parameter name must start with a letter and be alphanumeric
version: 1.0.0
components:
actions:
setTitle:
target: '$.info'
parameters:
- name: 1titleValue
update:
title: Example
actions:
- target: '$.info'
update:
description: Invalid reusable action parameter name
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
overlay: 1.2.0
info:
title: Reusable action parameter invalid property
version: 1.0.0
components:
actions:
setTitle:
target: '$.info'
parameters:
- name: titleValue
invalidProperty: true
update:
title: Example
actions:
- target: '$.info'
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
overlay: 1.2.0
info:
title: Reusable action parameter items must be objects
version: 1.0.0
components:
actions:
setTitle:
target: '$.info'
parameters:
- invalid
update:
title: Example
actions:
- target: '$'
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
overlay: 1.2.0
info:
title: Reusable action parameter items must include name in components
version: 1.0.0
components:
actions:
setTitle:
target: '$.info'
parameters:
- default: fallback
update:
title: Example
actions:
- target: '$'
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
overlay: 1.2.0
info:
title: Reusable action parameter names must be strings in components
version: 1.0.0
components:
actions:
setTitle:
target: '$.info'
parameters:
- name: 100
update:
title: Example
actions:
- target: '$'
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
overlay: 1.2.0
info:
title: Parameter values are not allowed on reusable actions
version: 1.0.0
components:
actions:
setTitle:
target: '$.info'
parameterValues:
titleValue: Example
update:
title: '%param.titleValue%'
actions:
- $ref: '#/components/actions/setTitle'
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
overlay: 1.2.0
info:
title: Reusable action parameters must be an array in components
version: 1.0.0
components:
actions:
setTitle:
target: '$.info'
parameters:
name: titleValue
update:
title: Example
actions:
- target: '$'
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
overlay: 1.2.0
info:
title: Environment variables are not allowed on reusable action references
version: 1.0.0
actions:
- $ref: '#/components/actions/errorResponse'
environmentVariables:
- name: stageName
Loading
Loading