Skip to content

Commit 31449cf

Browse files
committed
fix(openapi): add missing endpoint definitions for actor-run subresources and validate-input
Error: WARN Request OpenAPI validation error {"url":"/v2/actor-runs/{runId}/dataset","method":"GET","errors":[{"message":"not found","path":"/v2/actor-runs/{runId}/dataset"}]} Error: WARN Request OpenAPI validation error {"url":"/v2/actor-runs/{runId}/key-value-store","method":"GET","errors":[{"message":"not found","path":"/v2/actor-runs/{runId}/key-value-store"}]} Error: WARN Request OpenAPI validation error {"url":"/v2/actor-runs/{runId}/log","method":"GET","errors":[{"message":"not found","path":"/v2/actor-runs/{runId}/log"}]} Error: WARN Request OpenAPI validation error {"url":"/v2/actor-runs/{runId}/request-queue","method":"GET","errors":[{"message":"not found","path":"/v2/actor-runs/{runId}/request-queue"}]} Error: WARN Request OpenAPI validation error {"url":"/v2/acts/{actorId}/validate-input","method":"POST","errors":[{"message":"not found","path":"/v2/acts/{actorId}/validate-input"}]} Files: apify-api/openapi/paths/actor-runs/actor-runs@{runId}@dataset.yaml:1, apify-api/openapi/paths/actor-runs/actor-runs@{runId}@key-value-store.yaml:1, apify-api/openapi/paths/actor-runs/actor-runs@{runId}@log.yaml:1, apify-api/openapi/paths/actor-runs/actor-runs@{runId}@request-queue.yaml:1, apify-api/openapi/paths/actors/acts@{actorId}@validate-input.yaml:1, apify-api/openapi/openapi.yaml:522 Root cause: These endpoints exist in apify-core but had no corresponding OpenAPI path definitions. The actor-run subresource endpoints (dataset, key-value-store, log, request-queue) proxy to their respective storage endpoints. The validate-input endpoint validates actor input against the build's input schema. Reference: https://github.com/apify/apify-core/tree/e8976db3b5b2476d2f01af1a84d4268fc61e839f/src/api/src/routes/routes_config.ts#L724
1 parent dad65d7 commit 31449cf

6 files changed

Lines changed: 230 additions & 0 deletions

apify-api/openapi/openapi.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,8 @@ paths:
520520
$ref: "paths/actors/acts@{actorId}@runs@{runId}@abort.yaml"
521521
"/v2/acts/{actorId}/runs/{runId}/metamorph":
522522
$ref: "paths/actors/acts@{actorId}@runs@{runId}@metamorph.yaml"
523+
"/v2/acts/{actorId}/validate-input":
524+
$ref: "paths/actors/acts@{actorId}@validate-input.yaml"
523525
/v2/actor-tasks:
524526
$ref: paths/actor-tasks/actor-tasks.yaml
525527
"/v2/actor-tasks/{actorTaskId}":
@@ -550,6 +552,14 @@ paths:
550552
$ref: paths/actor-runs/actor-runs@{runId}@resurrect.yaml
551553
"/v2/actor-runs/{runId}/charge":
552554
$ref: paths/actor-runs/actor-runs@{runId}@charge.yaml
555+
"/v2/actor-runs/{runId}/dataset":
556+
$ref: paths/actor-runs/actor-runs@{runId}@dataset.yaml
557+
"/v2/actor-runs/{runId}/key-value-store":
558+
$ref: paths/actor-runs/actor-runs@{runId}@key-value-store.yaml
559+
"/v2/actor-runs/{runId}/log":
560+
$ref: paths/actor-runs/actor-runs@{runId}@log.yaml
561+
"/v2/actor-runs/{runId}/request-queue":
562+
$ref: paths/actor-runs/actor-runs@{runId}@request-queue.yaml
553563
/v2/actor-builds:
554564
$ref: paths/actor-builds/actor-builds.yaml
555565
"/v2/actor-builds/{buildId}":
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
get:
2+
tags:
3+
- Actor runs
4+
summary: Get default dataset
5+
description: |
6+
Returns the default dataset associated with an Actor run.
7+
8+
This endpoint is a shortcut for getting the run's `defaultDatasetId` and then using the
9+
[Get dataset](/api/v2/dataset-get) endpoint.
10+
11+
This endpoint has the same response as the [Get dataset](/api/v2/dataset-get) endpoint.
12+
operationId: actorRun_dataset_get
13+
parameters:
14+
- $ref: "../../components/parameters/runAndBuildParameters.yaml#/runId"
15+
responses:
16+
"200":
17+
description: ""
18+
headers: {}
19+
content:
20+
application/json:
21+
schema:
22+
$ref: ../../components/schemas/datasets/DatasetResponse.yaml
23+
"400":
24+
$ref: ../../components/responses/BadRequest.yaml
25+
"401":
26+
$ref: ../../components/responses/Unauthorized.yaml
27+
"403":
28+
$ref: ../../components/responses/Forbidden.yaml
29+
"404":
30+
$ref: ../../components/responses/NotFound.yaml
31+
"405":
32+
$ref: ../../components/responses/MethodNotAllowed.yaml
33+
"429":
34+
$ref: ../../components/responses/TooManyRequests.yaml
35+
deprecated: false
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
get:
2+
tags:
3+
- Actor runs
4+
summary: Get default key-value store
5+
description: |
6+
Returns the default key-value store associated with an Actor run.
7+
8+
This endpoint is a shortcut for getting the run's `defaultKeyValueStoreId` and then using the
9+
[Get store](/api/v2/keyValueStore-get) endpoint.
10+
11+
This endpoint has the same response as the [Get store](/api/v2/keyValueStore-get) endpoint.
12+
operationId: actorRun_keyValueStore_get
13+
parameters:
14+
- $ref: "../../components/parameters/runAndBuildParameters.yaml#/runId"
15+
responses:
16+
"200":
17+
description: ""
18+
headers: {}
19+
content:
20+
application/json:
21+
schema:
22+
$ref: ../../components/schemas/key-value-stores/KeyValueStoreResponse.yaml
23+
"400":
24+
$ref: ../../components/responses/BadRequest.yaml
25+
"401":
26+
$ref: ../../components/responses/Unauthorized.yaml
27+
"403":
28+
$ref: ../../components/responses/Forbidden.yaml
29+
"404":
30+
$ref: ../../components/responses/NotFound.yaml
31+
"405":
32+
$ref: ../../components/responses/MethodNotAllowed.yaml
33+
"429":
34+
$ref: ../../components/responses/TooManyRequests.yaml
35+
deprecated: false
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
get:
2+
tags:
3+
- Actor runs
4+
summary: Get log
5+
description: |
6+
Returns the log for an Actor run.
7+
8+
This endpoint is a shortcut for getting the run's log using the
9+
[Get log](/api/v2/log-get) endpoint with the run ID.
10+
11+
This endpoint has the same response as the [Get log](/api/v2/log-get) endpoint.
12+
operationId: actorRun_log_get
13+
parameters:
14+
- $ref: "../../components/parameters/runAndBuildParameters.yaml#/runId"
15+
- $ref: "../../components/parameters/logOptions.yaml#/stream"
16+
- $ref: "../../components/parameters/logOptions.yaml#/download"
17+
- name: raw
18+
in: query
19+
description: |
20+
If `true` or `1`, the logs will be kept verbatim. By default, the API removes
21+
ANSI escape codes from the logs, keeping only printable characters.
22+
required: false
23+
style: form
24+
explode: true
25+
schema:
26+
type: boolean
27+
example: false
28+
responses:
29+
"200":
30+
description: ""
31+
headers: {}
32+
content:
33+
text/plain:
34+
schema:
35+
type: string
36+
example: |
37+
2017-07-14T06:00:49.733Z Application started.
38+
2017-07-14T06:00:49.741Z Input: { test: 123 }
39+
2017-07-14T06:00:49.752Z Some useful debug information follows.
40+
example: |
41+
2017-07-14T06:00:49.733Z Application started.
42+
2017-07-14T06:00:49.741Z Input: { test: 123 }
43+
2017-07-14T06:00:49.752Z Some useful debug information follows.
44+
"400":
45+
$ref: ../../components/responses/BadRequest.yaml
46+
"401":
47+
$ref: ../../components/responses/Unauthorized.yaml
48+
"403":
49+
$ref: ../../components/responses/Forbidden.yaml
50+
"404":
51+
$ref: ../../components/responses/NotFound.yaml
52+
"405":
53+
$ref: ../../components/responses/MethodNotAllowed.yaml
54+
"429":
55+
$ref: ../../components/responses/TooManyRequests.yaml
56+
deprecated: false
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
get:
2+
tags:
3+
- Actor runs
4+
summary: Get default request queue
5+
description: |
6+
Returns the default request queue associated with an Actor run.
7+
8+
This endpoint is a shortcut for getting the run's `defaultRequestQueueId` and then using the
9+
[Get request queue](/api/v2/requestQueue-get) endpoint.
10+
11+
This endpoint has the same response as the [Get request queue](/api/v2/requestQueue-get) endpoint.
12+
operationId: actorRun_requestQueue_get
13+
parameters:
14+
- $ref: "../../components/parameters/runAndBuildParameters.yaml#/runId"
15+
responses:
16+
"200":
17+
description: ""
18+
headers: {}
19+
content:
20+
application/json:
21+
schema:
22+
$ref: ../../components/schemas/request-queues/RequestQueueResponse.yaml
23+
"400":
24+
$ref: ../../components/responses/BadRequest.yaml
25+
"401":
26+
$ref: ../../components/responses/Unauthorized.yaml
27+
"403":
28+
$ref: ../../components/responses/Forbidden.yaml
29+
"404":
30+
$ref: ../../components/responses/NotFound.yaml
31+
"405":
32+
$ref: ../../components/responses/MethodNotAllowed.yaml
33+
"429":
34+
$ref: ../../components/responses/TooManyRequests.yaml
35+
deprecated: false
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
post:
2+
tags:
3+
- Actors
4+
summary: Validate input
5+
description: |
6+
Validates the provided input against the Actor's input schema for the specified build.
7+
8+
The endpoint checks whether the JSON payload conforms to the input schema
9+
defined in the Actor's build. If no `build` query parameter is provided,
10+
the `latest` build tag is used by default.
11+
operationId: act_validateInput_post
12+
security: []
13+
parameters:
14+
- $ref: "../../components/parameters/runAndBuildParameters.yaml#/actorId"
15+
- name: build
16+
in: query
17+
description: |
18+
Optional tag or number of the Actor build to use for input schema validation.
19+
By default, the `latest` build tag is used.
20+
required: false
21+
style: form
22+
explode: true
23+
schema:
24+
type: string
25+
example: latest
26+
requestBody:
27+
description: JSON input to validate against the Actor's input schema.
28+
content:
29+
application/json:
30+
schema:
31+
type: object
32+
required: true
33+
responses:
34+
"200":
35+
description: ""
36+
headers: {}
37+
content:
38+
application/json:
39+
schema:
40+
type: object
41+
required:
42+
- valid
43+
properties:
44+
valid:
45+
type: boolean
46+
description: Whether the input is valid according to the Actor's input schema.
47+
"400":
48+
$ref: ../../components/responses/BadRequest.yaml
49+
"404":
50+
$ref: ../../components/responses/NotFound.yaml
51+
"405":
52+
$ref: ../../components/responses/MethodNotAllowed.yaml
53+
"413":
54+
$ref: ../../components/responses/PayloadTooLarge.yaml
55+
"415":
56+
$ref: ../../components/responses/UnsupportedMediaType.yaml
57+
"429":
58+
$ref: ../../components/responses/TooManyRequests.yaml
59+
deprecated: false

0 commit comments

Comments
 (0)