@faable/deploy-sdk 2.17.0 → 2.17.1
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/dist/FaableDeployApi.d.ts.map +1 -1
- package/dist/api/generated-client.d.ts +8 -8
- package/dist/api/generated-client.d.ts.map +1 -1
- package/dist/api/generated-client.js +8 -8
- package/dist/api/types.d.ts +20 -13
- package/dist/api/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/spec/openapi.json +24 -41
package/package.json
CHANGED
package/spec/openapi.json
CHANGED
|
@@ -1176,24 +1176,14 @@
|
|
|
1176
1176
|
"type": "string"
|
|
1177
1177
|
},
|
|
1178
1178
|
"notify_deploy_success": {
|
|
1179
|
-
"
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
},
|
|
1183
|
-
{
|
|
1184
|
-
"type": "null"
|
|
1185
|
-
}
|
|
1186
|
-
]
|
|
1179
|
+
"type": "boolean",
|
|
1180
|
+
"nullable": true,
|
|
1181
|
+
"default": null
|
|
1187
1182
|
},
|
|
1188
1183
|
"http3": {
|
|
1189
|
-
"
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
},
|
|
1193
|
-
{
|
|
1194
|
-
"type": "null"
|
|
1195
|
-
}
|
|
1196
|
-
]
|
|
1184
|
+
"type": "boolean",
|
|
1185
|
+
"nullable": true,
|
|
1186
|
+
"default": null
|
|
1197
1187
|
}
|
|
1198
1188
|
},
|
|
1199
1189
|
"additionalProperties": false
|
|
@@ -4416,7 +4406,7 @@
|
|
|
4416
4406
|
},
|
|
4417
4407
|
"ApiErrorCode": {
|
|
4418
4408
|
"type": "string",
|
|
4419
|
-
"description": "Machine-readable error code. One HTTP status per code.\n\n- `bad_request` (400): The request is malformed. `message` says what is wrong.\n- `validation_error` (400): The body, query or path failed schema validation. `details.issues` lists each failing field.\n- `unauthorized` (401): The request carries no valid credentials.\n- `payment_required` (402): The feature is not included in the current plan.\n- `forbidden` (403): The credentials are valid but do not allow this operation.\n- `not_found` (404): The resource does not exist, or not in the caller’s project.\n- `method_not_allowed` (405): The HTTP method is not supported on this path.\n- `conflict` (409): The request conflicts with the current state of the resource.\n- `payload_too_large` (413): The request body exceeds the size limit.\n- `unsupported_media_type` (415): The `Content-Type` is not accepted by this endpoint.\n- `unprocessable_entity` (422): The request is well-formed but cannot be processed.\n- `too_many_requests` (429): Rate limit exceeded. Honour the `Retry-After` header.\n- `internal_error` (500): Unexpected server error. Retry later; the request id is logged.\n- `gone` (410): The resource existed and is gone for good; retrying will not bring it back.\n- `bad_gateway` (502): An upstream the API depends on failed.\n- `service_unavailable` (503): The feature is not configured on this environment, or is temporarily out of service.\n- `already_exists` (400): A resource with the same unique field already exists. `details.fields` names the field.\n- `invalid_id` (400): The id in the path is not a valid id for this resource.\n- `invalid_query` (400): The `?query=` FaableQL expression could not be parsed.\n- `invalid_expand` (400): An `?expand=` path is not allowed on this resource.\n- `search_not_supported` (400): This resource does not support `?q=`.\n- `access_denied` (401): The row exists but does not belong to the caller.\n- `invalid_token` (401): The bearer token is missing, malformed or expired.\n- `invalid_apikey` (401): The API key does not exist or has been revoked.\n- `apikey_expired` (401): The API key predates projects and must be recreated.\n- `invalid_build_token` (401): The build token is not valid for this deployment.\n- `build_token_expired` (401): The build token is past its lifetime.\n- `build_token_unusable` (401): The deployment reached a terminal phase, so its build token no longer works.\n- `build_token_app_missing` (401): The app the build token was minted for no longer exists.\n- `user_token_required` (401): The endpoint acts on behalf of a person and the credential carries no user (an API key or a service account).\n- `team_required` (400): The operation needs a project: send it in the `x-faable-
|
|
4409
|
+
"description": "Machine-readable error code. One HTTP status per code.\n\n- `bad_request` (400): The request is malformed. `message` says what is wrong.\n- `validation_error` (400): The body, query or path failed schema validation. `details.issues` lists each failing field.\n- `unauthorized` (401): The request carries no valid credentials.\n- `payment_required` (402): The feature is not included in the current plan.\n- `forbidden` (403): The credentials are valid but do not allow this operation.\n- `not_found` (404): The resource does not exist, or not in the caller’s project.\n- `method_not_allowed` (405): The HTTP method is not supported on this path.\n- `conflict` (409): The request conflicts with the current state of the resource.\n- `payload_too_large` (413): The request body exceeds the size limit.\n- `unsupported_media_type` (415): The `Content-Type` is not accepted by this endpoint.\n- `unprocessable_entity` (422): The request is well-formed but cannot be processed.\n- `too_many_requests` (429): Rate limit exceeded. Honour the `Retry-After` header.\n- `internal_error` (500): Unexpected server error. Retry later; the request id is logged.\n- `gone` (410): The resource existed and is gone for good; retrying will not bring it back.\n- `bad_gateway` (502): An upstream the API depends on failed.\n- `service_unavailable` (503): The feature is not configured on this environment, or is temporarily out of service.\n- `already_exists` (400): A resource with the same unique field already exists. `details.fields` names the field.\n- `invalid_id` (400): The id in the path is not a valid id for this resource.\n- `invalid_query` (400): The `?query=` FaableQL expression could not be parsed.\n- `invalid_expand` (400): An `?expand=` path is not allowed on this resource.\n- `search_not_supported` (400): This resource does not support `?q=`.\n- `access_denied` (401): The row exists but does not belong to the caller.\n- `invalid_token` (401): The bearer token is missing, malformed or expired.\n- `invalid_apikey` (401): The API key does not exist or has been revoked.\n- `apikey_expired` (401): The API key predates projects and must be recreated.\n- `invalid_build_token` (401): The build token is not valid for this deployment.\n- `build_token_expired` (401): The build token is past its lifetime.\n- `build_token_unusable` (401): The deployment reached a terminal phase, so its build token no longer works.\n- `build_token_app_missing` (401): The app the build token was minted for no longer exists.\n- `user_token_required` (401): The endpoint acts on behalf of a person and the credential carries no user (an API key or a service account).\n- `team_required` (400): The operation needs a project: send it in the `x-faable-project` header (`project_<id>`).\n- `team_or_scope_required` (401): Listing needs either a project in the `x-faable-project` header or a global scope on the token.\n- `project_access_denied` (403): The caller is not a member of the project named in `x-faable-project`, or the credential belongs to another project.\n- `project_header_conflict` (400): The request names two different projects (`x-faable-project` and the deprecated `x-faable-team`, or a query param). Send only `x-faable-project`.\n- `invalid_project_id` (400): The project in `x-faable-project` is not a valid project id (`project_` followed by 24 hex characters).\n- `user_suspended` (403): The account is suspended. Contact support@faable.com.\n- `superadmin_only` (403): The operation is restricted to platform staff.\n- `project_not_found` (404): No project with that id for this caller.\n- `owner_only` (403): Only the project owner can manage collaborators.\n- `owner_not_removable` (400): The project owner cannot be removed. Delete the project instead.\n- `collaborator_not_found` (404): That user is not a collaborator on the project.\n- `invalid_project_name` (400): The project name is not acceptable. `message` says why.\n- `moderation_hold` (403): The project contains an app disabled by moderation and cannot be deleted. Contact support@faable.com.\n- `app_not_found` (404): No app with that id or slug in this project.\n- `repository_not_linked` (400): The app has no linked repository.\n- `repository_empty` (400): The repository has no commits on the deploy branch yet.\n- `branch_missing` (400): The deploy branch does not exist on the repository. `message` lists the branches that do.\n- `deploy_mode_conflict` (400): The app deploys from its own workflow, so the platform will not create a deployment for it.\n- `deploy_refused` (409): The deploy was refused by quota, plan or an in-flight deployment. `message` says which.\n- `invalid_root_dir` (400): The Root Directory must be a path inside the repository — no leading `/` and no `..`.\n- `root_dir_not_found` (400): The Root Directory does not exist on that ref of the repository.\n- `root_dir_mismatch` (400): The workflow deploys from one directory and platform builds would run from another. Declare `rootDir` in faable.json.\n- `no_workflows` (400): The repository has no GitHub Actions workflows, so a CI gate would never open.\n- `no_deploy_workflow` (400): No workflow in the repository runs `faable deploy`.\n- `invalid_secret_name` (400): Secret names are 1-255 printable ASCII characters and cannot contain '='.\n- `invalid_secret_context` (400): Secrets are scoped to an app or to a profile, nothing else.\n- `app_secrets_only` (400): Only app secrets can be written in bulk.\n- `secrets_access_denied` (401): The caller may not read or write the secrets of that app or profile.\n- `status_forbidden_resource` (403): Only a platform service writes app or domain status.\n- `status_forbidden_field` (403): That field of a deployment status is platform bookkeeping. `message` names it.\n- `status_forbidden_phase` (403): That phase is set by the platform, not by the client.\n- `github_identity_missing` (412): The user has not connected GitHub. Send them through `connect_github`.\n- `github_installation_missing` (412): The Faable GitHub App is not installed on any repository of theirs.\n- `github_repository_not_found` (404): The repository does not exist or the installation cannot see it.\n- `github_token_invalid` (401): The stored GitHub token was rejected; the user must reconnect.\n- `github_permission_denied` (403): The installation lacks a permission this operation needs.\n- `github_installation_suspended` (403): The GitHub App installation is suspended.\n- `github_installation_not_found` (412): The installation id is unknown or the App was uninstalled.\n- `github_repository_blocked` (403): GitHub refuses to serve the source of that repository (403 or 451).\n- `github_rate_limited` (429): GitHub is rate-limiting Faable. Transient: retry after a short wait.\n- `github_token_refresh_failed` (401): GitHub refused to refresh the stored authorization. The user has to reconnect.\n- `github_error` (502): GitHub failed upstream. `message` carries what it said.\n- `repository_already_linked` (409): The repository is already linked to another app. `details.app_id` / `details.app_name` name it.\n- `repository_taken_down` (409): An app built from this repository was taken down for abuse, so the repository cannot be linked again. Not a plan limit — upgrading does not lift it. Restoring the taken-down app does.\n- `invalid_installation_id` (400): The `installation_id` is not a number.\n- `oidc_untrusted` (401): The GitHub Actions OIDC token was rejected. `message` says why.\n- `app_repository_mismatch` (403): The app does not exist or is not linked to the repository the token comes from.\n- `no_app_for_repository` (404): No app is linked to that repository.\n- `ambiguous_app_for_repository` (400): Several apps are linked to that repository; pass `--app-slug`.\n- `app_disabled` (409): The app is disabled, so it cannot be deployed or provisioned. `message` says why when the reason is public.\n- `app_rate_limited` (429): A new account may only create a few apps in its first 24 hours.\n- `plan_required` (403): The build or feature needs a higher plan. `message` says which.\n- `remote_build_disabled` (409): Remote builds are off for this environment or this app. Deploy with a local build instead.\n- `artifact_deploy_disabled` (409): Artifact deploys are not enabled on this environment.\n- `artifact_too_large` (413): The artifact exceeds the size allowed for the plan.\n- `metrics_unavailable` (503): Traffic metrics are temporarily unavailable — this is not an app with no traffic.\n- `transfer_refused` (409): The app cannot be moved to that project. `message` lists the blockers.\n- `user_not_found` (400): No user with that id in Faable Auth.\n- `waf_rule_not_found` (404): No WAF rule with that pattern on this app.\n- `project_rate_limited` (429): A new account may only create a few projects in its first hours. It opens with time, or with a plan.\n- `project_plan_limited` (402): The Free plan project cap is reached. Upgrade to create more.\n- `domain_invalid` (400): Not a valid hostname. No protocol, port or path.\n- `domain_reserved` (403): Hostnames under that domain are assigned by Faable.\n- `domain_taken` (409): That hostname is already registered on Faable.\n- `invalid_json` (400): The request body is not valid JSON.\n- `missing_github_event` (400): The `x-github-event` header is missing.",
|
|
4420
4410
|
"enum": [
|
|
4421
4411
|
"bad_request",
|
|
4422
4412
|
"validation_error",
|
|
@@ -4450,6 +4440,9 @@
|
|
|
4450
4440
|
"user_token_required",
|
|
4451
4441
|
"team_required",
|
|
4452
4442
|
"team_or_scope_required",
|
|
4443
|
+
"project_access_denied",
|
|
4444
|
+
"project_header_conflict",
|
|
4445
|
+
"invalid_project_id",
|
|
4453
4446
|
"user_suspended",
|
|
4454
4447
|
"superadmin_only",
|
|
4455
4448
|
"project_not_found",
|
|
@@ -5289,7 +5282,7 @@
|
|
|
5289
5282
|
}
|
|
5290
5283
|
},
|
|
5291
5284
|
"401": {
|
|
5292
|
-
"description": "`team_or_scope_required` — Listing needs either a project in `x-faable-
|
|
5285
|
+
"description": "`team_or_scope_required` — Listing needs either a project in the `x-faable-project` header or a global scope on the token.\n\n`unauthorized` — The request carries no valid credentials.\n\n`invalid_token` — The bearer token is missing, malformed or expired.",
|
|
5293
5286
|
"content": {
|
|
5294
5287
|
"application/json": {
|
|
5295
5288
|
"schema": {
|
|
@@ -5559,7 +5552,7 @@
|
|
|
5559
5552
|
}
|
|
5560
5553
|
},
|
|
5561
5554
|
"400": {
|
|
5562
|
-
"description": "`already_exists` — A resource with the same unique field already exists. `details.fields` names the field.\n\n`validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.\n\n`team_required` — The operation needs a project: send it in the `x-faable-
|
|
5555
|
+
"description": "`already_exists` — A resource with the same unique field already exists. `details.fields` names the field.\n\n`validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.\n\n`team_required` — The operation needs a project: send it in the `x-faable-project` header (`project_<id>`).",
|
|
5563
5556
|
"content": {
|
|
5564
5557
|
"application/json": {
|
|
5565
5558
|
"schema": {
|
|
@@ -6726,7 +6719,7 @@
|
|
|
6726
6719
|
}
|
|
6727
6720
|
},
|
|
6728
6721
|
"401": {
|
|
6729
|
-
"description": "`team_or_scope_required` — Listing needs either a project in `x-faable-
|
|
6722
|
+
"description": "`team_or_scope_required` — Listing needs either a project in the `x-faable-project` header or a global scope on the token.\n\n`unauthorized` — The request carries no valid credentials.\n\n`invalid_token` — The bearer token is missing, malformed or expired.",
|
|
6730
6723
|
"content": {
|
|
6731
6724
|
"application/json": {
|
|
6732
6725
|
"schema": {
|
|
@@ -7203,7 +7196,7 @@
|
|
|
7203
7196
|
}
|
|
7204
7197
|
},
|
|
7205
7198
|
"400": {
|
|
7206
|
-
"description": "`already_exists` — A resource with the same unique field already exists. `details.fields` names the field.\n\n`validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.\n\n`team_required` — The operation needs a project: send it in the `x-faable-
|
|
7199
|
+
"description": "`already_exists` — A resource with the same unique field already exists. `details.fields` names the field.\n\n`validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.\n\n`team_required` — The operation needs a project: send it in the `x-faable-project` header (`project_<id>`).",
|
|
7207
7200
|
"content": {
|
|
7208
7201
|
"application/json": {
|
|
7209
7202
|
"schema": {
|
|
@@ -7898,24 +7891,14 @@
|
|
|
7898
7891
|
"type": "string"
|
|
7899
7892
|
},
|
|
7900
7893
|
"notify_deploy_success": {
|
|
7901
|
-
"
|
|
7902
|
-
|
|
7903
|
-
|
|
7904
|
-
},
|
|
7905
|
-
{
|
|
7906
|
-
"type": "null"
|
|
7907
|
-
}
|
|
7908
|
-
]
|
|
7894
|
+
"type": "boolean",
|
|
7895
|
+
"nullable": true,
|
|
7896
|
+
"default": null
|
|
7909
7897
|
},
|
|
7910
7898
|
"http3": {
|
|
7911
|
-
"
|
|
7912
|
-
|
|
7913
|
-
|
|
7914
|
-
},
|
|
7915
|
-
{
|
|
7916
|
-
"type": "null"
|
|
7917
|
-
}
|
|
7918
|
-
]
|
|
7899
|
+
"type": "boolean",
|
|
7900
|
+
"nullable": true,
|
|
7901
|
+
"default": null
|
|
7919
7902
|
}
|
|
7920
7903
|
},
|
|
7921
7904
|
"additionalProperties": false
|
|
@@ -13988,7 +13971,7 @@
|
|
|
13988
13971
|
}
|
|
13989
13972
|
},
|
|
13990
13973
|
"401": {
|
|
13991
|
-
"description": "`team_or_scope_required` — Listing needs either a project in `x-faable-
|
|
13974
|
+
"description": "`team_or_scope_required` — Listing needs either a project in the `x-faable-project` header or a global scope on the token.\n\n`unauthorized` — The request carries no valid credentials.\n\n`invalid_token` — The bearer token is missing, malformed or expired.",
|
|
13992
13975
|
"content": {
|
|
13993
13976
|
"application/json": {
|
|
13994
13977
|
"schema": {
|
|
@@ -14265,7 +14248,7 @@
|
|
|
14265
14248
|
}
|
|
14266
14249
|
},
|
|
14267
14250
|
"400": {
|
|
14268
|
-
"description": "`already_exists` — A resource with the same unique field already exists. `details.fields` names the field.\n\n`validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.\n\n`team_required` — The operation needs a project: send it in the `x-faable-
|
|
14251
|
+
"description": "`already_exists` — A resource with the same unique field already exists. `details.fields` names the field.\n\n`validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.\n\n`team_required` — The operation needs a project: send it in the `x-faable-project` header (`project_<id>`).",
|
|
14269
14252
|
"content": {
|
|
14270
14253
|
"application/json": {
|
|
14271
14254
|
"schema": {
|
|
@@ -15991,7 +15974,7 @@
|
|
|
15991
15974
|
}
|
|
15992
15975
|
},
|
|
15993
15976
|
"401": {
|
|
15994
|
-
"description": "`team_or_scope_required` — Listing needs either a project in `x-faable-
|
|
15977
|
+
"description": "`team_or_scope_required` — Listing needs either a project in the `x-faable-project` header or a global scope on the token.\n\n`unauthorized` — The request carries no valid credentials.\n\n`invalid_token` — The bearer token is missing, malformed or expired.",
|
|
15995
15978
|
"content": {
|
|
15996
15979
|
"application/json": {
|
|
15997
15980
|
"schema": {
|
|
@@ -16226,7 +16209,7 @@
|
|
|
16226
16209
|
}
|
|
16227
16210
|
},
|
|
16228
16211
|
"400": {
|
|
16229
|
-
"description": "`already_exists` — A resource with the same unique field already exists. `details.fields` names the field.\n\n`validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.\n\n`team_required` — The operation needs a project: send it in the `x-faable-
|
|
16212
|
+
"description": "`already_exists` — A resource with the same unique field already exists. `details.fields` names the field.\n\n`validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.\n\n`team_required` — The operation needs a project: send it in the `x-faable-project` header (`project_<id>`).\n\n`domain_invalid` — Not a valid hostname. No protocol, port or path.",
|
|
16230
16213
|
"content": {
|
|
16231
16214
|
"application/json": {
|
|
16232
16215
|
"schema": {
|