harness-mcp-v2 3.2.2 → 3.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +1 -1
  2. package/build/data/examples/pipeline-v1.d.ts.map +1 -1
  3. package/build/data/examples/pipeline-v1.js +66 -26
  4. package/build/data/examples/pipeline-v1.js.map +1 -1
  5. package/build/data/schemas/index.d.ts +1 -1
  6. package/build/data/schemas/index.d.ts.map +1 -1
  7. package/build/data/schemas/index.js +1 -7
  8. package/build/data/schemas/index.js.map +1 -1
  9. package/build/data/schemas/v0/pipeline.d.ts.map +1 -1
  10. package/build/data/schemas/v0/pipeline.js +3507 -1046
  11. package/build/data/schemas/v0/pipeline.js.map +1 -1
  12. package/build/data/schemas/v0/template.d.ts.map +1 -1
  13. package/build/data/schemas/v0/template.js +4103 -958
  14. package/build/data/schemas/v0/template.js.map +1 -1
  15. package/build/data/schemas/v1/pipeline.d.ts.map +1 -1
  16. package/build/data/schemas/v1/pipeline.js +179 -233
  17. package/build/data/schemas/v1/pipeline.js.map +1 -1
  18. package/build/data/schemas/v1/template.d.ts.map +1 -1
  19. package/build/data/schemas/v1/template.js +210 -694
  20. package/build/data/schemas/v1/template.js.map +1 -1
  21. package/package.json +1 -1
  22. package/build/data/schemas/v1/infra.d.ts +0 -3
  23. package/build/data/schemas/v1/infra.d.ts.map +0 -1
  24. package/build/data/schemas/v1/infra.js +0 -1005
  25. package/build/data/schemas/v1/infra.js.map +0 -1
  26. package/build/data/schemas/v1/service.d.ts +0 -3
  27. package/build/data/schemas/v1/service.d.ts.map +0 -1
  28. package/build/data/schemas/v1/service.js +0 -1386
  29. package/build/data/schemas/v1/service.js.map +0 -1
  30. package/build/data/schemas/v1/trigger.d.ts +0 -3
  31. package/build/data/schemas/v1/trigger.d.ts.map +0 -1
  32. package/build/data/schemas/v1/trigger.js +0 -3361
  33. package/build/data/schemas/v1/trigger.js.map +0 -1
@@ -32,7 +32,7 @@ const schema = {
32
32
  }
33
33
  },
34
34
  "inputs": {
35
- "$ref": "#/definitions/template_v1/common/UnifiedInputs"
35
+ "$ref": "#/definitions/template_v1/common/NGVariableV1Wrapper"
36
36
  }
37
37
  },
38
38
  "oneOf": [
@@ -75,6 +75,16 @@ const schema = {
75
75
  "$ref": "#/definitions/template/group/GroupTemplateSpec"
76
76
  }
77
77
  }
78
+ },
79
+ {
80
+ "required": [
81
+ "agent"
82
+ ],
83
+ "properties": {
84
+ "agent": {
85
+ "$ref": "#/definitions/template/agent/AgentTemplateSpec"
86
+ }
87
+ }
78
88
  }
79
89
  ]
80
90
  }
@@ -179,472 +189,25 @@ const schema = {
179
189
  ],
180
190
  "$schema": "http://json-schema.org/draft-07/schema#"
181
191
  }
182
- }
183
- },
184
- "template_v1": {
185
- "common": {
186
- "UnifiedInputs": {
187
- "title": "UnifiedInputs",
188
- "type": "object",
189
- "description": "Defines typed input parameters for any entity.",
190
- "additionalProperties": {
191
- "oneOf": [
192
- {
193
- "$ref": "#/definitions/template_v1/common/StringInput"
194
- },
195
- {
196
- "$ref": "#/definitions/template_v1/common/NumberInput"
197
- },
198
- {
199
- "$ref": "#/definitions/template_v1/common/ArrayInput"
200
- },
201
- {
202
- "$ref": "#/definitions/template_v1/common/BooleanInput"
203
- },
204
- {
205
- "$ref": "#/definitions/template_v1/common/ObjectInput"
206
- },
207
- {
208
- "$ref": "#/definitions/template_v1/common/SecretInput"
209
- }
210
- ]
211
- },
212
- "propertyNames": {
213
- "pattern": "^[a-zA-Z_][0-9a-zA-Z_\\.$-]{0,127}$"
214
- }
215
- },
216
- "StringInput": {
217
- "title": "StringInput",
218
- "allOf": [
219
- {
220
- "$ref": "#/definitions/template_v1/common/Input"
221
- },
222
- {
223
- "type": "object",
224
- "required": [
225
- "type"
226
- ],
227
- "properties": {
228
- "default": {
229
- "type": "string"
230
- },
231
- "type": {
232
- "type": "string",
233
- "enum": [
234
- "string"
235
- ]
236
- },
237
- "value": {
238
- "type": "string"
239
- },
240
- "validator": {
241
- "type": "object",
242
- "oneOf": [
243
- {
244
- "allOf": [
245
- {
246
- "properties": {
247
- "allowed": {
248
- "description": "defines allowed values for an input",
249
- "type": "array",
250
- "items": {
251
- "type": "string"
252
- }
253
- }
254
- }
255
- }
256
- ],
257
- "required": [
258
- "allowed"
259
- ]
260
- },
261
- {
262
- "allOf": [
263
- {
264
- "properties": {
265
- "regex": {
266
- "description": "defines regex pattern for an input value",
267
- "type": "string"
268
- }
269
- }
270
- }
271
- ],
272
- "required": [
273
- "regex"
274
- ]
275
- }
276
- ]
277
- }
278
- }
279
- }
280
- ],
281
- "$schema": "http://json-schema.org/draft-07/schema#"
282
- },
283
- "Input": {
284
- "title": "Input",
285
- "type": "object",
286
- "discriminator": "type",
287
- "description": "Input defines an input parameter.",
288
- "properties": {
289
- "type": {
290
- "description": "Type defines the input type.",
291
- "type": "string",
292
- "enum": [
293
- "string",
294
- "number",
295
- "boolean",
296
- "array",
297
- "object",
298
- "secret",
299
- "step",
300
- "duration",
301
- "choice",
302
- "environment"
303
- ]
304
- },
305
- "description": {
306
- "type": "string",
307
- "description": "Description defines the input description."
308
- },
309
- "default": {
310
- "description": "Default defines the default value."
311
- },
312
- "required": {
313
- "type": "boolean",
314
- "description": "Required indicates the input is required."
315
- },
316
- "items": {
317
- "type": "array",
318
- "description": "Items defines an array type."
319
- },
320
- "enum": {
321
- "type": "array",
322
- "description": "Enum defines a list of accepted input values."
323
- },
324
- "pattern": {
325
- "type": "string",
326
- "description": "Pattern defines a regular expression input constraint."
327
- },
328
- "component": {
329
- "type": "string",
330
- "description": "Component defines the form element for rendering the input.",
331
- "enum": [
332
- "dropdown",
333
- "text",
334
- "number",
335
- "date",
336
- "datetime"
337
- ]
338
- },
339
- "autofocus": {
340
- "type": "boolean",
341
- "description": "Autofocus configures the form element autofocus attribute."
342
- },
343
- "placeholder": {
344
- "type": "string",
345
- "description": "Placeholder configures the form element placeholder attribute."
346
- },
347
- "tooltip": {
348
- "type": "string",
349
- "description": "Tooltip configures the form element alt attribute."
350
- },
351
- "options": {
352
- "type": "array",
353
- "description": "Options defines a list of accepted input values (alias for enum, GitHub compatibility)."
354
- },
355
- "mask": {
356
- "type": "boolean",
357
- "description": "Mask indicates the input should be masked (deprecated).",
358
- "deprecated": true
359
- }
360
- },
361
- "$schema": "http://json-schema.org/draft-07/schema#"
362
- },
363
- "NumberInput": {
364
- "title": "NumberInput",
365
- "allOf": [
366
- {
367
- "$ref": "#/definitions/template_v1/common/Input"
368
- },
369
- {
370
- "type": "object",
371
- "required": [
372
- "type"
373
- ],
374
- "properties": {
375
- "default": {
376
- "type": "number",
377
- "format": "double"
378
- },
379
- "type": {
380
- "type": "string",
381
- "enum": [
382
- "number"
383
- ]
384
- },
385
- "value": {
386
- "oneOf": [
387
- {
388
- "type": "number",
389
- "format": "double"
390
- },
391
- {
392
- "type": "string",
393
- "pattern": "((^[+-]?[0-9]*\\.?[0-9]+$)|(<\\+.+>.*))"
394
- }
395
- ]
396
- },
397
- "validator": {
398
- "type": "object",
399
- "oneOf": [
400
- {
401
- "allOf": [
402
- {
403
- "properties": {
404
- "allowed": {
405
- "description": "defines allowed values for an input",
406
- "type": "array",
407
- "items": {
408
- "oneOf": [
409
- {
410
- "type": "number",
411
- "format": "double"
412
- },
413
- {
414
- "type": "string",
415
- "pattern": "((^[+-]?[0-9]*\\.?[0-9]+$)|(<\\+.+>.*))"
416
- }
417
- ]
418
- }
419
- }
420
- }
421
- }
422
- ],
423
- "required": [
424
- "allowed"
425
- ]
426
- },
427
- {
428
- "allOf": [
429
- {
430
- "properties": {
431
- "regex": {
432
- "description": "defines regex pattern for an input value",
433
- "type": "string"
434
- }
435
- }
436
- }
437
- ],
438
- "required": [
439
- "regex"
440
- ]
441
- }
442
- ]
443
- }
444
- }
445
- }
446
- ],
447
- "$schema": "http://json-schema.org/draft-07/schema#"
448
- },
449
- "ArrayInput": {
450
- "title": "ArrayInput",
451
- "allOf": [
452
- {
453
- "$ref": "#/definitions/template_v1/common/Input"
454
- },
455
- {
456
- "type": "object",
457
- "required": [
458
- "type"
459
- ],
460
- "properties": {
461
- "default": {
462
- "type": "array"
463
- },
464
- "type": {
465
- "type": "string",
466
- "enum": [
467
- "array"
468
- ]
469
- },
470
- "value": {
471
- "type": "array"
472
- },
473
- "validator": {
474
- "type": "object",
475
- "oneOf": [
476
- {
477
- "allOf": [
478
- {
479
- "properties": {
480
- "allowed": {
481
- "description": "defines allowed values for an input",
482
- "type": "array",
483
- "items": {
484
- "type": "array"
485
- }
486
- }
487
- }
488
- }
489
- ],
490
- "required": [
491
- "allowed"
492
- ]
493
- },
494
- {
495
- "allOf": [
496
- {
497
- "properties": {
498
- "regex": {
499
- "description": "defines regex pattern for an input value",
500
- "type": "string"
501
- }
502
- }
503
- }
504
- ],
505
- "required": [
506
- "regex"
507
- ]
508
- }
509
- ]
510
- }
511
- }
512
- }
513
- ],
514
- "$schema": "http://json-schema.org/draft-07/schema#"
515
- },
516
- "BooleanInput": {
517
- "title": "BooleanInput",
518
- "allOf": [
519
- {
520
- "$ref": "#/definitions/template_v1/common/Input"
521
- },
522
- {
523
- "type": "object",
524
- "required": [
525
- "type"
526
- ],
527
- "properties": {
528
- "default": {
529
- "type": "boolean"
530
- },
531
- "type": {
532
- "type": "string",
533
- "enum": [
534
- "boolean"
535
- ]
536
- },
537
- "value": {
538
- "type": "boolean"
539
- }
540
- }
541
- }
542
- ],
543
- "$schema": "http://json-schema.org/draft-07/schema#"
544
- },
545
- "ObjectInput": {
546
- "title": "ObjectInput",
547
- "allOf": [
548
- {
549
- "$ref": "#/definitions/template_v1/common/Input"
550
- },
551
- {
552
- "type": "object",
553
- "required": [
554
- "type"
555
- ],
556
- "properties": {
557
- "default": {
558
- "type": "object"
559
- },
560
- "type": {
561
- "type": "string",
562
- "enum": [
563
- "object"
564
- ]
565
- },
566
- "value": {
567
- "type": "object"
568
- },
569
- "validator": {
570
- "type": "object",
571
- "oneOf": [
572
- {
573
- "allOf": [
574
- {
575
- "properties": {
576
- "allowed": {
577
- "description": "defines allowed values for an input",
578
- "type": "array",
579
- "items": {
580
- "type": "object"
581
- }
582
- }
583
- }
584
- }
585
- ],
586
- "required": [
587
- "allowed"
588
- ]
589
- },
590
- {
591
- "allOf": [
592
- {
593
- "properties": {
594
- "regex": {
595
- "description": "defines regex pattern for an input value",
596
- "type": "string"
597
- }
598
- }
599
- }
600
- ],
601
- "required": [
602
- "regex"
603
- ]
604
- }
605
- ]
606
- }
607
- }
608
- }
609
- ],
610
- "$schema": "http://json-schema.org/draft-07/schema#"
611
- },
612
- "SecretInput": {
613
- "title": "SecretInput",
614
- "allOf": [
192
+ },
193
+ "agent": {
194
+ "AgentTemplateSpec": {
195
+ "title": "AgentTemplateSpec",
196
+ "description": "Agent template specification for AI agent execution.",
197
+ "oneOf": [
615
198
  {
616
- "$ref": "#/definitions/template_v1/common/Input"
199
+ "$ref": "#/definitions/template_v1/steps/unified/StepItems"
617
200
  },
618
201
  {
619
- "type": "object",
620
- "required": [
621
- "type"
622
- ],
623
- "properties": {
624
- "default": {
625
- "type": "string"
626
- },
627
- "type": {
628
- "type": "string",
629
- "enum": [
630
- "secret"
631
- ]
632
- },
633
- "value": {
634
- "type": "string"
635
- }
636
- }
202
+ "$ref": "#/definitions/template/group/GroupTemplateSpec"
637
203
  }
638
204
  ],
639
205
  "$schema": "http://json-schema.org/draft-07/schema#"
640
- },
641
- "Expression": {
642
- "title": "Expression",
643
- "description": "String value matching a Harness pipeline expression or template placeholder (e.g., <+something> or ${{ ... }}).",
644
- "type": "string",
645
- "pattern": "(\\$\\{\\{.+\\}\\}|<\\+.+>.*)",
646
- "$schema": "http://json-schema.org/draft-07/schema#"
647
- },
206
+ }
207
+ }
208
+ },
209
+ "template_v1": {
210
+ "common": {
648
211
  "NGVariableV1Wrapper": {
649
212
  "title": "NGVariableV1Wrapper",
650
213
  "description": "Wrapper for stage/pipeline-level input variables. Keys are variable names, values define variable configuration.",
@@ -750,9 +313,9 @@ const schema = {
750
313
  "connector"
751
314
  ]
752
315
  },
753
- "desc": {
316
+ "description": {
754
317
  "type": "string",
755
- "description": "Desc defines the variable description."
318
+ "description": "Description of the variable."
756
319
  },
757
320
  "required": {
758
321
  "type": "boolean",
@@ -786,59 +349,11 @@ const schema = {
786
349
  },
787
350
  "ui": {
788
351
  "description": "UI configuration for variable rendering in forms.",
789
- "$ref": "#/definitions/template_v1/common/VariableUI"
352
+ "type": "object",
353
+ "additionalProperties": true
790
354
  }
791
355
  }
792
356
  },
793
- "VariableUI": {
794
- "title": "VariableUI",
795
- "description": "UI configuration for variable rendering in forms.",
796
- "type": "object",
797
- "properties": {
798
- "component": {
799
- "description": "Form element type for rendering the variable input.",
800
- "type": "string",
801
- "enum": [
802
- "dropdown",
803
- "text",
804
- "number",
805
- "date",
806
- "datetime",
807
- "textarea",
808
- "checkbox",
809
- "radio"
810
- ]
811
- },
812
- "placeholder": {
813
- "description": "Placeholder text for the form element.",
814
- "type": "string"
815
- },
816
- "tooltip": {
817
- "description": "Tooltip/help text for the form element.",
818
- "type": "string"
819
- },
820
- "autofocus": {
821
- "description": "Whether the form element should be auto-focused.",
822
- "type": "boolean",
823
- "default": false
824
- },
825
- "hidden": {
826
- "description": "Whether the variable should be hidden in the UI.",
827
- "type": "boolean",
828
- "default": false
829
- },
830
- "readonly": {
831
- "description": "Whether the variable should be read-only in the UI.",
832
- "type": "boolean",
833
- "default": false
834
- },
835
- "label": {
836
- "description": "Display label for the variable in the UI.",
837
- "type": "string"
838
- }
839
- },
840
- "$schema": "http://json-schema.org/draft-07/schema#"
841
- },
842
357
  "NumberVariable": {
843
358
  "title": "NumberVariable",
844
359
  "description": "Number variable definition.",
@@ -1220,6 +735,13 @@ const schema = {
1220
735
  ],
1221
736
  "$schema": "http://json-schema.org/draft-07/schema#"
1222
737
  },
738
+ "Expression": {
739
+ "title": "Expression",
740
+ "description": "String value matching a Harness pipeline expression or template placeholder (e.g., <+something> or ${{ ... }}).",
741
+ "type": "string",
742
+ "pattern": "(\\$\\{\\{.+\\}\\}|<\\+.+>.*)",
743
+ "$schema": "http://json-schema.org/draft-07/schema#"
744
+ },
1223
745
  "Delegate": {
1224
746
  "title": "Delegate",
1225
747
  "description": "Delegate defines the delegate matching logic. Supports expressions.",
@@ -1804,8 +1326,7 @@ const schema = {
1804
1326
  "properties": {
1805
1327
  "name": {
1806
1328
  "description": "Name of the output variable.",
1807
- "type": "string",
1808
- "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
1329
+ "type": "string"
1809
1330
  },
1810
1331
  "alias": {
1811
1332
  "description": "Alias for the output variable.",
@@ -1902,17 +1423,6 @@ const schema = {
1902
1423
  "if-not-exists"
1903
1424
  ],
1904
1425
  "$schema": "http://json-schema.org/draft-07/schema#"
1905
- },
1906
- "OSType": {
1907
- "title": "OSType",
1908
- "description": "Operating system type enumeration (maps to io.harness.beans.yaml.extended.infrastrucutre.OSType).",
1909
- "type": "string",
1910
- "enum": [
1911
- "Linux",
1912
- "MacOS",
1913
- "Windows"
1914
- ],
1915
- "$schema": "http://json-schema.org/draft-07/schema#"
1916
1426
  }
1917
1427
  },
1918
1428
  "pipeline": {
@@ -3197,10 +2707,15 @@ const schema = {
3197
2707
  },
3198
2708
  "ShellRuntimeSpec": {
3199
2709
  "title": "ShellRuntimeSpec",
3200
- "description": "Shell runtime specification. Mirrors io.harness.beans.yaml.extended.runtime.V1.RuntimeV1.ShellRuntimeSpec (no configurable fields).",
2710
+ "description": "Shell runtime specification. Mirrors io.harness.beans.yaml.extended.runtime.V1.RuntimeV1.ShellRuntimeSpec.",
3201
2711
  "type": "object",
3202
2712
  "additionalProperties": false,
3203
- "properties": {},
2713
+ "properties": {
2714
+ "connector": {
2715
+ "description": "Override image connector for pulling private Harness plugin images. Supports expressions.",
2716
+ "type": "string"
2717
+ }
2718
+ },
3204
2719
  "$schema": "http://json-schema.org/draft-07/schema#"
3205
2720
  },
3206
2721
  "CloudRuntimeSpec": {
@@ -3319,17 +2834,6 @@ const schema = {
3319
2834
  }
3320
2835
  ]
3321
2836
  },
3322
- "os": {
3323
- "description": "Operating system type. Supports expressions.",
3324
- "oneOf": [
3325
- {
3326
- "$ref": "#/definitions/template_v1/common/OSType"
3327
- },
3328
- {
3329
- "$ref": "#/definitions/template_v1/common/Expression"
3330
- }
3331
- ]
3332
- },
3333
2837
  "harness-image-connector": {
3334
2838
  "description": "Harness image connector for pulling images. Supports expressions.",
3335
2839
  "type": "string"
@@ -3943,167 +3447,107 @@ const schema = {
3943
3447
  "EnvironmentV1": {
3944
3448
  "title": "EnvironmentV1",
3945
3449
  "description": "Environment configuration for CD stages.",
3946
- "type": "object",
3947
- "if": {
3948
- "anyOf": [
3949
- {
3950
- "required": [
3951
- "id"
3952
- ]
3953
- },
3954
- {
3955
- "required": [
3956
- "items"
3957
- ]
3958
- },
3959
- {
3960
- "required": [
3961
- "group"
3962
- ]
3963
- },
3964
- {
3965
- "required": [
3966
- "filters"
3967
- ]
3968
- }
3969
- ]
3970
- },
3971
- "then": {
3972
- "allOf": [
3973
- {
3974
- "if": {
3975
- "required": [
3976
- "id"
3977
- ]
3450
+ "oneOf": [
3451
+ {
3452
+ "type": "object",
3453
+ "required": [
3454
+ "id"
3455
+ ],
3456
+ "properties": {
3457
+ "id": {
3458
+ "description": "Environment identifier.",
3459
+ "type": "string"
3978
3460
  },
3979
- "then": {
3980
- "type": "object",
3981
- "required": [
3982
- "id"
3983
- ],
3984
- "properties": {
3985
- "id": {
3986
- "description": "Environment identifier.",
3987
- "type": "string"
3988
- },
3989
- "deploy-to": {
3990
- "description": "Infrastructure(s) to deploy to.",
3991
- "$ref": "#/definitions/template_v1/stages/unified/DeployTo"
3992
- },
3993
- "ref": {
3994
- "description": "Git branch for the environment configuration.",
3995
- "type": "string"
3996
- }
3997
- },
3998
- "additionalProperties": false
3461
+ "deploy-to": {
3462
+ "description": "Infrastructure(s) to deploy to.",
3463
+ "$ref": "#/definitions/template_v1/stages/unified/DeployTo"
3464
+ },
3465
+ "ref": {
3466
+ "description": "Git branch for the environment configuration.",
3467
+ "type": "string"
3999
3468
  }
4000
3469
  },
4001
- {
4002
- "if": {
4003
- "required": [
4004
- "items"
4005
- ]
3470
+ "additionalProperties": false
3471
+ },
3472
+ {
3473
+ "type": "object",
3474
+ "required": [
3475
+ "items"
3476
+ ],
3477
+ "properties": {
3478
+ "items": {
3479
+ "description": "List of environments for multi-environment deployment.",
3480
+ "type": "array",
3481
+ "items": {
3482
+ "$ref": "#/definitions/template_v1/stages/unified/EnvironmentItem"
3483
+ }
4006
3484
  },
4007
- "then": {
4008
- "type": "object",
4009
- "required": [
4010
- "items"
4011
- ],
4012
- "properties": {
4013
- "items": {
4014
- "description": "List of environments for multi-environment deployment.",
4015
- "type": "array",
4016
- "items": {
4017
- "$ref": "#/definitions/template_v1/stages/unified/EnvironmentItem"
4018
- }
3485
+ "sequential": {
3486
+ "description": "Execute environments sequentially (one at a time). When false, environments run in parallel.",
3487
+ "oneOf": [
3488
+ {
3489
+ "type": "boolean",
3490
+ "default": false
4019
3491
  },
4020
- "sequential": {
4021
- "description": "Execute environments sequentially (one at a time). When false, environments run in parallel.",
4022
- "oneOf": [
4023
- {
4024
- "type": "boolean",
4025
- "default": false
4026
- },
4027
- {
4028
- "$ref": "#/definitions/template_v1/common/Expression"
4029
- }
4030
- ]
3492
+ {
3493
+ "$ref": "#/definitions/template_v1/common/Expression"
4031
3494
  }
4032
- },
4033
- "additionalProperties": false
3495
+ ]
4034
3496
  }
4035
3497
  },
4036
- {
4037
- "if": {
4038
- "required": [
4039
- "group"
4040
- ]
3498
+ "additionalProperties": false
3499
+ },
3500
+ {
3501
+ "type": "object",
3502
+ "required": [
3503
+ "group"
3504
+ ],
3505
+ "properties": {
3506
+ "group": {
3507
+ "description": "Environment group configuration.",
3508
+ "$ref": "#/definitions/template_v1/stages/unified/EnvironmentGroup"
4041
3509
  },
4042
- "then": {
4043
- "type": "object",
4044
- "required": [
4045
- "group"
4046
- ],
4047
- "properties": {
4048
- "group": {
4049
- "description": "Environment group configuration.",
4050
- "$ref": "#/definitions/template_v1/stages/unified/EnvironmentGroup"
3510
+ "sequential": {
3511
+ "description": "Execute environments sequentially (one at a time). When false, environments run in parallel.",
3512
+ "oneOf": [
3513
+ {
3514
+ "type": "boolean",
3515
+ "default": false
4051
3516
  },
4052
- "sequential": {
4053
- "description": "Execute environments sequentially (one at a time). When false, environments run in parallel.",
4054
- "oneOf": [
4055
- {
4056
- "type": "boolean",
4057
- "default": false
4058
- },
4059
- {
4060
- "$ref": "#/definitions/template_v1/common/Expression"
4061
- }
4062
- ]
3517
+ {
3518
+ "$ref": "#/definitions/template_v1/common/Expression"
4063
3519
  }
4064
- },
4065
- "additionalProperties": false
3520
+ ]
4066
3521
  }
4067
3522
  },
4068
- {
4069
- "if": {
4070
- "required": [
4071
- "filters"
4072
- ]
3523
+ "additionalProperties": false
3524
+ },
3525
+ {
3526
+ "type": "object",
3527
+ "required": [
3528
+ "filters"
3529
+ ],
3530
+ "properties": {
3531
+ "filters": {
3532
+ "description": "Filters for selecting environments and infrastructures.",
3533
+ "$ref": "#/definitions/template_v1/stages/unified/Filters"
4073
3534
  },
4074
- "then": {
4075
- "type": "object",
4076
- "required": [
4077
- "filters"
4078
- ],
4079
- "properties": {
4080
- "filters": {
4081
- "description": "Filters for selecting environments and infrastructures.",
4082
- "$ref": "#/definitions/template_v1/stages/unified/Filters"
3535
+ "sequential": {
3536
+ "description": "Execute environments sequentially (one at a time). When false, environments run in parallel.",
3537
+ "oneOf": [
3538
+ {
3539
+ "type": "boolean",
3540
+ "default": false
4083
3541
  },
4084
- "sequential": {
4085
- "description": "Execute environments sequentially (one at a time). When false, environments run in parallel.",
4086
- "oneOf": [
4087
- {
4088
- "type": "boolean",
4089
- "default": false
4090
- },
4091
- {
4092
- "$ref": "#/definitions/template_v1/common/Expression"
4093
- }
4094
- ]
3542
+ {
3543
+ "$ref": "#/definitions/template_v1/common/Expression"
4095
3544
  }
4096
- },
4097
- "additionalProperties": false
3545
+ ]
4098
3546
  }
4099
- }
4100
- ]
4101
- },
4102
- "else": {
4103
- "required": [
4104
- "id"
4105
- ]
4106
- },
3547
+ },
3548
+ "additionalProperties": false
3549
+ }
3550
+ ],
4107
3551
  "$schema": "http://json-schema.org/draft-07/schema#"
4108
3552
  },
4109
3553
  "DeployTo": {
@@ -5006,10 +4450,17 @@ const schema = {
5006
4450
  },
5007
4451
  "output": {
5008
4452
  "description": "Output variables to capture.",
5009
- "type": "array",
5010
- "items": {
5011
- "$ref": "#/definitions/template_v1/common/OutputV1"
5012
- }
4453
+ "oneOf": [
4454
+ {
4455
+ "type": "array",
4456
+ "items": {
4457
+ "$ref": "#/definitions/template_v1/common/OutputV1"
4458
+ }
4459
+ },
4460
+ {
4461
+ "$ref": "#/definitions/template_v1/common/Expression"
4462
+ }
4463
+ ]
5013
4464
  },
5014
4465
  "report": {
5015
4466
  "description": "Test report configuration. Supports expressions.",
@@ -5095,6 +4546,10 @@ const schema = {
5095
4546
  "description": "Image registry connector. Supports expressions.",
5096
4547
  "type": "string"
5097
4548
  },
4549
+ "registryRef": {
4550
+ "description": "Harness Artifact Registry reference for the image. Supports expressions.",
4551
+ "type": "string"
4552
+ },
5098
4553
  "credentials": {
5099
4554
  "description": "Container registry credentials.",
5100
4555
  "type": "object",
@@ -5251,13 +4706,17 @@ const schema = {
5251
4706
  "type": "string"
5252
4707
  },
5253
4708
  "cpu": {
5254
- "description": "CPU limit.",
4709
+ "description": "CPU limit. Ignored when resources.limits.cpu is set.",
5255
4710
  "type": "string"
5256
4711
  },
5257
4712
  "memory": {
5258
- "description": "Memory limit.",
4713
+ "description": "Memory limit. Ignored when resources.limits.memory is set.",
5259
4714
  "type": "string"
5260
4715
  },
4716
+ "resources": {
4717
+ "description": "Container resource limits and requests. Takes precedence over the flat cpu/memory fields.",
4718
+ "$ref": "#/definitions/template_v1/Resource"
4719
+ },
5261
4720
  "shm-size": {
5262
4721
  "description": "Shared memory size.",
5263
4722
  "type": "string"
@@ -5779,12 +5238,54 @@ const schema = {
5779
5238
  "description": "Comments for auto-approval. Supports expressions.",
5780
5239
  "type": "string"
5781
5240
  },
5782
- "params": {
5783
- "description": "Approver input parameters.",
5784
- "type": "array",
5785
- "items": {
5241
+ "inputs": {
5242
+ "description": "Approver input parameters keyed by input variable name.",
5243
+ "type": "object",
5244
+ "additionalProperties": {
5786
5245
  "type": "object",
5787
- "additionalProperties": true
5246
+ "additionalProperties": false,
5247
+ "properties": {
5248
+ "description": {
5249
+ "description": "Description of the approver input.",
5250
+ "type": "string"
5251
+ },
5252
+ "pattern": {
5253
+ "description": "Regex pattern the approver input value must match. Mutually exclusive with `enum`. Supports expressions.",
5254
+ "type": "string"
5255
+ },
5256
+ "multi-select": {
5257
+ "description": "Allow selecting multiple values from `enum`. Only applicable when `enum` is provided.",
5258
+ "type": "boolean"
5259
+ },
5260
+ "enum": {
5261
+ "description": "Allowed values for the approver input. Mutually exclusive with `pattern`. Supports expressions.",
5262
+ "oneOf": [
5263
+ {
5264
+ "type": "array",
5265
+ "items": {
5266
+ "type": "string"
5267
+ }
5268
+ },
5269
+ {
5270
+ "$ref": "#/definitions/template_v1/common/Expression"
5271
+ }
5272
+ ]
5273
+ },
5274
+ "required": {
5275
+ "description": "Whether the approver input is required.",
5276
+ "type": "boolean"
5277
+ },
5278
+ "default": {
5279
+ "description": "Default value for the approver input. Supports expressions.",
5280
+ "type": "string"
5281
+ }
5282
+ },
5283
+ "not": {
5284
+ "required": [
5285
+ "pattern",
5286
+ "enum"
5287
+ ]
5288
+ }
5788
5289
  }
5789
5290
  }
5790
5291
  },
@@ -6016,6 +5517,21 @@ const schema = {
6016
5517
  "description": "Step group timeout duration.",
6017
5518
  "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
6018
5519
  },
5520
+ "output": {
5521
+ "description": "Step group output variables. Each entry is a single key:value pair where the key is the\nSG-published output name and the value is either a plain-string descendant step output\nname to capture, or a Harness expression evaluated at step group completion.\n",
5522
+ "type": "array",
5523
+ "items": {
5524
+ "type": "object",
5525
+ "minProperties": 1,
5526
+ "maxProperties": 1,
5527
+ "additionalProperties": false,
5528
+ "patternProperties": {
5529
+ "^[a-zA-Z_][a-zA-Z0-9_]*$": {
5530
+ "type": "string"
5531
+ }
5532
+ }
5533
+ }
5534
+ },
6019
5535
  "steps": {
6020
5536
  "type": "array",
6021
5537
  "items": {