@nosana/api 2.12.0 → 2.13.2
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/README.md +35 -0
- package/dist/client/createClient.d.ts +5 -3
- package/dist/client/createClient.d.ts.map +1 -1
- package/dist/client/createClient.js +4 -2
- package/dist/client/createClient.js.map +1 -1
- package/dist/client/deployment-manager/schema.d.ts +166 -100
- package/dist/client/deployment-manager/schema.d.ts.map +1 -1
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/node/index.d.ts +23 -0
- package/dist/client/node/index.d.ts.map +1 -0
- package/dist/client/node/index.js +24 -0
- package/dist/client/node/index.js.map +1 -0
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +3 -0
- package/dist/defaults/index.js.map +1 -1
- package/dist/index.d.ts +18 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -3
- package/dist/index.js.map +1 -1
- package/dist/routes/auth/index.d.ts.map +1 -1
- package/dist/routes/auth/index.js +12 -0
- package/dist/routes/auth/index.js.map +1 -1
- package/dist/routes/auth/types.d.ts +8 -0
- package/dist/routes/auth/types.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.d.ts +9 -0
- package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.d.ts.map +1 -0
- package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.js +17 -0
- package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.js.map +1 -0
- package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.d.ts +7 -0
- package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.d.ts.map +1 -0
- package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.js +14 -0
- package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.js.map +1 -0
- package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.d.ts +9 -0
- package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.d.ts.map +1 -0
- package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.js +17 -0
- package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.js.map +1 -0
- package/dist/routes/deployments/deployment/actions/deploymentStream.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentStream.js +10 -30
- package/dist/routes/deployments/deployment/actions/deploymentStream.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/index.d.ts +3 -0
- package/dist/routes/deployments/deployment/actions/index.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/index.js +3 -0
- package/dist/routes/deployments/deployment/actions/index.js.map +1 -1
- package/dist/routes/deployments/deployment/createDeployment.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/createDeployment.js +68 -12
- package/dist/routes/deployments/deployment/createDeployment.js.map +1 -1
- package/dist/routes/deployments/types.d.ts +44 -10
- package/dist/routes/deployments/types.d.ts.map +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/jobs/index.d.ts +8 -2
- package/dist/routes/jobs/index.d.ts.map +1 -1
- package/dist/routes/jobs/index.js +64 -14
- package/dist/routes/jobs/index.js.map +1 -1
- package/dist/routes/jobs/types.d.ts +17 -1
- package/dist/routes/jobs/types.d.ts.map +1 -1
- package/dist/routes/node/__tests__/fixtures.d.ts +30 -0
- package/dist/routes/node/__tests__/fixtures.d.ts.map +1 -0
- package/dist/routes/node/__tests__/fixtures.js +38 -0
- package/dist/routes/node/__tests__/fixtures.js.map +1 -0
- package/dist/routes/node/actions/authorization.d.ts +4 -0
- package/dist/routes/node/actions/authorization.d.ts.map +1 -0
- package/dist/routes/node/actions/authorization.js +9 -0
- package/dist/routes/node/actions/authorization.js.map +1 -0
- package/dist/routes/node/actions/nodeInfo.d.ts +4 -0
- package/dist/routes/node/actions/nodeInfo.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeInfo.js +9 -0
- package/dist/routes/node/actions/nodeInfo.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/index.d.ts +14 -0
- package/dist/routes/node/actions/nodeJob/index.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/index.js +14 -0
- package/dist/routes/node/actions/nodeJob/index.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobDefinition.d.ts +4 -0
- package/dist/routes/node/actions/nodeJob/nodeJobDefinition.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobDefinition.js +9 -0
- package/dist/routes/node/actions/nodeJob/nodeJobDefinition.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.d.ts +4 -0
- package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.js +9 -0
- package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobGroup.d.ts +4 -0
- package/dist/routes/node/actions/nodeJob/nodeJobGroup.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobGroup.js +11 -0
- package/dist/routes/node/actions/nodeJob/nodeJobGroup.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobOperation.d.ts +3 -0
- package/dist/routes/node/actions/nodeJob/nodeJobOperation.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobOperation.js +9 -0
- package/dist/routes/node/actions/nodeJob/nodeJobOperation.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobOperations.d.ts +4 -0
- package/dist/routes/node/actions/nodeJob/nodeJobOperations.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobOperations.js +9 -0
- package/dist/routes/node/actions/nodeJob/nodeJobOperations.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobResults.d.ts +4 -0
- package/dist/routes/node/actions/nodeJob/nodeJobResults.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobResults.js +9 -0
- package/dist/routes/node/actions/nodeJob/nodeJobResults.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobStats.d.ts +4 -0
- package/dist/routes/node/actions/nodeJob/nodeJobStats.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/nodeJobStats.js +9 -0
- package/dist/routes/node/actions/nodeJob/nodeJobStats.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.d.ts +3 -0
- package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.js +10 -0
- package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.d.ts +3 -0
- package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.js +10 -0
- package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.d.ts +4 -0
- package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.js +12 -0
- package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJob.d.ts +3 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJob.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJob.js +11 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJob.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.d.ts +3 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.js +10 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.js.map +1 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.d.ts +3 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.js +10 -0
- package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.js.map +1 -0
- package/dist/routes/node/actions/nodeJobSsh/index.d.ts +4 -0
- package/dist/routes/node/actions/nodeJobSsh/index.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJobSsh/index.js +4 -0
- package/dist/routes/node/actions/nodeJobSsh/index.js.map +1 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.d.ts +5 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.js +25 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.js.map +1 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.d.ts +4 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.js +12 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.js.map +1 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.d.ts +4 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.js +14 -0
- package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.js.map +1 -0
- package/dist/routes/node/actions/nodeJobStreams/index.d.ts +3 -0
- package/dist/routes/node/actions/nodeJobStreams/index.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJobStreams/index.js +3 -0
- package/dist/routes/node/actions/nodeJobStreams/index.js.map +1 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.d.ts +4 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.js +5 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.js.map +1 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.d.ts +4 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.js +6 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.js.map +1 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeStream.d.ts +5 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeStream.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeStream.js +10 -0
- package/dist/routes/node/actions/nodeJobStreams/nodeStream.js.map +1 -0
- package/dist/routes/node/actions/nodeSocket/index.d.ts +4 -0
- package/dist/routes/node/actions/nodeSocket/index.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeSocket/index.js +4 -0
- package/dist/routes/node/actions/nodeSocket/index.js.map +1 -0
- package/dist/routes/node/actions/nodeSocket/nodeJobLogs.d.ts +3 -0
- package/dist/routes/node/actions/nodeSocket/nodeJobLogs.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeSocket/nodeJobLogs.js +10 -0
- package/dist/routes/node/actions/nodeSocket/nodeJobLogs.js.map +1 -0
- package/dist/routes/node/actions/nodeSocket/nodeJobStatus.d.ts +3 -0
- package/dist/routes/node/actions/nodeSocket/nodeJobStatus.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeSocket/nodeJobStatus.js +5 -0
- package/dist/routes/node/actions/nodeSocket/nodeJobStatus.js.map +1 -0
- package/dist/routes/node/actions/nodeSocket/socket.d.ts +19 -0
- package/dist/routes/node/actions/nodeSocket/socket.d.ts.map +1 -0
- package/dist/routes/node/actions/nodeSocket/socket.js +38 -0
- package/dist/routes/node/actions/nodeSocket/socket.js.map +1 -0
- package/dist/routes/node/actions/terminal/grant.d.ts +21 -0
- package/dist/routes/node/actions/terminal/grant.d.ts.map +1 -0
- package/dist/routes/node/actions/terminal/grant.js +28 -0
- package/dist/routes/node/actions/terminal/grant.js.map +1 -0
- package/dist/routes/node/actions/terminal/openTerminal.d.ts +4 -0
- package/dist/routes/node/actions/terminal/openTerminal.d.ts.map +1 -0
- package/dist/routes/node/actions/terminal/openTerminal.js +22 -0
- package/dist/routes/node/actions/terminal/openTerminal.js.map +1 -0
- package/dist/routes/node/actions/terminal/session.d.ts +7 -0
- package/dist/routes/node/actions/terminal/session.d.ts.map +1 -0
- package/dist/routes/node/actions/terminal/session.js +133 -0
- package/dist/routes/node/actions/terminal/session.js.map +1 -0
- package/dist/routes/node/createNodeJob.d.ts +3 -0
- package/dist/routes/node/createNodeJob.d.ts.map +1 -0
- package/dist/routes/node/createNodeJob.js +39 -0
- package/dist/routes/node/createNodeJob.js.map +1 -0
- package/dist/routes/node/index.d.ts +8 -0
- package/dist/routes/node/index.d.ts.map +1 -0
- package/dist/routes/node/index.js +21 -0
- package/dist/routes/node/index.js.map +1 -0
- package/dist/routes/node/types.d.ts +148 -0
- package/dist/routes/node/types.d.ts.map +1 -0
- package/dist/routes/node/types.js +2 -0
- package/dist/routes/node/types.js.map +1 -0
- package/dist/types.d.ts +31 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/eventStream.d.ts +15 -0
- package/dist/utils/eventStream.d.ts.map +1 -0
- package/dist/utils/eventStream.js +36 -0
- package/dist/utils/eventStream.js.map +1 -0
- package/dist/utils/json.d.ts +3 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +10 -0
- package/dist/utils/json.js.map +1 -0
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -151,6 +151,9 @@ await vault.topup({ NOS: 100 });
|
|
|
151
151
|
| `updateMarket` | `market: string` | `Promise<void>` |
|
|
152
152
|
| `duplicate` | `options: DeploymentDuplicateOptions` | `Promise<Deployment>` |
|
|
153
153
|
| `generateAuthHeader` | — | `Promise<unknown>` |
|
|
154
|
+
| `ssh.keys` | — | `Promise<string[]>` |
|
|
155
|
+
| `ssh.add` | `publicKeys: string \| string[]` | `Promise<DeploymentUpdateSshKeysResult>` |
|
|
156
|
+
| `ssh.remove` | `publicKeys: string \| string[]` | `Promise<DeploymentUpdateSshKeysResult>` |
|
|
154
157
|
|
|
155
158
|
### `api.templates` — Deployment Templates
|
|
156
159
|
|
|
@@ -179,6 +182,38 @@ await vault.topup({ NOS: 100 });
|
|
|
179
182
|
| `getTemplatePerformance` | `nodeId: string` | `Promise<Record<string, unknown>>` |
|
|
180
183
|
| `getBenchmarkSummary` | `request?: BenchmarkSummaryRequest` | `Promise<Record<string, unknown>>` |
|
|
181
184
|
|
|
185
|
+
### `api.node` / `api.jobs.get(job)` — Node access
|
|
186
|
+
|
|
187
|
+
A node verifies the job owner's signature, and the client manager signs on the
|
|
188
|
+
caller's behalf — so node access works under both wallet and API-key auth. It has
|
|
189
|
+
the same shape unauthenticated, but then the node refuses what needs a signer.
|
|
190
|
+
|
|
191
|
+
| Call | Parameters | Returns |
|
|
192
|
+
|--------|-----------|---------|
|
|
193
|
+
| `node(address)` | `address: string` | `Promise<NodeInfo>` — a node's public info |
|
|
194
|
+
| `jobs.get(job)` | `job: string` | `Promise<Job & NodeJobApi>` — the job's current indexer state flat-merged with its node job API |
|
|
195
|
+
|
|
196
|
+
`jobs.get` returns the job's state with its node job API on the same object, so
|
|
197
|
+
`(await api.jobs.get(id)).ssh.add(key)` works. Until a node picks the job up, the
|
|
198
|
+
node methods are present but fail saying so.
|
|
199
|
+
|
|
200
|
+
**Node job methods** (on `await api.jobs.get(job)`, alongside the job's indexer fields):
|
|
201
|
+
|
|
202
|
+
| Method | Parameters | Returns |
|
|
203
|
+
|--------|-----------|---------|
|
|
204
|
+
| `definition` / `setDefinition` | — / `definition: JobDefinition` | `Promise<JobDefinition>` / `Promise<void>` |
|
|
205
|
+
| `results` | — | `Promise<FlowState>` |
|
|
206
|
+
| `operations` / `operation` / `group` | — / `op: string` / `group?: string` | `Promise<NodeOperationStatuses>` |
|
|
207
|
+
| `restartGroup` / `restartOperation` | `group: string` / `group: string, op: string` | `Promise<void>` |
|
|
208
|
+
| `stopGroup` / `stopOperation` / `stop` | `group: string` / `group: string, op: string` / — | `Promise<void>` |
|
|
209
|
+
| `endpoints` | — | `Promise<NodeJobEndpoints>` |
|
|
210
|
+
| `stats` | `query?: NodeStatsQuery` | `Promise<NodeTaskStat[]>` |
|
|
211
|
+
| `streamInfo` / `streamStats` | `handlers, query?` | `NodeStreamSubscription` |
|
|
212
|
+
| `logs` / `status` | `handlers, filter?, options?` | `NodeStreamSubscription` |
|
|
213
|
+
| `ssh.keys` / `ssh.add` / `ssh.remove` | — / `publicKey, { expiresAt? }` / `publicKey` | see `NodeJobSsh` |
|
|
214
|
+
| `ssh.command` | `options?: SshCommandOptions` | `SshConnectionDescriptor` |
|
|
215
|
+
| `terminal` | `options: NodeTerminalOptions` | `Promise<TerminalSession>` |
|
|
216
|
+
|
|
182
217
|
### `api.stats` — Platform Statistics
|
|
183
218
|
|
|
184
219
|
| Method | Parameters | Returns |
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { AuthenticatedClient, ClientConnection } from './type.utils.js';
|
|
2
|
-
import type { ApiKeyAuth,
|
|
2
|
+
import type { ApiKeyAuth, SignedHeaderAuth, CreateNosanaApiOptions } from '../types.js';
|
|
3
|
+
/** The message signer auth signs on every request; nodes accept it on their sockets too. */
|
|
4
|
+
export declare const NOSANA_API_AUTH_MESSAGE = "NosanaApiAuthentication";
|
|
3
5
|
/**
|
|
4
6
|
* The headers the client sends on every request. Resolved per call: signer auth
|
|
5
7
|
* signs a fresh message each time.
|
|
6
8
|
*/
|
|
7
|
-
export declare function authHeaders(authParams: ApiKeyAuth |
|
|
9
|
+
export declare function authHeaders(authParams: ApiKeyAuth | SignedHeaderAuth | undefined): Promise<Record<string, string>>;
|
|
8
10
|
/**
|
|
9
11
|
* Creates an authenticated OpenAPI client with shared auth middleware.
|
|
10
12
|
* Used as the base factory for all service-specific API clients.
|
|
@@ -14,7 +16,7 @@ export declare function authHeaders(authParams: ApiKeyAuth | SignerAuth | undefi
|
|
|
14
16
|
* differently from an ordinary request. Services that never stream simply
|
|
15
17
|
* leave it unexposed in their return types.
|
|
16
18
|
*/
|
|
17
|
-
export declare function createAuthenticatedClient<Paths extends Record<string, any>>(baseUrl: string, authParams: ApiKeyAuth |
|
|
19
|
+
export declare function createAuthenticatedClient<Paths extends Record<string, any>>(baseUrl: string, authParams: ApiKeyAuth | SignedHeaderAuth | undefined, options?: Pick<CreateNosanaApiOptions, 'include_credentials'>, defaultHeaders?: Record<string, string>): AuthenticatedClient<Paths> & {
|
|
18
20
|
connection: ClientConnection;
|
|
19
21
|
};
|
|
20
22
|
//# sourceMappingURL=createClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EAEnB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EAEnB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAExF,4FAA4F;AAC5F,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,GACpD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAWjC;AAED;;;;;;;;GAQG;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzE,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,EACrD,OAAO,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,EAC7D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,mBAAmB,CAAC,KAAK,CAAC,GAAG;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,CAgC/D"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import createClient from 'openapi-fetch';
|
|
2
|
+
/** The message signer auth signs on every request; nodes accept it on their sockets too. */
|
|
3
|
+
export const NOSANA_API_AUTH_MESSAGE = 'NosanaApiAuthentication';
|
|
2
4
|
/**
|
|
3
5
|
* The headers the client sends on every request. Resolved per call: signer auth
|
|
4
6
|
* signs a fresh message each time.
|
|
@@ -10,8 +12,8 @@ export async function authHeaders(authParams) {
|
|
|
10
12
|
return { Authorization: `Bearer ${authParams}` };
|
|
11
13
|
}
|
|
12
14
|
return {
|
|
13
|
-
'x-user-id': authParams.identifier,
|
|
14
|
-
Authorization: await authParams.generate(
|
|
15
|
+
...(authParams.identifier ? { 'x-user-id': authParams.identifier } : {}),
|
|
16
|
+
Authorization: await authParams.generate(NOSANA_API_AUTH_MESSAGE),
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAUzC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,
|
|
1
|
+
{"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAUzC,4FAA4F;AAC5F,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAqD;IAErD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,EAAE,aAAa,EAAE,UAAU,UAAU,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,OAAO;QACL,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,aAAa,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAClE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,8DAA8D;AAC9D,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,UAAqD,EACrD,OAA6D,EAC7D,cAAuC;IAEvC,MAAM,cAAc,GAAe;QACjC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC1E,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAA4B;QACrD,OAAO;QACP,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3B,UAAU,EAAE;YACV,OAAO;YACP,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACpB,GAAG,cAAc;gBACjB,sEAAsE;gBACtE,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;aACvE,CAAC;YACF,GAAG,CAAC,OAAO,EAAE,mBAAmB;gBAC9B,CAAC,CAAC,EAAE,WAAW,EAAE,SAAkB,EAAE;gBACrC,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1001,8 +1001,172 @@ export interface paths {
|
|
|
1001
1001
|
};
|
|
1002
1002
|
};
|
|
1003
1003
|
put?: never;
|
|
1004
|
-
|
|
1005
|
-
|
|
1004
|
+
/** @description Grant one or more SSH public keys access to the deployment's jobs. */
|
|
1005
|
+
post: {
|
|
1006
|
+
parameters: {
|
|
1007
|
+
query?: never;
|
|
1008
|
+
header: {
|
|
1009
|
+
"x-user-id": string;
|
|
1010
|
+
/** @description Signed authentication message, */
|
|
1011
|
+
authorization: string;
|
|
1012
|
+
/** @description Nosana API key */
|
|
1013
|
+
"x-nosana-api"?: string;
|
|
1014
|
+
};
|
|
1015
|
+
path: {
|
|
1016
|
+
deployment: components["schemas"]["PublicKey"];
|
|
1017
|
+
};
|
|
1018
|
+
cookie?: never;
|
|
1019
|
+
};
|
|
1020
|
+
requestBody: {
|
|
1021
|
+
content: {
|
|
1022
|
+
"application/json": {
|
|
1023
|
+
/** @description SSH public keys to grant. Keys already present (same type and material) are left as they are; the deployment holds at most 10. */
|
|
1024
|
+
public_keys: string[];
|
|
1025
|
+
};
|
|
1026
|
+
};
|
|
1027
|
+
};
|
|
1028
|
+
responses: {
|
|
1029
|
+
/** @description The deployment's SSH keys after the change. Check `jobs` for nodes that rejected or did not receive the new keys. */
|
|
1030
|
+
200: {
|
|
1031
|
+
headers: {
|
|
1032
|
+
[name: string]: unknown;
|
|
1033
|
+
};
|
|
1034
|
+
content: {
|
|
1035
|
+
"application/json": {
|
|
1036
|
+
public_keys: string[];
|
|
1037
|
+
/** Format: date-time */
|
|
1038
|
+
updated_at: string;
|
|
1039
|
+
/** @description Per running job whose node was contacted to apply the change. Empty when nothing changed or nothing is running. */
|
|
1040
|
+
jobs: {
|
|
1041
|
+
job: string;
|
|
1042
|
+
node: string;
|
|
1043
|
+
status: "authorized" | "revoked" | "failed";
|
|
1044
|
+
error?: string;
|
|
1045
|
+
}[];
|
|
1046
|
+
};
|
|
1047
|
+
};
|
|
1048
|
+
};
|
|
1049
|
+
/** @description Bad Request. A key is not a valid OpenSSH public key, or the set exceeds the limits. */
|
|
1050
|
+
400: {
|
|
1051
|
+
headers: {
|
|
1052
|
+
[name: string]: unknown;
|
|
1053
|
+
};
|
|
1054
|
+
content: {
|
|
1055
|
+
"application/json": components["schemas"]["Error"];
|
|
1056
|
+
};
|
|
1057
|
+
};
|
|
1058
|
+
/** @description Unauthorized. Invalid or missing authentication. */
|
|
1059
|
+
401: {
|
|
1060
|
+
headers: {
|
|
1061
|
+
[name: string]: unknown;
|
|
1062
|
+
};
|
|
1063
|
+
content: {
|
|
1064
|
+
"application/json": components["schemas"]["Error"];
|
|
1065
|
+
};
|
|
1066
|
+
};
|
|
1067
|
+
/** @description Deployment not found. */
|
|
1068
|
+
404: {
|
|
1069
|
+
headers: {
|
|
1070
|
+
[name: string]: unknown;
|
|
1071
|
+
};
|
|
1072
|
+
content: {
|
|
1073
|
+
"application/json": components["schemas"]["Error"];
|
|
1074
|
+
};
|
|
1075
|
+
};
|
|
1076
|
+
/** @description Internal Server Error. */
|
|
1077
|
+
500: {
|
|
1078
|
+
headers: {
|
|
1079
|
+
[name: string]: unknown;
|
|
1080
|
+
};
|
|
1081
|
+
content: {
|
|
1082
|
+
"application/json": components["schemas"]["Error"];
|
|
1083
|
+
};
|
|
1084
|
+
};
|
|
1085
|
+
};
|
|
1086
|
+
};
|
|
1087
|
+
/** @description Revoke one or more SSH public keys from the deployment's jobs. */
|
|
1088
|
+
delete: {
|
|
1089
|
+
parameters: {
|
|
1090
|
+
query?: never;
|
|
1091
|
+
header: {
|
|
1092
|
+
"x-user-id": string;
|
|
1093
|
+
/** @description Signed authentication message, */
|
|
1094
|
+
authorization: string;
|
|
1095
|
+
/** @description Nosana API key */
|
|
1096
|
+
"x-nosana-api"?: string;
|
|
1097
|
+
};
|
|
1098
|
+
path: {
|
|
1099
|
+
deployment: components["schemas"]["PublicKey"];
|
|
1100
|
+
};
|
|
1101
|
+
cookie?: never;
|
|
1102
|
+
};
|
|
1103
|
+
requestBody: {
|
|
1104
|
+
content: {
|
|
1105
|
+
"application/json": {
|
|
1106
|
+
/** @description SSH public keys to revoke. A key is matched by type and material, so a differing comment still revokes it. */
|
|
1107
|
+
public_keys: string[];
|
|
1108
|
+
};
|
|
1109
|
+
};
|
|
1110
|
+
};
|
|
1111
|
+
responses: {
|
|
1112
|
+
/** @description The deployment's SSH keys after the change. Check `jobs` for nodes that did not apply the revocation. */
|
|
1113
|
+
200: {
|
|
1114
|
+
headers: {
|
|
1115
|
+
[name: string]: unknown;
|
|
1116
|
+
};
|
|
1117
|
+
content: {
|
|
1118
|
+
"application/json": {
|
|
1119
|
+
public_keys: string[];
|
|
1120
|
+
/** Format: date-time */
|
|
1121
|
+
updated_at: string;
|
|
1122
|
+
/** @description Per running job whose node was contacted to apply the change. Empty when nothing changed or nothing is running. */
|
|
1123
|
+
jobs: {
|
|
1124
|
+
job: string;
|
|
1125
|
+
node: string;
|
|
1126
|
+
status: "authorized" | "revoked" | "failed";
|
|
1127
|
+
error?: string;
|
|
1128
|
+
}[];
|
|
1129
|
+
};
|
|
1130
|
+
};
|
|
1131
|
+
};
|
|
1132
|
+
/** @description Bad Request. A key is not a valid OpenSSH public key. */
|
|
1133
|
+
400: {
|
|
1134
|
+
headers: {
|
|
1135
|
+
[name: string]: unknown;
|
|
1136
|
+
};
|
|
1137
|
+
content: {
|
|
1138
|
+
"application/json": components["schemas"]["Error"];
|
|
1139
|
+
};
|
|
1140
|
+
};
|
|
1141
|
+
/** @description Unauthorized. Invalid or missing authentication. */
|
|
1142
|
+
401: {
|
|
1143
|
+
headers: {
|
|
1144
|
+
[name: string]: unknown;
|
|
1145
|
+
};
|
|
1146
|
+
content: {
|
|
1147
|
+
"application/json": components["schemas"]["Error"];
|
|
1148
|
+
};
|
|
1149
|
+
};
|
|
1150
|
+
/** @description Deployment not found. */
|
|
1151
|
+
404: {
|
|
1152
|
+
headers: {
|
|
1153
|
+
[name: string]: unknown;
|
|
1154
|
+
};
|
|
1155
|
+
content: {
|
|
1156
|
+
"application/json": components["schemas"]["Error"];
|
|
1157
|
+
};
|
|
1158
|
+
};
|
|
1159
|
+
/** @description Internal Server Error. */
|
|
1160
|
+
500: {
|
|
1161
|
+
headers: {
|
|
1162
|
+
[name: string]: unknown;
|
|
1163
|
+
};
|
|
1164
|
+
content: {
|
|
1165
|
+
"application/json": components["schemas"]["Error"];
|
|
1166
|
+
};
|
|
1167
|
+
};
|
|
1168
|
+
};
|
|
1169
|
+
};
|
|
1006
1170
|
options?: never;
|
|
1007
1171
|
head?: never;
|
|
1008
1172
|
patch?: never;
|
|
@@ -1889,104 +2053,6 @@ export interface paths {
|
|
|
1889
2053
|
};
|
|
1890
2054
|
trace?: never;
|
|
1891
2055
|
};
|
|
1892
|
-
"/deployments/{deployment}/update-ssh-keys": {
|
|
1893
|
-
parameters: {
|
|
1894
|
-
query?: never;
|
|
1895
|
-
header?: never;
|
|
1896
|
-
path?: never;
|
|
1897
|
-
cookie?: never;
|
|
1898
|
-
};
|
|
1899
|
-
get?: never;
|
|
1900
|
-
put?: never;
|
|
1901
|
-
post?: never;
|
|
1902
|
-
delete?: never;
|
|
1903
|
-
options?: never;
|
|
1904
|
-
head?: never;
|
|
1905
|
-
/** @description Replace the deployment's SSH public keys. The new set is stored on the deployment (not on a revision — no new revision or restart) and injected into every job posted from now on. New keys are also authorized on the node of every job currently running; removed keys stop working only when a job restarts. */
|
|
1906
|
-
patch: {
|
|
1907
|
-
parameters: {
|
|
1908
|
-
query?: never;
|
|
1909
|
-
header: {
|
|
1910
|
-
"x-user-id": string;
|
|
1911
|
-
/** @description Signed authentication message, */
|
|
1912
|
-
authorization: string;
|
|
1913
|
-
/** @description Nosana API key */
|
|
1914
|
-
"x-nosana-api"?: string;
|
|
1915
|
-
};
|
|
1916
|
-
path: {
|
|
1917
|
-
deployment: components["schemas"]["PublicKey"];
|
|
1918
|
-
};
|
|
1919
|
-
cookie?: never;
|
|
1920
|
-
};
|
|
1921
|
-
requestBody: {
|
|
1922
|
-
content: {
|
|
1923
|
-
"application/json": {
|
|
1924
|
-
/** @description The complete set of SSH public keys allowed to reach this deployment's jobs (at most 10). Replaces the current set; an empty array revokes SSH access. */
|
|
1925
|
-
public_keys: string[];
|
|
1926
|
-
};
|
|
1927
|
-
};
|
|
1928
|
-
};
|
|
1929
|
-
responses: {
|
|
1930
|
-
/** @description SSH keys updated. Check `jobs` for nodes that rejected or did not receive the new keys. */
|
|
1931
|
-
200: {
|
|
1932
|
-
headers: {
|
|
1933
|
-
[name: string]: unknown;
|
|
1934
|
-
};
|
|
1935
|
-
content: {
|
|
1936
|
-
"application/json": {
|
|
1937
|
-
public_keys: string[];
|
|
1938
|
-
/** Format: date-time */
|
|
1939
|
-
updated_at: string;
|
|
1940
|
-
/** @description Per running job: whether its node authorized the new keys. Empty when the new set is empty — a revocation cannot reach running jobs. */
|
|
1941
|
-
jobs: {
|
|
1942
|
-
job: string;
|
|
1943
|
-
node: string;
|
|
1944
|
-
status: "authorized" | "failed";
|
|
1945
|
-
error?: string;
|
|
1946
|
-
}[];
|
|
1947
|
-
};
|
|
1948
|
-
};
|
|
1949
|
-
};
|
|
1950
|
-
/** @description Bad Request. A key is not a valid OpenSSH public key, or the set exceeds the limits. */
|
|
1951
|
-
400: {
|
|
1952
|
-
headers: {
|
|
1953
|
-
[name: string]: unknown;
|
|
1954
|
-
};
|
|
1955
|
-
content: {
|
|
1956
|
-
"application/json": components["schemas"]["Error"];
|
|
1957
|
-
};
|
|
1958
|
-
};
|
|
1959
|
-
/** @description Unauthorized. Invalid or missing authentication. */
|
|
1960
|
-
401: {
|
|
1961
|
-
headers: {
|
|
1962
|
-
[name: string]: unknown;
|
|
1963
|
-
};
|
|
1964
|
-
content: {
|
|
1965
|
-
"application/json": "Unauthorized";
|
|
1966
|
-
};
|
|
1967
|
-
};
|
|
1968
|
-
/** @description Deployment not found. */
|
|
1969
|
-
404: {
|
|
1970
|
-
headers: {
|
|
1971
|
-
[name: string]: unknown;
|
|
1972
|
-
};
|
|
1973
|
-
content: {
|
|
1974
|
-
"application/json": components["schemas"]["Error"];
|
|
1975
|
-
};
|
|
1976
|
-
};
|
|
1977
|
-
/** @description Internal Server Error. */
|
|
1978
|
-
500: {
|
|
1979
|
-
headers: {
|
|
1980
|
-
[name: string]: unknown;
|
|
1981
|
-
};
|
|
1982
|
-
content: {
|
|
1983
|
-
"application/json": components["schemas"]["Error"];
|
|
1984
|
-
};
|
|
1985
|
-
};
|
|
1986
|
-
};
|
|
1987
|
-
};
|
|
1988
|
-
trace?: never;
|
|
1989
|
-
};
|
|
1990
2056
|
"/deployments/{deployment}/update-timeout": {
|
|
1991
2057
|
parameters: {
|
|
1992
2058
|
query?: never;
|