@keboola/api-client 35.0.0 → 39.0.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/AGENTS.md +12 -3
- package/API-SURFACE.md +14 -1
- package/CHANGELOG.md +102 -0
- package/README.md +19 -17
- package/dist/{ManagementClientAuthError-ey-f03vy.js → ManagementClientAuthError-Cr9IOsnJ.js} +3 -2
- package/dist/{ManagementClientAuthError-ey-f03vy.js.map → ManagementClientAuthError-Cr9IOsnJ.js.map} +1 -1
- package/dist/{ManagementClientAuthError-DD4u0EU7.cjs → ManagementClientAuthError-FcfMJNhr.cjs} +3 -2
- package/dist/{ManagementClientAuthError-DD4u0EU7.cjs.map → ManagementClientAuthError-FcfMJNhr.cjs.map} +1 -1
- package/dist/ai/index.cjs +2 -2
- package/dist/ai/index.js +2 -2
- package/dist/{appLogs-BjfUoWzs.cjs → appLogs-C_zP0lpv.cjs} +2 -2
- package/dist/{appLogs-BjfUoWzs.cjs.map → appLogs-C_zP0lpv.cjs.map} +1 -1
- package/dist/{appLogs-xsVkTriU.js → appLogs-Cl7Q_MR9.js} +2 -2
- package/dist/{appLogs-xsVkTriU.js.map → appLogs-Cl7Q_MR9.js.map} +1 -1
- package/dist/apps/index.cjs +29 -22
- package/dist/apps/index.cjs.map +1 -1
- package/dist/apps/index.d.cts +31 -73
- package/dist/apps/index.d.ts +31 -73
- package/dist/apps/index.js +29 -22
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/types.d.cts +2 -2
- package/dist/apps/types.d.ts +2 -2
- package/dist/assets/index.cjs +1 -1
- package/dist/assets/index.js +1 -1
- package/dist/auth/index.cjs +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/{auth-aItmDu45.js → auth-BjmkFOgd.js} +2 -2
- package/dist/{auth-aItmDu45.js.map → auth-BjmkFOgd.js.map} +1 -1
- package/dist/{auth-JQ33o3nU.cjs → auth-DLWnl18b.cjs} +2 -2
- package/dist/{auth-JQ33o3nU.cjs.map → auth-DLWnl18b.cjs.map} +1 -1
- package/dist/{authClient-_PpvGgZJ.cjs → authClient-8yU1last.cjs} +5 -5
- package/dist/{authClient-_PpvGgZJ.cjs.map → authClient-8yU1last.cjs.map} +1 -1
- package/dist/{authClient-D7W9vWPR.js → authClient-BTo4Afm6.js} +5 -5
- package/dist/{authClient-D7W9vWPR.js.map → authClient-BTo4Afm6.js.map} +1 -1
- package/dist/billing/index.cjs +2 -2
- package/dist/billing/index.js +2 -2
- package/dist/businessWorkspaceApi/index.cjs +3 -0
- package/dist/businessWorkspaceApi/index.d.cts +2 -0
- package/dist/businessWorkspaceApi/index.d.ts +2 -0
- package/dist/businessWorkspaceApi/index.js +2 -0
- package/dist/businessWorkspaceApi/types.cjs +0 -0
- package/dist/businessWorkspaceApi/types.d.cts +2 -0
- package/dist/businessWorkspaceApi/types.d.ts +2 -0
- package/dist/businessWorkspaceApi/types.js +1 -0
- package/dist/businessWorkspaceApi-BD-iUj07.js +61 -0
- package/dist/businessWorkspaceApi-BD-iUj07.js.map +1 -0
- package/dist/businessWorkspaceApi-wyBdbpIJ.cjs +66 -0
- package/dist/businessWorkspaceApi-wyBdbpIJ.cjs.map +1 -0
- package/dist/businessWorkspaceApiClient-C2WyWN3b.d.ts +529 -0
- package/dist/businessWorkspaceApiClient-CRM1U8b-.d.cts +529 -0
- package/dist/chat/index.cjs +5 -5
- package/dist/chat/index.cjs.map +1 -1
- package/dist/chat/index.d.cts +1 -1
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.js +5 -5
- package/dist/chat/index.js.map +1 -1
- package/dist/constants/index.cjs +1 -1
- package/dist/constants/index.d.cts +2 -2
- package/dist/constants/index.d.ts +2 -2
- package/dist/constants/index.js +1 -1
- package/dist/{constants-wfbFsqqN.js → constants-C2tYAJSj.js} +10 -1
- package/dist/constants-C2tYAJSj.js.map +1 -0
- package/dist/{constants-C4DlsF_M.cjs → constants-C6xku_Vx.cjs} +10 -1
- package/dist/constants-C6xku_Vx.cjs.map +1 -0
- package/dist/{createFetchClient-DgMiqTJ8.cjs → createFetchClient-BlgPbjFj.cjs} +14 -2
- package/dist/createFetchClient-BlgPbjFj.cjs.map +1 -0
- package/dist/{createFetchClient-U-ZrwPl2.js → createFetchClient-C-cadpBx.js} +14 -2
- package/dist/createFetchClient-C-cadpBx.js.map +1 -0
- package/dist/{createGenericFetchClient-rxvUUbap.js → createGenericFetchClient-Bnf1QK9W.js} +2 -2
- package/dist/{createGenericFetchClient-rxvUUbap.js.map → createGenericFetchClient-Bnf1QK9W.js.map} +1 -1
- package/dist/{createGenericFetchClient-o3cPJeRn.cjs → createGenericFetchClient-lcozzwk2.cjs} +2 -2
- package/dist/{createGenericFetchClient-o3cPJeRn.cjs.map → createGenericFetchClient-lcozzwk2.cjs.map} +1 -1
- package/dist/{createOpenapiFetchClient-DhUU3M1W.cjs → createOpenapiFetchClient-C3UmDXpe.cjs} +2 -2
- package/dist/{createOpenapiFetchClient-DhUU3M1W.cjs.map → createOpenapiFetchClient-C3UmDXpe.cjs.map} +1 -1
- package/dist/{createOpenapiFetchClient-BVSc9ibR.js → createOpenapiFetchClient-COaPeeQ0.js} +2 -2
- package/dist/{createOpenapiFetchClient-BVSc9ibR.js.map → createOpenapiFetchClient-COaPeeQ0.js.map} +1 -1
- package/dist/{credential-DVWvJFJs.cjs → credential-CAulvfZ-.cjs} +2 -2
- package/dist/{credential-DVWvJFJs.cjs.map → credential-CAulvfZ-.cjs.map} +1 -1
- package/dist/{credential-CihSf_xs.js → credential-DWXbo4IX.js} +2 -2
- package/dist/{credential-CihSf_xs.js.map → credential-DWXbo4IX.js.map} +1 -1
- package/dist/dataScience/index.cjs +2 -2
- package/dist/dataScience/index.js +2 -2
- package/dist/{dataScience-C1gO5zUn.js → dataScience-B_BmnB1m.js} +5 -5
- package/dist/{dataScience-C1gO5zUn.js.map → dataScience-B_BmnB1m.js.map} +1 -1
- package/dist/{dataScience-0Rl_EuV_.cjs → dataScience-D-hyc4GY.cjs} +5 -5
- package/dist/{dataScience-0Rl_EuV_.cjs.map → dataScience-D-hyc4GY.cjs.map} +1 -1
- package/dist/developerPortal/index.cjs +1 -1
- package/dist/developerPortal/index.js +1 -1
- package/dist/{developerPortalClient-ki0XS_OD.cjs → developerPortalClient-CutPqoAa.cjs} +3 -3
- package/dist/{developerPortalClient-ki0XS_OD.cjs.map → developerPortalClient-CutPqoAa.cjs.map} +1 -1
- package/dist/{developerPortalClient-C_48z8BN.js → developerPortalClient-yHFTkKPb.js} +3 -3
- package/dist/{developerPortalClient-C_48z8BN.js.map → developerPortalClient-yHFTkKPb.js.map} +1 -1
- package/dist/domain/permissions/index.d.cts +2 -2
- package/dist/domain/permissions/index.d.ts +2 -2
- package/dist/editor/index.cjs +2 -2
- package/dist/editor/index.js +2 -2
- package/dist/encryption/index.cjs +1 -1
- package/dist/encryption/index.d.cts +1 -1
- package/dist/encryption/index.d.ts +1 -1
- package/dist/encryption/index.js +1 -1
- package/dist/encryption/types.d.cts +1 -1
- package/dist/encryption/types.d.ts +1 -1
- package/dist/import/index.cjs +1 -1
- package/dist/import/index.js +1 -1
- package/dist/{import-C83w7BKz.cjs → import-7YyyD_U_.cjs} +3 -3
- package/dist/{import-C83w7BKz.cjs.map → import-7YyyD_U_.cjs.map} +1 -1
- package/dist/{import-CROEK82b.js → import-xliONVib.js} +3 -3
- package/dist/{import-CROEK82b.js.map → import-xliONVib.js.map} +1 -1
- package/dist/{index-D8rcUbnk.d.ts → index-1r_CskjU.d.ts} +2 -2
- package/dist/{index-P-iT5THa.d.ts → index-BK-qHT39.d.ts} +8 -4
- package/dist/{index-BLx14ZI4.d.cts → index-CHXnJQ9s.d.cts} +117 -76
- package/dist/{index-Dodwl64k.d.cts → index-CWoEnDJ_.d.cts} +8 -4
- package/dist/{index-NaYLwG_h.d.ts → index-DBklbaTp.d.cts} +9 -1
- package/dist/{index-NaYLwG_h.d.cts → index-DBklbaTp.d.ts} +9 -1
- package/dist/{index-BgLnWTZU.d.cts → index-DVw4Av4b.d.cts} +4 -4
- package/dist/{index-DR4QqItd.d.cts → index-DWf6FXOr.d.cts} +2 -2
- package/dist/{index-CqgtL2NU.d.ts → index-De5qUWhp.d.ts} +4 -4
- package/dist/{index-DFBFa3SS.d.ts → index-GfKzh267.d.ts} +117 -76
- package/dist/index.cjs +30 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +30 -20
- package/dist/index.js.map +1 -1
- package/dist/{isLoginPageRedirect-B0EmRsHr.cjs → isLoginPageRedirect-Cm6Pn8Pj.cjs} +2 -2
- package/dist/{isLoginPageRedirect-B0EmRsHr.cjs.map → isLoginPageRedirect-Cm6Pn8Pj.cjs.map} +1 -1
- package/dist/{isLoginPageRedirect-BTTAedW-.js → isLoginPageRedirect-hyPqyWNX.js} +2 -2
- package/dist/{isLoginPageRedirect-BTTAedW-.js.map → isLoginPageRedirect-hyPqyWNX.js.map} +1 -1
- package/dist/kaiAgent/index.cjs +1 -1
- package/dist/kaiAgent/index.d.cts +1 -1
- package/dist/kaiAgent/index.d.ts +1 -1
- package/dist/kaiAgent/index.js +1 -1
- package/dist/kaiAgent/types.d.cts +2 -2
- package/dist/kaiAgent/types.d.ts +2 -2
- package/dist/{kaiAgent-8LNzGhZc.js → kaiAgent-CcT2oNip.js} +41 -6
- package/dist/kaiAgent-CcT2oNip.js.map +1 -0
- package/dist/{kaiAgent-B_TaUPRt.cjs → kaiAgent-DaB6UCsh.cjs} +41 -6
- package/dist/kaiAgent-DaB6UCsh.cjs.map +1 -0
- package/dist/{kaiAgentClient-BJj_2aqt.d.ts → kaiAgentClient-B5L4gbQ1.d.ts} +8 -3
- package/dist/{kaiAgentClient-DhTaM3GC.d.cts → kaiAgentClient-CHpULyeG.d.cts} +8 -3
- package/dist/management/index.cjs +1 -1
- package/dist/management/index.d.cts +2 -2
- package/dist/management/index.d.ts +2 -2
- package/dist/management/index.js +1 -1
- package/dist/management/types.d.cts +2 -2
- package/dist/management/types.d.ts +2 -2
- package/dist/{management-BoxlRNg2.cjs → management-DeZiQSlw.cjs} +41 -8
- package/dist/management-DeZiQSlw.cjs.map +1 -0
- package/dist/{management-Bp440RsV.js → management-ckdnu1dA.js} +41 -8
- package/dist/management-ckdnu1dA.js.map +1 -0
- package/dist/metastore/index.cjs +1 -1
- package/dist/metastore/index.js +1 -1
- package/dist/{metastore-BYYWTb3m.cjs → metastore-9AGrwjmN.cjs} +4 -4
- package/dist/{metastore-BYYWTb3m.cjs.map → metastore-9AGrwjmN.cjs.map} +1 -1
- package/dist/{metastore-VCDRVhUT.js → metastore-B0PolCjQ.js} +4 -4
- package/dist/{metastore-VCDRVhUT.js.map → metastore-B0PolCjQ.js.map} +1 -1
- package/dist/microsoftGraph/index.cjs +2 -2
- package/dist/microsoftGraph/index.js +2 -2
- package/dist/notifications/index.cjs +3 -3
- package/dist/notifications/index.js +3 -3
- package/dist/oauth/index.cjs +1 -1
- package/dist/oauth/index.js +1 -1
- package/dist/{oauth--asfePw-.js → oauth-BnHVf4cB.js} +5 -5
- package/dist/{oauth--asfePw-.js.map → oauth-BnHVf4cB.js.map} +1 -1
- package/dist/{oauth-B8yqG6Sy.cjs → oauth-DNtv4Ihb.cjs} +5 -5
- package/dist/{oauth-B8yqG6Sy.cjs.map → oauth-DNtv4Ihb.cjs.map} +1 -1
- package/dist/omnisearch/index.cjs +2 -2
- package/dist/omnisearch/index.js +2 -2
- package/dist/{project-hePfzUY0.d.cts → project-BRpzv3yE.d.cts} +2 -2
- package/dist/{project-C2wvX0xZ.d.ts → project-DCHOxRWd.d.ts} +2 -2
- package/dist/queryService/index.cjs +1 -1
- package/dist/queryService/index.d.cts +1 -1
- package/dist/queryService/index.d.ts +1 -1
- package/dist/queryService/index.js +1 -1
- package/dist/{queryService-BVtjkXy1.cjs → queryService-BVwD6Vmc.cjs} +5 -5
- package/dist/{queryService-BVtjkXy1.cjs.map → queryService-BVwD6Vmc.cjs.map} +1 -1
- package/dist/{queryService-Ca65E5KH.js → queryService-j3XZ2mX6.js} +5 -5
- package/dist/{queryService-Ca65E5KH.js.map → queryService-j3XZ2mX6.js.map} +1 -1
- package/dist/queue/index.cjs +1 -1
- package/dist/queue/index.d.cts +1 -1
- package/dist/queue/index.d.ts +1 -1
- package/dist/queue/index.js +1 -1
- package/dist/{queue-DyotLFJi.js → queue-Dagl0sdP.js} +4 -4
- package/dist/{queue-DyotLFJi.js.map → queue-Dagl0sdP.js.map} +1 -1
- package/dist/{queue-OJJUUqc2.cjs → queue-e3rMWbmK.cjs} +4 -4
- package/dist/{queue-OJJUUqc2.cjs.map → queue-e3rMWbmK.cjs.map} +1 -1
- package/dist/scheduler/index.cjs +3 -3
- package/dist/scheduler/index.js +3 -3
- package/dist/sdk/configurations/index.d.cts +4 -4
- package/dist/sdk/configurations/index.d.ts +4 -4
- package/dist/sdk/developerPortal/index.cjs +3 -3
- package/dist/sdk/developerPortal/index.js +3 -3
- package/dist/sdk/queryService/index.d.cts +1 -1
- package/dist/sdk/queryService/index.d.ts +1 -1
- package/dist/sdk/semanticLayer/index.cjs +1 -1
- package/dist/sdk/semanticLayer/index.js +1 -1
- package/dist/sdk/storage/index.d.cts +1 -1
- package/dist/sdk/storage/index.d.ts +1 -1
- package/dist/sdk/vault/index.d.cts +1 -1
- package/dist/sdk/vault/index.d.ts +1 -1
- package/dist/{semanticLayer-CSqmtHRo.js → semanticLayer-6_gtFxDu.js} +38 -5
- package/dist/semanticLayer-6_gtFxDu.js.map +1 -0
- package/dist/{semanticLayer-E0Vilu8u.cjs → semanticLayer-9uTaU7UT.cjs} +38 -5
- package/dist/semanticLayer-9uTaU7UT.cjs.map +1 -0
- package/dist/{serviceIds-DRcoTnSd.d.ts → serviceIds-DC-H6ZD9.d.cts} +2 -1
- package/dist/{serviceIds-DRcoTnSd.d.cts → serviceIds-DC-H6ZD9.d.ts} +2 -1
- package/dist/status/index.cjs +1 -1
- package/dist/status/index.js +1 -1
- package/dist/storage/index.cjs +5 -4
- package/dist/storage/index.d.cts +2 -2
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.js +5 -5
- package/dist/storage/types.d.cts +3 -3
- package/dist/storage/types.d.ts +3 -3
- package/dist/{storage-BKm7cztt.cjs → storage-HFUdEy7P.cjs} +43 -6
- package/dist/storage-HFUdEy7P.cjs.map +1 -0
- package/dist/{storage-LYwFQPNO.js → storage-Ob1LUIDq.js} +38 -7
- package/dist/storage-Ob1LUIDq.js.map +1 -0
- package/dist/stream/index.cjs +3 -3
- package/dist/stream/index.js +3 -3
- package/dist/syncActions/index.cjs +1 -1
- package/dist/syncActions/index.js +1 -1
- package/dist/{syncActions-QeBhIVhG.js → syncActions-B3NS5a0g.js} +5 -5
- package/dist/{syncActions-QeBhIVhG.js.map → syncActions-B3NS5a0g.js.map} +1 -1
- package/dist/{syncActions-OEZdVffK.cjs → syncActions-D2DhY6pP.cjs} +5 -5
- package/dist/{syncActions-OEZdVffK.cjs.map → syncActions-D2DhY6pP.cjs.map} +1 -1
- package/dist/telemetry/index.cjs +3 -3
- package/dist/telemetry/index.js +3 -3
- package/dist/{types-B3GOGUJ7.d.cts → types-B-P4vQe0.d.cts} +47 -2
- package/dist/{types-DEc55spK.d.ts → types-B95uNQ9o.d.ts} +3 -3
- package/dist/{types-BQsOHNI0.d.ts → types-BrPlv-NS.d.ts} +3 -3
- package/dist/{types-DjrRmQUe.d.cts → types-CmF3pR2n.d.cts} +3 -3
- package/dist/{types-f8W_j6qD.d.cts → types-Crhy0c9m.d.cts} +657 -199
- package/dist/{types-CBgLCkYe.d.ts → types-D6UmMa6E.d.ts} +224 -401
- package/dist/{types-DPS8nwkV.d.cts → types-DOyNe7oe.d.cts} +2 -1
- package/dist/{types-BMeDOB_D.d.ts → types-DPl8pZsY.d.ts} +47 -2
- package/dist/{types-DARv_P6O.d.cts → types-DXskkNp8.d.cts} +224 -401
- package/dist/{types-CaYtinmA.d.cts → types-D_j2Uq5X.d.cts} +3 -3
- package/dist/{types-BupPADSm.d.ts → types-DrqKICcK.d.ts} +657 -199
- package/dist/{types-DBOSvWtD.d.ts → types-gi4Eay19.d.ts} +2 -1
- package/dist/{validateConnectionStatus-olE2sQ3U.js → validateConnectionStatus-828HV8WL.js} +4 -3
- package/dist/validateConnectionStatus-828HV8WL.js.map +1 -0
- package/dist/{validateConnectionStatus-CsvYmCOI.cjs → validateConnectionStatus-CvBKyeDO.cjs} +4 -3
- package/dist/validateConnectionStatus-CvBKyeDO.cjs.map +1 -0
- package/dist/vault/index.cjs +4 -4
- package/dist/vault/index.js +4 -4
- package/package.json +34 -8
- package/surface/apps.md +11 -11
- package/surface/billing.md +2 -2
- package/surface/businessWorkspaceApi.md +12 -0
- package/surface/chat.md +1 -1
- package/surface/editor.md +5 -5
- package/surface/kaiAgent.md +5 -2
- package/surface/management.md +4 -0
- package/dist/constants-C4DlsF_M.cjs.map +0 -1
- package/dist/constants-wfbFsqqN.js.map +0 -1
- package/dist/createFetchClient-DgMiqTJ8.cjs.map +0 -1
- package/dist/createFetchClient-U-ZrwPl2.js.map +0 -1
- package/dist/kaiAgent-8LNzGhZc.js.map +0 -1
- package/dist/kaiAgent-B_TaUPRt.cjs.map +0 -1
- package/dist/management-BoxlRNg2.cjs.map +0 -1
- package/dist/management-Bp440RsV.js.map +0 -1
- package/dist/semanticLayer-CSqmtHRo.js.map +0 -1
- package/dist/semanticLayer-E0Vilu8u.cjs.map +0 -1
- package/dist/storage-BKm7cztt.cjs.map +0 -1
- package/dist/storage-LYwFQPNO.js.map +0 -1
- package/dist/validateConnectionStatus-CsvYmCOI.cjs.map +0 -1
- package/dist/validateConnectionStatus-olE2sQ3U.js.map +0 -1
package/dist/apps/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders","readAppLogsTail","readAppLogsDownload"],"sources":["../../src/clients/apps/appsClient.ts"],"sourcesContent":["import { readAppLogsDownload, readAppLogsTail } from '../../domain/appLogs';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n App,\n AppId,\n CreateAppBody,\n CreateCredentialBody,\n CreateDeploymentBody,\n CredentialId,\n DeploymentId,\n GetAppRunsQuery,\n GetAppsQuery,\n GetLogsTailQuery,\n RunId,\n} from './types';\n\n/**\n * No `idempotencyKey`. The service accepted an `Idempotency-Key` that turned a replayed create\n * into a no-op, and support for it was **dropped on 17 Aug 2026** — the spec still documents the\n * header and has yet to catch up. It was\n * unusable from a browser in any case — the service's `Access-Control-Allow-Headers` never listed\n * the header, so sending it failed the preflight and the request never left the page.\n *\n * Every create here is therefore a genuine create, and a caller that retries one is responsible\n * for the duplicate it may produce.\n */\ntype WriteOptions = {\n signal?: AbortSignal;\n};\n\ntype LogsTailOptions = {\n query?: GetLogsTailQuery;\n signal?: AbortSignal;\n};\n\n/**\n * `/v2` App Deployments — data apps plus the immutable deployment history behind them. Sibling of\n * the `dataScience` client, which wraps the same service's `/v1` surface.\n *\n * `baseUrl` must already point past the `/v2` prefix (`https://<data-science-host>/v2`); the\n * registry composes it — see `createServiceClients`.\n *\n * Two documented endpoints are deliberately absent: `PATCH /apps/{appId}` has no patchable field\n * yet (`name`/`description` are create-only, so `{}` is the only accepted body), and\n * `POST /apps/{appId}/activity` is apps-proxy's heartbeat, authenticated by a Manage API token with\n * the `apps:proxy` scope that this storage-token client cannot supply.\n */\nexport const createAppsClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const writeOptions = ({ signal }: WriteOptions) => ({ signal });\n\n /** Service metadata (`appName`, `appVersion`, `apiDocs`) — the `/v2` surface has no `/health-check`. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/', {}, { signal });\n\n return data;\n };\n\n const getApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps', { query }, { signal });\n\n return data;\n };\n\n const getApp = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Reserves the app and its Storage configuration only. Content (`parameters`) and auth\n * (`authorization.app_proxy`) are written afterwards through the Storage API, on the config named\n * by the response's `componentId`/`branchId`/`configId`.\n */\n const createApp = async (body: CreateAppBody, options: WriteOptions = {}) => {\n const { data } = await client.post('/apps', { body }, writeOptions(options));\n\n return data;\n };\n\n const deleteApp = async (appId: AppId, signal?: AbortSignal) => {\n await client.delete('/apps/{appId}', { path: { appId } }, { signal });\n };\n\n /**\n * Drops production routing — the app's URL 404s afterwards. `null` when there was nothing to\n * unpublish (already unpublished, or never deployed via `/v2`): the service answers `204`.\n */\n const unpublishApp = async (appId: AppId, signal?: AbortSignal): Promise<App | null> => {\n const { data } = await client.post('/apps/{appId}/unpublish', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Sleeps the app now instead of waiting for the idle timer, and disarms wake-on-request: a\n * visitor gets a `503` until an explicit {@link resumeApp}. `null` when already suspended (`204`).\n */\n const suspendApp = async (appId: AppId, signal?: AbortSignal): Promise<App | null> => {\n const { data } = await client.post('/apps/{appId}/suspend', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Wakes the app now and re-arms wake-on-request. `null` when it was already running (`204`).\n * The returned app reports `STARTING` — the operator has not confirmed it serving yet.\n */\n const resumeApp = async (appId: AppId, signal?: AbortSignal): Promise<App | null> => {\n const { data } = await client.post('/apps/{appId}/resume', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** `password` is `null` until one is minted — by the app's first deployment or {@link resetAppPassword}. */\n const getAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/password', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Mints a fresh password, replacing any existing one. Read it back with {@link getAppPassword}. */\n const resetAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/apps/{appId}/reset-password',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Runs of the app, newest first — app-wide, so this is where a failed deployment's cause lives\n * (`failureReason`, `startupLogs`). Narrow to one deployment with `query.deploymentId`.\n */\n const getAppRuns = async (appId: AppId, query: GetAppRunsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/runs', { path: { appId }, query }, { signal });\n\n return data;\n };\n\n const getAppRun = async (appId: AppId, runId: RunId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/runs/{runId}',\n { path: { appId, runId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deploys the app's current config version as a new immutable deployment, promoting it unless\n * `body.promote` is `false` (a staged release never runs until promoted). The id and `number` come\n * back synchronously; readiness does not.\n */\n const createDeployment = async (\n appId: AppId,\n body?: CreateDeploymentBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/deployments',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n /** Full history, retired (`archived: true`) deployments included — rows outlive their workloads. */\n const getDeployments = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/deployments', { path: { appId } }, { signal });\n\n return data;\n };\n\n const getDeployment = async (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Retires the deployment: the workload and its rendered-config secret go, the row stays in\n * history as `archived`. Rejected with a `409` while the app's `production` still names it.\n */\n const deleteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n };\n\n /**\n * Makes this deployment production — the same call rolls back, applied to an older one. The route\n * switches only once the target serves, so the returned app's `production.desiredId` and\n * `.actualId` differ until it converges. `null` when it was already production (`204`).\n */\n const promoteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ): Promise<App | null> => {\n const { data } = await client.post(\n '/apps/{appId}/deployments/{deploymentId}/promote',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Container output of the app's currently serving member. `query.since` and `query.lines` are\n * mutually exclusive; passing neither returns the log from its start.\n */\n const getAppLogsTail = (appId: AppId, { query, signal }: LogsTailOptions = {}) =>\n readAppLogsTail(() =>\n client.get('/apps/{appId}/logs/tail', { path: { appId }, query }, { signal }),\n );\n\n const getAppLogsDownload = (appId: AppId, signal?: AbortSignal) =>\n readAppLogsDownload(() =>\n client.get('/apps/{appId}/logs/download', { path: { appId } }, { signal }),\n );\n\n const getDeploymentLogsTail = (\n appId: AppId,\n deploymentId: DeploymentId,\n { query, signal }: LogsTailOptions = {},\n ) =>\n readAppLogsTail(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/tail',\n { path: { appId, deploymentId }, query },\n { signal },\n ),\n );\n\n const getDeploymentLogsDownload = (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) =>\n readAppLogsDownload(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/download',\n { path: { appId, deploymentId } },\n { signal },\n ),\n );\n\n /** The app's Git repository — managed or external. `409` when it has none configured. */\n const getAppGitRepo = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/git-repo', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Credentials of the app's managed repository, per app rather than per deployment. */\n const getAppGitRepoCredentials = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n const getAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n\n return data;\n };\n\n /** An `http_token` credential returns its `secret` here and nowhere else — store it now or lose it. */\n const createAppGitRepoCredential = async (\n appId: AppId,\n body: CreateCredentialBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n const deleteAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n };\n\n return {\n healthCheck,\n getApps,\n getApp,\n createApp,\n deleteApp,\n unpublishApp,\n suspendApp,\n resumeApp,\n getAppPassword,\n resetAppPassword,\n getAppRuns,\n getAppRun,\n createDeployment,\n getDeployments,\n getDeployment,\n deleteDeployment,\n promoteDeployment,\n getAppLogsTail,\n getAppLogsDownload,\n getDeploymentLogsTail,\n getDeploymentLogsDownload,\n getAppGitRepo,\n getAppGitRepoCredentials,\n getAppGitRepoCredential,\n createAppGitRepoCredential,\n deleteAppGitRepoCredential,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders","readAppLogsTail","readAppLogsDownload"],"sources":["../../src/clients/apps/appsClient.ts"],"sourcesContent":["import { readAppLogsDownload, readAppLogsTail } from '../../domain/appLogs';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n App,\n AppId,\n CreateAppBody,\n CreateCredentialBody,\n CreateDeploymentBody,\n CredentialId,\n DeploymentId,\n GetAppRunsQuery,\n GetAppsQuery,\n GetDeploymentsQuery,\n GetLogsTailQuery,\n RunId,\n} from './types';\n\n/**\n * Options every write takes.\n *\n * - No `idempotencyKey`: the service accepts no `Idempotency-Key`, so every create here is a\n * genuine create and a caller that retries one owns the duplicate it may produce.\n */\ntype WriteOptions = {\n signal?: AbortSignal;\n};\n\ntype LogsTailOptions = {\n query?: GetLogsTailQuery;\n signal?: AbortSignal;\n};\n\n/**\n * `/v2` App Deployments — data apps plus the immutable deployment history behind them. Sibling of\n * the `dataScience` client, which wraps the same service's `/v1` surface.\n *\n * `baseUrl` must already point past the `/v2` prefix (`https://<data-science-host>/v2`); the\n * registry composes it — see `createServiceClients`.\n *\n * One documented endpoint is deliberately absent: `POST /apps/{appId}/activity` is apps-proxy's\n * heartbeat, authenticated by a Manage API token with the `apps:proxy` scope that this\n * storage-token client cannot supply.\n */\nexport const createAppsClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const writeOptions = ({ signal }: WriteOptions) => ({ signal });\n\n /** Service metadata (`appName`, `appVersion`, `apiDocs`) — the `/v2` surface has no `/health-check`. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/', {}, { signal });\n\n return data;\n };\n\n const getApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps', { query }, { signal });\n\n return data;\n };\n\n const getApp = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Reserves the app and its Storage configuration only. Content (`parameters`) and auth\n * (`authorization.app_proxy`) are written afterwards through the Storage API, on the config named\n * by the response's `componentId`/`branchId`/`configId`.\n */\n const createApp = async (body: CreateAppBody, options: WriteOptions = {}) => {\n const { data } = await client.post('/apps', { body }, writeOptions(options));\n\n return data;\n };\n\n const deleteApp = async (appId: AppId, signal?: AbortSignal) => {\n await client.delete('/apps/{appId}', { path: { appId } }, { signal });\n };\n\n /**\n * Drops production routing — the app's URL 404s afterwards. A no-op (already unpublished, or\n * never deployed) returns the app unchanged rather than failing.\n */\n const unpublishApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/unpublish', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Sleeps the app now instead of waiting for the idle timer, and disarms wake-on-request: a\n * visitor gets a `503` until an explicit {@link resumeApp}. A no-op on an already suspended app.\n */\n const suspendApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/suspend', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Wakes the app now and re-arms wake-on-request. A no-op on an already running app.\n * The returned app reports `starting` — the operator has not confirmed it serving yet.\n */\n const resumeApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/resume', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** `password` is `null` until one is minted — by the app's first deployment or {@link resetAppPassword}. */\n const getAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/password', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Mints a fresh password, replacing any existing one. Read it back with {@link getAppPassword}. */\n const resetAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/apps/{appId}/password/reset',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Runs of the app, newest first — app-wide, so this is where a failed deployment's cause lives\n * (`failureReason`, `startupLogs`). Narrow to one deployment with `query.deploymentId`.\n */\n const getAppRuns = async (appId: AppId, query: GetAppRunsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/runs', { path: { appId }, query }, { signal });\n\n return data;\n };\n\n const getAppRun = async (appId: AppId, runId: RunId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/runs/{runId}',\n { path: { appId, runId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deploys the app's current config version as a new immutable deployment, promoting it unless\n * `body.promote` is `false` (a staged release never runs until promoted). Pin an older config\n * version with `body.configVersion`. The deployment comes back synchronously; readiness does not.\n */\n const createDeployment = async (\n appId: AppId,\n body?: CreateDeploymentBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/deployments',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n /**\n * Deployment history, newest page first.\n *\n * - `query.archived` filters on whether the deployment was deleted; omitting it returns both.\n * - A deleted deployment keeps its row — history outlives the workload.\n */\n const getDeployments = async (\n appId: AppId,\n query: GetDeploymentsQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments',\n { path: { appId }, query },\n { signal },\n );\n\n return data;\n };\n\n const getDeployment = async (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deletes the deployment: its running resources and credentials go, the row stays in history as\n * `archived`. Rejected with a `409` while the app's `production` still names it.\n */\n const deleteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n };\n\n /**\n * Makes this deployment production — the same call rolls back, applied to an older one. The route\n * switches only once the target serves, so the returned app's `production.desiredDeploymentId`\n * and `.actualDeploymentId` differ until it converges.\n */\n const promoteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ): Promise<App> => {\n const { data } = await client.post(\n '/apps/{appId}/deployments/{deploymentId}/promote',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Container output of the app's currently serving member. `query.since` and `query.lines` are\n * mutually exclusive; passing neither returns the log from its start.\n */\n const getAppLogsTail = (appId: AppId, { query, signal }: LogsTailOptions = {}) =>\n readAppLogsTail(() =>\n client.get('/apps/{appId}/logs/tail', { path: { appId }, query }, { signal }),\n );\n\n const getAppLogsDownload = (appId: AppId, signal?: AbortSignal) =>\n readAppLogsDownload(() =>\n client.get('/apps/{appId}/logs/download', { path: { appId } }, { signal }),\n );\n\n const getDeploymentLogsTail = (\n appId: AppId,\n deploymentId: DeploymentId,\n { query, signal }: LogsTailOptions = {},\n ) =>\n readAppLogsTail(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/tail',\n { path: { appId, deploymentId }, query },\n { signal },\n ),\n );\n\n const getDeploymentLogsDownload = (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) =>\n readAppLogsDownload(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/download',\n { path: { appId, deploymentId } },\n { signal },\n ),\n );\n\n /** The app's Git repository — managed or external. `409` when it has none configured. */\n const getAppGitRepo = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/git-repo', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Credentials of the app's managed repository, per app rather than per deployment. */\n const getAppGitRepoCredentials = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n const getAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n\n return data;\n };\n\n /** An `http_token` credential returns its `secret` here and nowhere else — store it now or lose it. */\n const createAppGitRepoCredential = async (\n appId: AppId,\n body: CreateCredentialBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n const deleteAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n };\n\n return {\n healthCheck,\n getApps,\n getApp,\n createApp,\n deleteApp,\n unpublishApp,\n suspendApp,\n resumeApp,\n getAppPassword,\n resetAppPassword,\n getAppRuns,\n getAppRun,\n createDeployment,\n getDeployments,\n getDeployment,\n deleteDeployment,\n promoteDeployment,\n getAppLogsTail,\n getAppLogsDownload,\n getDeploymentLogsTail,\n getDeploymentLogsDownload,\n getAppGitRepo,\n getAppGitRepoCredentials,\n getAppGitRepoCredential,\n createAppGitRepoCredential,\n deleteAppGitRepoCredential,\n };\n};\n"],"mappings":"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"}
|
package/dist/apps/index.d.cts
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import { n as ClientInitOptions } from "../types-_RhBCj4_.cjs";
|
|
2
|
-
import {
|
|
2
|
+
import { C as components, S as RunId, b as GetDeploymentsQuery, c as CreateCredentialBody, f as CredentialId, g as DeploymentId, l as CreateDeploymentBody, r as AppId, s as CreateAppBody, t as App, v as GetAppRunsQuery, x as GetLogsTailQuery, y as GetAppsQuery } from "../types-DXskkNp8.cjs";
|
|
3
3
|
import { t as LogEntry } from "../appLogs-D5A13Y0y.cjs";
|
|
4
4
|
//#region src/clients/apps/appsClient.d.ts
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
* into a no-op, and support for it was **dropped on 17 Aug 2026** — the spec still documents the
|
|
8
|
-
* header and has yet to catch up. It was
|
|
9
|
-
* unusable from a browser in any case — the service's `Access-Control-Allow-Headers` never listed
|
|
10
|
-
* the header, so sending it failed the preflight and the request never left the page.
|
|
6
|
+
* Options every write takes.
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
8
|
+
* - No `idempotencyKey`: the service accepts no `Idempotency-Key`, so every create here is a
|
|
9
|
+
* genuine create and a caller that retries one owns the duplicate it may produce.
|
|
14
10
|
*/
|
|
15
11
|
type WriteOptions = {
|
|
16
12
|
signal?: AbortSignal;
|
|
@@ -26,10 +22,9 @@ type LogsTailOptions = {
|
|
|
26
22
|
* `baseUrl` must already point past the `/v2` prefix (`https://<data-science-host>/v2`); the
|
|
27
23
|
* registry composes it — see `createServiceClients`.
|
|
28
24
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* the `apps:proxy` scope that this storage-token client cannot supply.
|
|
25
|
+
* One documented endpoint is deliberately absent: `POST /apps/{appId}/activity` is apps-proxy's
|
|
26
|
+
* heartbeat, authenticated by a Manage API token with the `apps:proxy` scope that this
|
|
27
|
+
* storage-token client cannot supply.
|
|
33
28
|
*/
|
|
34
29
|
declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
|
|
35
30
|
healthCheck: (signal?: AbortSignal) => Promise<{
|
|
@@ -43,18 +38,13 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
|
|
|
43
38
|
componentId: string;
|
|
44
39
|
branchId: string | null;
|
|
45
40
|
configId: string;
|
|
46
|
-
configVersion: string;
|
|
47
41
|
type?: 'streamlit' | 'python-js' | null;
|
|
48
|
-
mode?: 'prod' | 'dev';
|
|
49
42
|
url: string | null;
|
|
50
43
|
production: {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
actualNumber?: number | null;
|
|
54
|
-
actualId?: string | null;
|
|
44
|
+
desiredDeploymentId?: string | null;
|
|
45
|
+
actualDeploymentId?: string | null;
|
|
55
46
|
};
|
|
56
|
-
|
|
57
|
-
state: 'NOT_DEPLOYED' | 'STARTING' | 'RUNNING' | 'SLEEPING' | 'SUSPENDED';
|
|
47
|
+
state: 'notDeployed' | 'starting' | 'running' | 'suspended' | 'disabled';
|
|
58
48
|
}[]>;
|
|
59
49
|
getApp: (appId: AppId, signal?: AbortSignal) => Promise<{
|
|
60
50
|
id: string;
|
|
@@ -62,18 +52,13 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
|
|
|
62
52
|
componentId: string;
|
|
63
53
|
branchId: string | null;
|
|
64
54
|
configId: string;
|
|
65
|
-
configVersion: string;
|
|
66
55
|
type?: 'streamlit' | 'python-js' | null;
|
|
67
|
-
mode?: 'prod' | 'dev';
|
|
68
56
|
url: string | null;
|
|
69
57
|
production: {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
actualNumber?: number | null;
|
|
73
|
-
actualId?: string | null;
|
|
58
|
+
desiredDeploymentId?: string | null;
|
|
59
|
+
actualDeploymentId?: string | null;
|
|
74
60
|
};
|
|
75
|
-
|
|
76
|
-
state: 'NOT_DEPLOYED' | 'STARTING' | 'RUNNING' | 'SLEEPING' | 'SUSPENDED';
|
|
61
|
+
state: 'notDeployed' | 'starting' | 'running' | 'suspended' | 'disabled';
|
|
77
62
|
}>;
|
|
78
63
|
createApp: (body: CreateAppBody, options?: WriteOptions) => Promise<{
|
|
79
64
|
id: string;
|
|
@@ -81,44 +66,23 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
|
|
|
81
66
|
componentId: string;
|
|
82
67
|
branchId: string | null;
|
|
83
68
|
configId: string;
|
|
84
|
-
configVersion: string;
|
|
85
69
|
type?: 'streamlit' | 'python-js' | null;
|
|
86
|
-
mode?: 'prod' | 'dev';
|
|
87
70
|
url: string | null;
|
|
88
71
|
production: {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
actualNumber?: number | null;
|
|
92
|
-
actualId?: string | null;
|
|
72
|
+
desiredDeploymentId?: string | null;
|
|
73
|
+
actualDeploymentId?: string | null;
|
|
93
74
|
};
|
|
94
|
-
|
|
95
|
-
state: 'NOT_DEPLOYED' | 'STARTING' | 'RUNNING' | 'SLEEPING' | 'SUSPENDED';
|
|
75
|
+
state: 'notDeployed' | 'starting' | 'running' | 'suspended' | 'disabled';
|
|
96
76
|
}>;
|
|
97
77
|
deleteApp: (appId: AppId, signal?: AbortSignal) => Promise<void>;
|
|
98
|
-
unpublishApp: (appId: AppId, signal?: AbortSignal) => Promise<App
|
|
99
|
-
suspendApp: (appId: AppId, signal?: AbortSignal) => Promise<App
|
|
100
|
-
resumeApp: (appId: AppId, signal?: AbortSignal) => Promise<App
|
|
78
|
+
unpublishApp: (appId: AppId, signal?: AbortSignal) => Promise<App>;
|
|
79
|
+
suspendApp: (appId: AppId, signal?: AbortSignal) => Promise<App>;
|
|
80
|
+
resumeApp: (appId: AppId, signal?: AbortSignal) => Promise<App>;
|
|
101
81
|
getAppPassword: (appId: AppId, signal?: AbortSignal) => Promise<{
|
|
102
82
|
password?: string | null;
|
|
103
83
|
}>;
|
|
104
84
|
resetAppPassword: (appId: AppId, signal?: AbortSignal) => Promise<{
|
|
105
|
-
|
|
106
|
-
projectId: string;
|
|
107
|
-
componentId: string;
|
|
108
|
-
branchId: string | null;
|
|
109
|
-
configId: string;
|
|
110
|
-
configVersion: string;
|
|
111
|
-
type?: 'streamlit' | 'python-js' | null;
|
|
112
|
-
mode?: 'prod' | 'dev';
|
|
113
|
-
url: string | null;
|
|
114
|
-
production: {
|
|
115
|
-
desiredNumber?: number | null;
|
|
116
|
-
desiredId?: string | null;
|
|
117
|
-
actualNumber?: number | null;
|
|
118
|
-
actualId?: string | null;
|
|
119
|
-
};
|
|
120
|
-
undeployedChanges?: boolean;
|
|
121
|
-
state: 'NOT_DEPLOYED' | 'STARTING' | 'RUNNING' | 'SLEEPING' | 'SUSPENDED';
|
|
85
|
+
password: string;
|
|
122
86
|
}>;
|
|
123
87
|
getAppRuns: (appId: AppId, query?: GetAppRunsQuery, signal?: AbortSignal) => Promise<{
|
|
124
88
|
id: string;
|
|
@@ -160,45 +124,39 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
|
|
|
160
124
|
}>;
|
|
161
125
|
createDeployment: (appId: AppId, body?: CreateDeploymentBody, options?: WriteOptions) => Promise<{
|
|
162
126
|
id: string;
|
|
163
|
-
number: number;
|
|
164
|
-
configId: string;
|
|
165
127
|
configVersion: string;
|
|
166
128
|
gitCommitSha: string | null;
|
|
167
|
-
|
|
168
|
-
buildState: '
|
|
169
|
-
runState: '
|
|
129
|
+
runtimeSize?: 'micro' | 'tiny' | 'small' | 'medium' | 'large' | 'external' | null;
|
|
130
|
+
buildState: 'pending' | 'building' | 'ready' | 'failed';
|
|
131
|
+
runState: 'neverRun' | 'pending' | 'starting' | 'running' | 'stopping' | 'stopped' | 'failed';
|
|
170
132
|
archived: boolean;
|
|
171
133
|
archivedAt: string | null;
|
|
172
134
|
createdAt: string;
|
|
173
135
|
}>;
|
|
174
|
-
getDeployments: (appId: AppId, signal?: AbortSignal) => Promise<{
|
|
136
|
+
getDeployments: (appId: AppId, query?: GetDeploymentsQuery, signal?: AbortSignal) => Promise<{
|
|
175
137
|
id: string;
|
|
176
|
-
number: number;
|
|
177
|
-
configId: string;
|
|
178
138
|
configVersion: string;
|
|
179
139
|
gitCommitSha: string | null;
|
|
180
|
-
|
|
181
|
-
buildState: '
|
|
182
|
-
runState: '
|
|
140
|
+
runtimeSize?: 'micro' | 'tiny' | 'small' | 'medium' | 'large' | 'external' | null;
|
|
141
|
+
buildState: 'pending' | 'building' | 'ready' | 'failed';
|
|
142
|
+
runState: 'neverRun' | 'pending' | 'starting' | 'running' | 'stopping' | 'stopped' | 'failed';
|
|
183
143
|
archived: boolean;
|
|
184
144
|
archivedAt: string | null;
|
|
185
145
|
createdAt: string;
|
|
186
146
|
}[]>;
|
|
187
147
|
getDeployment: (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => Promise<{
|
|
188
148
|
id: string;
|
|
189
|
-
number: number;
|
|
190
|
-
configId: string;
|
|
191
149
|
configVersion: string;
|
|
192
150
|
gitCommitSha: string | null;
|
|
193
|
-
|
|
194
|
-
buildState: '
|
|
195
|
-
runState: '
|
|
151
|
+
runtimeSize?: 'micro' | 'tiny' | 'small' | 'medium' | 'large' | 'external' | null;
|
|
152
|
+
buildState: 'pending' | 'building' | 'ready' | 'failed';
|
|
153
|
+
runState: 'neverRun' | 'pending' | 'starting' | 'running' | 'stopping' | 'stopped' | 'failed';
|
|
196
154
|
archived: boolean;
|
|
197
155
|
archivedAt: string | null;
|
|
198
156
|
createdAt: string;
|
|
199
157
|
}>;
|
|
200
158
|
deleteDeployment: (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => Promise<void>;
|
|
201
|
-
promoteDeployment: (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => Promise<App
|
|
159
|
+
promoteDeployment: (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => Promise<App>;
|
|
202
160
|
getAppLogsTail: (appId: AppId, { query, signal }?: LogsTailOptions) => Promise<{
|
|
203
161
|
entries: LogEntry[];
|
|
204
162
|
nextLogTimestamp: string | null;
|
package/dist/apps/index.d.ts
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import { n as ClientInitOptions } from "../types-Ct0YPy2w.js";
|
|
2
|
-
import {
|
|
2
|
+
import { C as components, S as RunId, b as GetDeploymentsQuery, c as CreateCredentialBody, f as CredentialId, g as DeploymentId, l as CreateDeploymentBody, r as AppId, s as CreateAppBody, t as App, v as GetAppRunsQuery, x as GetLogsTailQuery, y as GetAppsQuery } from "../types-D6UmMa6E.js";
|
|
3
3
|
import { t as LogEntry } from "../appLogs-Ch7DYpzx.js";
|
|
4
4
|
//#region src/clients/apps/appsClient.d.ts
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
* into a no-op, and support for it was **dropped on 17 Aug 2026** — the spec still documents the
|
|
8
|
-
* header and has yet to catch up. It was
|
|
9
|
-
* unusable from a browser in any case — the service's `Access-Control-Allow-Headers` never listed
|
|
10
|
-
* the header, so sending it failed the preflight and the request never left the page.
|
|
6
|
+
* Options every write takes.
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
8
|
+
* - No `idempotencyKey`: the service accepts no `Idempotency-Key`, so every create here is a
|
|
9
|
+
* genuine create and a caller that retries one owns the duplicate it may produce.
|
|
14
10
|
*/
|
|
15
11
|
type WriteOptions = {
|
|
16
12
|
signal?: AbortSignal;
|
|
@@ -26,10 +22,9 @@ type LogsTailOptions = {
|
|
|
26
22
|
* `baseUrl` must already point past the `/v2` prefix (`https://<data-science-host>/v2`); the
|
|
27
23
|
* registry composes it — see `createServiceClients`.
|
|
28
24
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* the `apps:proxy` scope that this storage-token client cannot supply.
|
|
25
|
+
* One documented endpoint is deliberately absent: `POST /apps/{appId}/activity` is apps-proxy's
|
|
26
|
+
* heartbeat, authenticated by a Manage API token with the `apps:proxy` scope that this
|
|
27
|
+
* storage-token client cannot supply.
|
|
33
28
|
*/
|
|
34
29
|
declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
|
|
35
30
|
healthCheck: (signal?: AbortSignal) => Promise<{
|
|
@@ -43,18 +38,13 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
|
|
|
43
38
|
componentId: string;
|
|
44
39
|
branchId: string | null;
|
|
45
40
|
configId: string;
|
|
46
|
-
configVersion: string;
|
|
47
41
|
type?: 'streamlit' | 'python-js' | null;
|
|
48
|
-
mode?: 'prod' | 'dev';
|
|
49
42
|
url: string | null;
|
|
50
43
|
production: {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
actualNumber?: number | null;
|
|
54
|
-
actualId?: string | null;
|
|
44
|
+
desiredDeploymentId?: string | null;
|
|
45
|
+
actualDeploymentId?: string | null;
|
|
55
46
|
};
|
|
56
|
-
|
|
57
|
-
state: 'NOT_DEPLOYED' | 'STARTING' | 'RUNNING' | 'SLEEPING' | 'SUSPENDED';
|
|
47
|
+
state: 'notDeployed' | 'starting' | 'running' | 'suspended' | 'disabled';
|
|
58
48
|
}[]>;
|
|
59
49
|
getApp: (appId: AppId, signal?: AbortSignal) => Promise<{
|
|
60
50
|
id: string;
|
|
@@ -62,18 +52,13 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
|
|
|
62
52
|
componentId: string;
|
|
63
53
|
branchId: string | null;
|
|
64
54
|
configId: string;
|
|
65
|
-
configVersion: string;
|
|
66
55
|
type?: 'streamlit' | 'python-js' | null;
|
|
67
|
-
mode?: 'prod' | 'dev';
|
|
68
56
|
url: string | null;
|
|
69
57
|
production: {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
actualNumber?: number | null;
|
|
73
|
-
actualId?: string | null;
|
|
58
|
+
desiredDeploymentId?: string | null;
|
|
59
|
+
actualDeploymentId?: string | null;
|
|
74
60
|
};
|
|
75
|
-
|
|
76
|
-
state: 'NOT_DEPLOYED' | 'STARTING' | 'RUNNING' | 'SLEEPING' | 'SUSPENDED';
|
|
61
|
+
state: 'notDeployed' | 'starting' | 'running' | 'suspended' | 'disabled';
|
|
77
62
|
}>;
|
|
78
63
|
createApp: (body: CreateAppBody, options?: WriteOptions) => Promise<{
|
|
79
64
|
id: string;
|
|
@@ -81,44 +66,23 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
|
|
|
81
66
|
componentId: string;
|
|
82
67
|
branchId: string | null;
|
|
83
68
|
configId: string;
|
|
84
|
-
configVersion: string;
|
|
85
69
|
type?: 'streamlit' | 'python-js' | null;
|
|
86
|
-
mode?: 'prod' | 'dev';
|
|
87
70
|
url: string | null;
|
|
88
71
|
production: {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
actualNumber?: number | null;
|
|
92
|
-
actualId?: string | null;
|
|
72
|
+
desiredDeploymentId?: string | null;
|
|
73
|
+
actualDeploymentId?: string | null;
|
|
93
74
|
};
|
|
94
|
-
|
|
95
|
-
state: 'NOT_DEPLOYED' | 'STARTING' | 'RUNNING' | 'SLEEPING' | 'SUSPENDED';
|
|
75
|
+
state: 'notDeployed' | 'starting' | 'running' | 'suspended' | 'disabled';
|
|
96
76
|
}>;
|
|
97
77
|
deleteApp: (appId: AppId, signal?: AbortSignal) => Promise<void>;
|
|
98
|
-
unpublishApp: (appId: AppId, signal?: AbortSignal) => Promise<App
|
|
99
|
-
suspendApp: (appId: AppId, signal?: AbortSignal) => Promise<App
|
|
100
|
-
resumeApp: (appId: AppId, signal?: AbortSignal) => Promise<App
|
|
78
|
+
unpublishApp: (appId: AppId, signal?: AbortSignal) => Promise<App>;
|
|
79
|
+
suspendApp: (appId: AppId, signal?: AbortSignal) => Promise<App>;
|
|
80
|
+
resumeApp: (appId: AppId, signal?: AbortSignal) => Promise<App>;
|
|
101
81
|
getAppPassword: (appId: AppId, signal?: AbortSignal) => Promise<{
|
|
102
82
|
password?: string | null;
|
|
103
83
|
}>;
|
|
104
84
|
resetAppPassword: (appId: AppId, signal?: AbortSignal) => Promise<{
|
|
105
|
-
|
|
106
|
-
projectId: string;
|
|
107
|
-
componentId: string;
|
|
108
|
-
branchId: string | null;
|
|
109
|
-
configId: string;
|
|
110
|
-
configVersion: string;
|
|
111
|
-
type?: 'streamlit' | 'python-js' | null;
|
|
112
|
-
mode?: 'prod' | 'dev';
|
|
113
|
-
url: string | null;
|
|
114
|
-
production: {
|
|
115
|
-
desiredNumber?: number | null;
|
|
116
|
-
desiredId?: string | null;
|
|
117
|
-
actualNumber?: number | null;
|
|
118
|
-
actualId?: string | null;
|
|
119
|
-
};
|
|
120
|
-
undeployedChanges?: boolean;
|
|
121
|
-
state: 'NOT_DEPLOYED' | 'STARTING' | 'RUNNING' | 'SLEEPING' | 'SUSPENDED';
|
|
85
|
+
password: string;
|
|
122
86
|
}>;
|
|
123
87
|
getAppRuns: (appId: AppId, query?: GetAppRunsQuery, signal?: AbortSignal) => Promise<{
|
|
124
88
|
id: string;
|
|
@@ -160,45 +124,39 @@ declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptio
|
|
|
160
124
|
}>;
|
|
161
125
|
createDeployment: (appId: AppId, body?: CreateDeploymentBody, options?: WriteOptions) => Promise<{
|
|
162
126
|
id: string;
|
|
163
|
-
number: number;
|
|
164
|
-
configId: string;
|
|
165
127
|
configVersion: string;
|
|
166
128
|
gitCommitSha: string | null;
|
|
167
|
-
|
|
168
|
-
buildState: '
|
|
169
|
-
runState: '
|
|
129
|
+
runtimeSize?: 'micro' | 'tiny' | 'small' | 'medium' | 'large' | 'external' | null;
|
|
130
|
+
buildState: 'pending' | 'building' | 'ready' | 'failed';
|
|
131
|
+
runState: 'neverRun' | 'pending' | 'starting' | 'running' | 'stopping' | 'stopped' | 'failed';
|
|
170
132
|
archived: boolean;
|
|
171
133
|
archivedAt: string | null;
|
|
172
134
|
createdAt: string;
|
|
173
135
|
}>;
|
|
174
|
-
getDeployments: (appId: AppId, signal?: AbortSignal) => Promise<{
|
|
136
|
+
getDeployments: (appId: AppId, query?: GetDeploymentsQuery, signal?: AbortSignal) => Promise<{
|
|
175
137
|
id: string;
|
|
176
|
-
number: number;
|
|
177
|
-
configId: string;
|
|
178
138
|
configVersion: string;
|
|
179
139
|
gitCommitSha: string | null;
|
|
180
|
-
|
|
181
|
-
buildState: '
|
|
182
|
-
runState: '
|
|
140
|
+
runtimeSize?: 'micro' | 'tiny' | 'small' | 'medium' | 'large' | 'external' | null;
|
|
141
|
+
buildState: 'pending' | 'building' | 'ready' | 'failed';
|
|
142
|
+
runState: 'neverRun' | 'pending' | 'starting' | 'running' | 'stopping' | 'stopped' | 'failed';
|
|
183
143
|
archived: boolean;
|
|
184
144
|
archivedAt: string | null;
|
|
185
145
|
createdAt: string;
|
|
186
146
|
}[]>;
|
|
187
147
|
getDeployment: (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => Promise<{
|
|
188
148
|
id: string;
|
|
189
|
-
number: number;
|
|
190
|
-
configId: string;
|
|
191
149
|
configVersion: string;
|
|
192
150
|
gitCommitSha: string | null;
|
|
193
|
-
|
|
194
|
-
buildState: '
|
|
195
|
-
runState: '
|
|
151
|
+
runtimeSize?: 'micro' | 'tiny' | 'small' | 'medium' | 'large' | 'external' | null;
|
|
152
|
+
buildState: 'pending' | 'building' | 'ready' | 'failed';
|
|
153
|
+
runState: 'neverRun' | 'pending' | 'starting' | 'running' | 'stopping' | 'stopped' | 'failed';
|
|
196
154
|
archived: boolean;
|
|
197
155
|
archivedAt: string | null;
|
|
198
156
|
createdAt: string;
|
|
199
157
|
}>;
|
|
200
158
|
deleteDeployment: (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => Promise<void>;
|
|
201
|
-
promoteDeployment: (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => Promise<App
|
|
159
|
+
promoteDeployment: (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => Promise<App>;
|
|
202
160
|
getAppLogsTail: (appId: AppId, { query, signal }?: LogsTailOptions) => Promise<{
|
|
203
161
|
entries: LogEntry[];
|
|
204
162
|
nextLogTimestamp: string | null;
|
package/dist/apps/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-
|
|
2
|
-
import { t as createAuthHeaders } from "../auth-
|
|
3
|
-
import { n as readAppLogsDownload, r as readAppLogsTail } from "../appLogs-
|
|
1
|
+
import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-COaPeeQ0.js";
|
|
2
|
+
import { t as createAuthHeaders } from "../auth-BjmkFOgd.js";
|
|
3
|
+
import { n as readAppLogsDownload, r as readAppLogsTail } from "../appLogs-Cl7Q_MR9.js";
|
|
4
4
|
//#region src/clients/apps/appsClient.ts
|
|
5
5
|
/**
|
|
6
6
|
* `/v2` App Deployments — data apps plus the immutable deployment history behind them. Sibling of
|
|
@@ -9,10 +9,9 @@ import { n as readAppLogsDownload, r as readAppLogsTail } from "../appLogs-xsVkT
|
|
|
9
9
|
* `baseUrl` must already point past the `/v2` prefix (`https://<data-science-host>/v2`); the
|
|
10
10
|
* registry composes it — see `createServiceClients`.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* the `apps:proxy` scope that this storage-token client cannot supply.
|
|
12
|
+
* One documented endpoint is deliberately absent: `POST /apps/{appId}/activity` is apps-proxy's
|
|
13
|
+
* heartbeat, authenticated by a Manage API token with the `apps:proxy` scope that this
|
|
14
|
+
* storage-token client cannot supply.
|
|
16
15
|
*/
|
|
17
16
|
const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
18
17
|
const client = createOpenapiFetchClient({
|
|
@@ -47,8 +46,8 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
47
46
|
await client.delete("/apps/{appId}", { path: { appId } }, { signal });
|
|
48
47
|
};
|
|
49
48
|
/**
|
|
50
|
-
* Drops production routing — the app's URL 404s afterwards.
|
|
51
|
-
*
|
|
49
|
+
* Drops production routing — the app's URL 404s afterwards. A no-op (already unpublished, or
|
|
50
|
+
* never deployed) returns the app unchanged rather than failing.
|
|
52
51
|
*/
|
|
53
52
|
const unpublishApp = async (appId, signal) => {
|
|
54
53
|
const { data } = await client.post("/apps/{appId}/unpublish", { path: { appId } }, { signal });
|
|
@@ -56,15 +55,15 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
56
55
|
};
|
|
57
56
|
/**
|
|
58
57
|
* Sleeps the app now instead of waiting for the idle timer, and disarms wake-on-request: a
|
|
59
|
-
* visitor gets a `503` until an explicit {@link resumeApp}.
|
|
58
|
+
* visitor gets a `503` until an explicit {@link resumeApp}. A no-op on an already suspended app.
|
|
60
59
|
*/
|
|
61
60
|
const suspendApp = async (appId, signal) => {
|
|
62
61
|
const { data } = await client.post("/apps/{appId}/suspend", { path: { appId } }, { signal });
|
|
63
62
|
return data;
|
|
64
63
|
};
|
|
65
64
|
/**
|
|
66
|
-
* Wakes the app now and re-arms wake-on-request.
|
|
67
|
-
* The returned app reports `
|
|
65
|
+
* Wakes the app now and re-arms wake-on-request. A no-op on an already running app.
|
|
66
|
+
* The returned app reports `starting` — the operator has not confirmed it serving yet.
|
|
68
67
|
*/
|
|
69
68
|
const resumeApp = async (appId, signal) => {
|
|
70
69
|
const { data } = await client.post("/apps/{appId}/resume", { path: { appId } }, { signal });
|
|
@@ -77,7 +76,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
77
76
|
};
|
|
78
77
|
/** Mints a fresh password, replacing any existing one. Read it back with {@link getAppPassword}. */
|
|
79
78
|
const resetAppPassword = async (appId, signal) => {
|
|
80
|
-
const { data } = await client.post("/apps/{appId}/reset
|
|
79
|
+
const { data } = await client.post("/apps/{appId}/password/reset", { path: { appId } }, { signal });
|
|
81
80
|
return data;
|
|
82
81
|
};
|
|
83
82
|
/**
|
|
@@ -100,8 +99,8 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
100
99
|
};
|
|
101
100
|
/**
|
|
102
101
|
* Deploys the app's current config version as a new immutable deployment, promoting it unless
|
|
103
|
-
* `body.promote` is `false` (a staged release never runs until promoted).
|
|
104
|
-
* back synchronously; readiness does not.
|
|
102
|
+
* `body.promote` is `false` (a staged release never runs until promoted). Pin an older config
|
|
103
|
+
* version with `body.configVersion`. The deployment comes back synchronously; readiness does not.
|
|
105
104
|
*/
|
|
106
105
|
const createDeployment = async (appId, body, options = {}) => {
|
|
107
106
|
const { data } = await client.post("/apps/{appId}/deployments", {
|
|
@@ -110,9 +109,17 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
110
109
|
}, writeOptions(options));
|
|
111
110
|
return data;
|
|
112
111
|
};
|
|
113
|
-
/**
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
/**
|
|
113
|
+
* Deployment history, newest page first.
|
|
114
|
+
*
|
|
115
|
+
* - `query.archived` filters on whether the deployment was deleted; omitting it returns both.
|
|
116
|
+
* - A deleted deployment keeps its row — history outlives the workload.
|
|
117
|
+
*/
|
|
118
|
+
const getDeployments = async (appId, query = {}, signal) => {
|
|
119
|
+
const { data } = await client.get("/apps/{appId}/deployments", {
|
|
120
|
+
path: { appId },
|
|
121
|
+
query
|
|
122
|
+
}, { signal });
|
|
116
123
|
return data;
|
|
117
124
|
};
|
|
118
125
|
const getDeployment = async (appId, deploymentId, signal) => {
|
|
@@ -123,8 +130,8 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
123
130
|
return data;
|
|
124
131
|
};
|
|
125
132
|
/**
|
|
126
|
-
*
|
|
127
|
-
*
|
|
133
|
+
* Deletes the deployment: its running resources and credentials go, the row stays in history as
|
|
134
|
+
* `archived`. Rejected with a `409` while the app's `production` still names it.
|
|
128
135
|
*/
|
|
129
136
|
const deleteDeployment = async (appId, deploymentId, signal) => {
|
|
130
137
|
await client.delete("/apps/{appId}/deployments/{deploymentId}", { path: {
|
|
@@ -134,8 +141,8 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
134
141
|
};
|
|
135
142
|
/**
|
|
136
143
|
* Makes this deployment production — the same call rolls back, applied to an older one. The route
|
|
137
|
-
* switches only once the target serves, so the returned app's `production.
|
|
138
|
-
* `.
|
|
144
|
+
* switches only once the target serves, so the returned app's `production.desiredDeploymentId`
|
|
145
|
+
* and `.actualDeploymentId` differ until it converges.
|
|
139
146
|
*/
|
|
140
147
|
const promoteDeployment = async (appId, deploymentId, signal) => {
|
|
141
148
|
const { data } = await client.post("/apps/{appId}/deployments/{deploymentId}/promote", { path: {
|