@faable/deploy-sdk 2.8.0 → 2.9.0

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.
package/spec/openapi.json CHANGED
@@ -239,7 +239,6 @@
239
239
  "phase",
240
240
  "deployment",
241
241
  "deployment_previous",
242
- "deploy_workflow",
243
242
  "last_commited_purge",
244
243
  "last_commited_purge_key",
245
244
  "last_commited_purge_service",
@@ -297,64 +296,6 @@
297
296
  ],
298
297
  "default": null
299
298
  },
300
- "deploy_workflow": {
301
- "anyOf": [
302
- {
303
- "type": "object",
304
- "required": [
305
- "configured",
306
- "path",
307
- "verified_at",
308
- "commit"
309
- ],
310
- "properties": {
311
- "configured": {
312
- "type": "boolean",
313
- "description": "Whether a Faable deploy workflow exists on the repository"
314
- },
315
- "path": {
316
- "anyOf": [
317
- {
318
- "type": "string",
319
- "description": "Workflow file path, e.g. \".github/workflows/deploy.yaml\""
320
- },
321
- {
322
- "type": "null"
323
- }
324
- ]
325
- },
326
- "verified_at": {
327
- "anyOf": [
328
- {
329
- "type": "string",
330
- "description": "ISO date of the last time the workflow was verified"
331
- },
332
- {
333
- "type": "null"
334
- }
335
- ]
336
- },
337
- "commit": {
338
- "anyOf": [
339
- {
340
- "type": "string",
341
- "description": "Head commit sha at the last verification (from webhook)"
342
- },
343
- {
344
- "type": "null"
345
- }
346
- ]
347
- }
348
- },
349
- "additionalProperties": false
350
- },
351
- {
352
- "type": "null"
353
- }
354
- ],
355
- "default": null,
356
- "description": "Observed state of the push-to-deploy workflow on the linked repository"
357
- },
358
299
  "last_commited_purge": {
359
300
  "type": "string",
360
301
  "description": "Last commited cache Purge",
@@ -650,6 +591,17 @@
650
591
  "description": "High-level summary of where the Database is in its lifecycle",
651
592
  "default": "UNKNOWN"
652
593
  },
594
+ "notify_deploy_success": {
595
+ "anyOf": [
596
+ {
597
+ "type": "boolean"
598
+ },
599
+ {
600
+ "type": "null"
601
+ }
602
+ ],
603
+ "description": "Success deploy emails (first deploy + every promote). Absent/null = enabled; false = muted. Failure emails are never gated by this."
604
+ },
653
605
  "status": {
654
606
  "$ref": "#/components/schemas/AppStatus"
655
607
  },
@@ -662,6 +614,39 @@
662
614
  "github_installation_id": {
663
615
  "type": "string"
664
616
  },
617
+ "github_installation_state": {
618
+ "anyOf": [
619
+ {
620
+ "type": "string"
621
+ },
622
+ {
623
+ "type": "null"
624
+ }
625
+ ],
626
+ "description": "Platform GitHub access health, maintained by installation lifecycle webhooks. Absent/null = ok; 'deleted' | 'suspended' | 'repo_removed' = access broken until re-linked."
627
+ },
628
+ "deploy_trigger": {
629
+ "anyOf": [
630
+ {
631
+ "type": "string"
632
+ },
633
+ {
634
+ "type": "null"
635
+ }
636
+ ],
637
+ "description": "Push-to-deploy trigger. Absent/null = 'workflow' (committed GitHub Action); 'webhook' = the push webhook creates deployments server-side (deploy v4)."
638
+ },
639
+ "deploy_gate": {
640
+ "anyOf": [
641
+ {
642
+ "type": "string"
643
+ },
644
+ {
645
+ "type": "null"
646
+ }
647
+ ],
648
+ "description": "Wait-for-CI gate for webhook triggers. Absent/null = deploy on push; 'ci' = deploy only after the commit's check suites complete green."
649
+ },
665
650
  "metadata": {
666
651
  "type": "object",
667
652
  "properties": {},
@@ -791,27 +776,20 @@
791
776
  },
792
777
  "instance_type": {
793
778
  "type": "string"
779
+ },
780
+ "notify_deploy_success": {
781
+ "anyOf": [
782
+ {
783
+ "type": "boolean"
784
+ },
785
+ {
786
+ "type": "null"
787
+ }
788
+ ]
794
789
  }
795
790
  },
796
791
  "additionalProperties": false
797
792
  },
798
- "DeployWorkflowStatus": {
799
- "type": "object",
800
- "required": [
801
- "configured"
802
- ],
803
- "properties": {
804
- "configured": {
805
- "type": "boolean"
806
- },
807
- "workflow_path": {
808
- "type": "string"
809
- },
810
- "updated": {
811
- "type": "boolean"
812
- }
813
- }
814
- },
815
793
  "DeployBranchResult": {
816
794
  "type": "object",
817
795
  "required": [
@@ -824,9 +802,6 @@
824
802
  },
825
803
  "workflow_synced": {
826
804
  "type": "boolean"
827
- },
828
- "workflow_path": {
829
- "type": "string"
830
805
  }
831
806
  }
832
807
  },
@@ -894,9 +869,6 @@
894
869
  },
895
870
  "DeploymentSource": {
896
871
  "type": "object",
897
- "required": [
898
- "manifest"
899
- ],
900
872
  "properties": {
901
873
  "manifest": {
902
874
  "type": "array",
@@ -932,6 +904,23 @@
932
904
  "minItems": 1,
933
905
  "maxItems": 20000
934
906
  },
907
+ "git": {
908
+ "type": "object",
909
+ "required": [
910
+ "sha"
911
+ ],
912
+ "properties": {
913
+ "sha": {
914
+ "type": "string",
915
+ "pattern": "^[a-f0-9]{40}$"
916
+ },
917
+ "ref": {
918
+ "type": "string",
919
+ "minLength": 1,
920
+ "maxLength": 250
921
+ }
922
+ }
923
+ },
935
924
  "plan": {
936
925
  "type": "object",
937
926
  "properties": {},
@@ -1077,6 +1066,16 @@
1077
1066
  "redeploy_of": {
1078
1067
  "type": "string"
1079
1068
  },
1069
+ "trigger": {
1070
+ "anyOf": [
1071
+ {
1072
+ "type": "string"
1073
+ },
1074
+ {
1075
+ "type": "null"
1076
+ }
1077
+ ]
1078
+ },
1080
1079
  "status": {
1081
1080
  "$ref": "#/components/schemas/DeploymentStatus"
1082
1081
  },
@@ -3629,6 +3628,17 @@
3629
3628
  "description": "High-level summary of where the Database is in its lifecycle",
3630
3629
  "default": "UNKNOWN"
3631
3630
  },
3631
+ "notify_deploy_success": {
3632
+ "anyOf": [
3633
+ {
3634
+ "type": "boolean"
3635
+ },
3636
+ {
3637
+ "type": "null"
3638
+ }
3639
+ ],
3640
+ "description": "Success deploy emails (first deploy + every promote). Absent/null = enabled; false = muted. Failure emails are never gated by this."
3641
+ },
3632
3642
  "status": {
3633
3643
  "$ref": "#/components/schemas/AppStatus"
3634
3644
  },
@@ -3641,6 +3651,39 @@
3641
3651
  "github_installation_id": {
3642
3652
  "type": "string"
3643
3653
  },
3654
+ "github_installation_state": {
3655
+ "anyOf": [
3656
+ {
3657
+ "type": "string"
3658
+ },
3659
+ {
3660
+ "type": "null"
3661
+ }
3662
+ ],
3663
+ "description": "Platform GitHub access health, maintained by installation lifecycle webhooks. Absent/null = ok; 'deleted' | 'suspended' | 'repo_removed' = access broken until re-linked."
3664
+ },
3665
+ "deploy_trigger": {
3666
+ "anyOf": [
3667
+ {
3668
+ "type": "string"
3669
+ },
3670
+ {
3671
+ "type": "null"
3672
+ }
3673
+ ],
3674
+ "description": "Push-to-deploy trigger. Absent/null = 'workflow' (committed GitHub Action); 'webhook' = the push webhook creates deployments server-side (deploy v4)."
3675
+ },
3676
+ "deploy_gate": {
3677
+ "anyOf": [
3678
+ {
3679
+ "type": "string"
3680
+ },
3681
+ {
3682
+ "type": "null"
3683
+ }
3684
+ ],
3685
+ "description": "Wait-for-CI gate for webhook triggers. Absent/null = deploy on push; 'ci' = deploy only after the commit's check suites complete green."
3686
+ },
3644
3687
  "metadata": {
3645
3688
  "type": "object",
3646
3689
  "properties": {},
@@ -3868,6 +3911,17 @@
3868
3911
  "description": "High-level summary of where the Database is in its lifecycle",
3869
3912
  "default": "UNKNOWN"
3870
3913
  },
3914
+ "notify_deploy_success": {
3915
+ "anyOf": [
3916
+ {
3917
+ "type": "boolean"
3918
+ },
3919
+ {
3920
+ "type": "null"
3921
+ }
3922
+ ],
3923
+ "description": "Success deploy emails (first deploy + every promote). Absent/null = enabled; false = muted. Failure emails are never gated by this."
3924
+ },
3871
3925
  "status": {
3872
3926
  "$ref": "#/components/schemas/AppStatus"
3873
3927
  },
@@ -3880,6 +3934,39 @@
3880
3934
  "github_installation_id": {
3881
3935
  "type": "string"
3882
3936
  },
3937
+ "github_installation_state": {
3938
+ "anyOf": [
3939
+ {
3940
+ "type": "string"
3941
+ },
3942
+ {
3943
+ "type": "null"
3944
+ }
3945
+ ],
3946
+ "description": "Platform GitHub access health, maintained by installation lifecycle webhooks. Absent/null = ok; 'deleted' | 'suspended' | 'repo_removed' = access broken until re-linked."
3947
+ },
3948
+ "deploy_trigger": {
3949
+ "anyOf": [
3950
+ {
3951
+ "type": "string"
3952
+ },
3953
+ {
3954
+ "type": "null"
3955
+ }
3956
+ ],
3957
+ "description": "Push-to-deploy trigger. Absent/null = 'workflow' (committed GitHub Action); 'webhook' = the push webhook creates deployments server-side (deploy v4)."
3958
+ },
3959
+ "deploy_gate": {
3960
+ "anyOf": [
3961
+ {
3962
+ "type": "string"
3963
+ },
3964
+ {
3965
+ "type": "null"
3966
+ }
3967
+ ],
3968
+ "description": "Wait-for-CI gate for webhook triggers. Absent/null = deploy on push; 'ci' = deploy only after the commit's check suites complete green."
3969
+ },
3883
3970
  "metadata": {
3884
3971
  "type": "object",
3885
3972
  "properties": {},
@@ -3932,6 +4019,16 @@
3932
4019
  },
3933
4020
  "instance_type": {
3934
4021
  "type": "string"
4022
+ },
4023
+ "notify_deploy_success": {
4024
+ "anyOf": [
4025
+ {
4026
+ "type": "boolean"
4027
+ },
4028
+ {
4029
+ "type": "null"
4030
+ }
4031
+ ]
3935
4032
  }
3936
4033
  },
3937
4034
  "additionalProperties": false
@@ -4116,6 +4213,17 @@
4116
4213
  "description": "High-level summary of where the Database is in its lifecycle",
4117
4214
  "default": "UNKNOWN"
4118
4215
  },
4216
+ "notify_deploy_success": {
4217
+ "anyOf": [
4218
+ {
4219
+ "type": "boolean"
4220
+ },
4221
+ {
4222
+ "type": "null"
4223
+ }
4224
+ ],
4225
+ "description": "Success deploy emails (first deploy + every promote). Absent/null = enabled; false = muted. Failure emails are never gated by this."
4226
+ },
4119
4227
  "status": {
4120
4228
  "$ref": "#/components/schemas/AppStatus"
4121
4229
  },
@@ -4128,6 +4236,39 @@
4128
4236
  "github_installation_id": {
4129
4237
  "type": "string"
4130
4238
  },
4239
+ "github_installation_state": {
4240
+ "anyOf": [
4241
+ {
4242
+ "type": "string"
4243
+ },
4244
+ {
4245
+ "type": "null"
4246
+ }
4247
+ ],
4248
+ "description": "Platform GitHub access health, maintained by installation lifecycle webhooks. Absent/null = ok; 'deleted' | 'suspended' | 'repo_removed' = access broken until re-linked."
4249
+ },
4250
+ "deploy_trigger": {
4251
+ "anyOf": [
4252
+ {
4253
+ "type": "string"
4254
+ },
4255
+ {
4256
+ "type": "null"
4257
+ }
4258
+ ],
4259
+ "description": "Push-to-deploy trigger. Absent/null = 'workflow' (committed GitHub Action); 'webhook' = the push webhook creates deployments server-side (deploy v4)."
4260
+ },
4261
+ "deploy_gate": {
4262
+ "anyOf": [
4263
+ {
4264
+ "type": "string"
4265
+ },
4266
+ {
4267
+ "type": "null"
4268
+ }
4269
+ ],
4270
+ "description": "Wait-for-CI gate for webhook triggers. Absent/null = deploy on push; 'ci' = deploy only after the commit's check suites complete green."
4271
+ },
4131
4272
  "metadata": {
4132
4273
  "type": "object",
4133
4274
  "properties": {},
@@ -4335,6 +4476,17 @@
4335
4476
  "description": "High-level summary of where the Database is in its lifecycle",
4336
4477
  "default": "UNKNOWN"
4337
4478
  },
4479
+ "notify_deploy_success": {
4480
+ "anyOf": [
4481
+ {
4482
+ "type": "boolean"
4483
+ },
4484
+ {
4485
+ "type": "null"
4486
+ }
4487
+ ],
4488
+ "description": "Success deploy emails (first deploy + every promote). Absent/null = enabled; false = muted. Failure emails are never gated by this."
4489
+ },
4338
4490
  "status": {
4339
4491
  "$ref": "#/components/schemas/AppStatus"
4340
4492
  },
@@ -4347,6 +4499,39 @@
4347
4499
  "github_installation_id": {
4348
4500
  "type": "string"
4349
4501
  },
4502
+ "github_installation_state": {
4503
+ "anyOf": [
4504
+ {
4505
+ "type": "string"
4506
+ },
4507
+ {
4508
+ "type": "null"
4509
+ }
4510
+ ],
4511
+ "description": "Platform GitHub access health, maintained by installation lifecycle webhooks. Absent/null = ok; 'deleted' | 'suspended' | 'repo_removed' = access broken until re-linked."
4512
+ },
4513
+ "deploy_trigger": {
4514
+ "anyOf": [
4515
+ {
4516
+ "type": "string"
4517
+ },
4518
+ {
4519
+ "type": "null"
4520
+ }
4521
+ ],
4522
+ "description": "Push-to-deploy trigger. Absent/null = 'workflow' (committed GitHub Action); 'webhook' = the push webhook creates deployments server-side (deploy v4)."
4523
+ },
4524
+ "deploy_gate": {
4525
+ "anyOf": [
4526
+ {
4527
+ "type": "string"
4528
+ },
4529
+ {
4530
+ "type": "null"
4531
+ }
4532
+ ],
4533
+ "description": "Wait-for-CI gate for webhook triggers. Absent/null = deploy on push; 'ci' = deploy only after the commit's check suites complete green."
4534
+ },
4350
4535
  "metadata": {
4351
4536
  "type": "object",
4352
4537
  "properties": {},
@@ -5028,114 +5213,6 @@
5028
5213
  }
5029
5214
  }
5030
5215
  },
5031
- "/app/{id}/deploy-workflow": {
5032
- "get": {
5033
- "operationId": "app/get_deploy_workflow",
5034
- "summary": "Get deploy workflow status",
5035
- "tags": [
5036
- "apps",
5037
- "github"
5038
- ],
5039
- "description": "Check whether the app’s linked repository has a GitHub Actions workflow that deploys to Faable.",
5040
- "parameters": [
5041
- {
5042
- "schema": {
5043
- "type": "string"
5044
- },
5045
- "in": "path",
5046
- "name": "id",
5047
- "required": true
5048
- }
5049
- ],
5050
- "security": [
5051
- {
5052
- "faable_user": [],
5053
- "faable_cli": [],
5054
- "apikey": [],
5055
- "faable_machine": []
5056
- }
5057
- ],
5058
- "responses": {
5059
- "200": {
5060
- "description": "Default Response",
5061
- "content": {
5062
- "application/json": {
5063
- "schema": {
5064
- "type": "object",
5065
- "required": [
5066
- "configured"
5067
- ],
5068
- "properties": {
5069
- "configured": {
5070
- "type": "boolean"
5071
- },
5072
- "workflow_path": {
5073
- "type": "string"
5074
- },
5075
- "updated": {
5076
- "type": "boolean"
5077
- }
5078
- }
5079
- }
5080
- }
5081
- }
5082
- }
5083
- }
5084
- },
5085
- "post": {
5086
- "operationId": "app/setup_deploy_workflow",
5087
- "summary": "Set up deploy workflow",
5088
- "tags": [
5089
- "apps",
5090
- "github"
5091
- ],
5092
- "description": "Commit the Faable deploy GitHub Actions workflow to the app’s linked repository (no-op if already present; upgrades an unmodified legacy workflow).",
5093
- "parameters": [
5094
- {
5095
- "schema": {
5096
- "type": "string"
5097
- },
5098
- "in": "path",
5099
- "name": "id",
5100
- "required": true
5101
- }
5102
- ],
5103
- "security": [
5104
- {
5105
- "faable_user": [],
5106
- "faable_cli": [],
5107
- "apikey": [],
5108
- "faable_machine": []
5109
- }
5110
- ],
5111
- "responses": {
5112
- "200": {
5113
- "description": "Default Response",
5114
- "content": {
5115
- "application/json": {
5116
- "schema": {
5117
- "type": "object",
5118
- "required": [
5119
- "configured"
5120
- ],
5121
- "properties": {
5122
- "configured": {
5123
- "type": "boolean"
5124
- },
5125
- "workflow_path": {
5126
- "type": "string"
5127
- },
5128
- "updated": {
5129
- "type": "boolean"
5130
- }
5131
- }
5132
- }
5133
- }
5134
- }
5135
- }
5136
- }
5137
- }
5138
- },
5139
5216
  "/app/{id}/deploy-branch": {
5140
5217
  "post": {
5141
5218
  "operationId": "app/set_deploy_branch",
@@ -5144,7 +5221,7 @@
5144
5221
  "apps",
5145
5222
  "github"
5146
5223
  ],
5147
- "description": "Change the branch the app deploys from. Also rewrites the committed deploy workflow to trigger on the new branch, unless the user has customized it.",
5224
+ "description": "Change the branch the app deploys from. Apps deploying from their own GitHub Actions workflow must update the branch trigger in the workflow file themselves.",
5148
5225
  "requestBody": {
5149
5226
  "required": true,
5150
5227
  "content": {
@@ -5201,9 +5278,6 @@
5201
5278
  },
5202
5279
  "workflow_synced": {
5203
5280
  "type": "boolean"
5204
- },
5205
- "workflow_path": {
5206
- "type": "string"
5207
5281
  }
5208
5282
  }
5209
5283
  }
@@ -5417,6 +5491,16 @@
5417
5491
  "redeploy_of": {
5418
5492
  "type": "string"
5419
5493
  },
5494
+ "trigger": {
5495
+ "anyOf": [
5496
+ {
5497
+ "type": "string"
5498
+ },
5499
+ {
5500
+ "type": "null"
5501
+ }
5502
+ ]
5503
+ },
5420
5504
  "status": {
5421
5505
  "$ref": "#/components/schemas/DeploymentStatus"
5422
5506
  },
@@ -5524,6 +5608,16 @@
5524
5608
  "redeploy_of": {
5525
5609
  "type": "string"
5526
5610
  },
5611
+ "trigger": {
5612
+ "anyOf": [
5613
+ {
5614
+ "type": "string"
5615
+ },
5616
+ {
5617
+ "type": "null"
5618
+ }
5619
+ ]
5620
+ },
5527
5621
  "status": {
5528
5622
  "$ref": "#/components/schemas/DeploymentStatus"
5529
5623
  },
@@ -5650,6 +5744,16 @@
5650
5744
  "redeploy_of": {
5651
5745
  "type": "string"
5652
5746
  },
5747
+ "trigger": {
5748
+ "anyOf": [
5749
+ {
5750
+ "type": "string"
5751
+ },
5752
+ {
5753
+ "type": "null"
5754
+ }
5755
+ ]
5756
+ },
5653
5757
  "status": {
5654
5758
  "$ref": "#/components/schemas/DeploymentStatus"
5655
5759
  },
@@ -5755,6 +5859,16 @@
5755
5859
  "redeploy_of": {
5756
5860
  "type": "string"
5757
5861
  },
5862
+ "trigger": {
5863
+ "anyOf": [
5864
+ {
5865
+ "type": "string"
5866
+ },
5867
+ {
5868
+ "type": "null"
5869
+ }
5870
+ ]
5871
+ },
5758
5872
  "status": {
5759
5873
  "$ref": "#/components/schemas/DeploymentStatus"
5760
5874
  },