apify-cli 0.19.3-beta.2 → 0.19.3-beta.3
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 +18 -18
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
- package/src/commands/actor/index.js +1 -1
- package/src/commands/actor/set-value.js +1 -1
- package/src/commands/call.js +4 -4
- package/src/commands/create.js +6 -6
- package/src/commands/init.js +3 -3
- package/src/commands/push.js +1 -1
- package/src/commands/run.js +4 -4
- package/src/commands/secrets/index.js +1 -1
- package/src/commands/vis.js +1 -1
- package/src/lib/create-utils.js +3 -3
- package/src/lib/utils.js +2 -2
package/README.md
CHANGED
|
@@ -280,7 +280,7 @@ This section contains printouts of `apify help` for all commands.
|
|
|
280
280
|
* [`apify actor:get-value KEY`](#apify-actorget-value-key)
|
|
281
281
|
* [`apify actor:push-data [ITEM]`](#apify-actorpush-data-item)
|
|
282
282
|
* [`apify actor:set-value KEY [VALUE]`](#apify-actorset-value-key-value)
|
|
283
|
-
* [`apify call [
|
|
283
|
+
* [`apify call [ACTORID]`](#apify-call-actorid)
|
|
284
284
|
* [`apify create [ACTORNAME]`](#apify-create-actorname)
|
|
285
285
|
* [`apify info`](#apify-info)
|
|
286
286
|
* [`apify init [ACTORNAME]`](#apify-init-actorname)
|
|
@@ -296,7 +296,7 @@ This section contains printouts of `apify help` for all commands.
|
|
|
296
296
|
|
|
297
297
|
## `apify actor`
|
|
298
298
|
|
|
299
|
-
Commands are designed to be used in
|
|
299
|
+
Commands are designed to be used in Actor runs. All commands are in PoC state, do not use in production environments.
|
|
300
300
|
|
|
301
301
|
```
|
|
302
302
|
USAGE
|
|
@@ -353,7 +353,7 @@ _See code: [src/commands/actor/push-data.js](https://github.com/apify/apify-cli/
|
|
|
353
353
|
|
|
354
354
|
## `apify actor:set-value KEY [VALUE]`
|
|
355
355
|
|
|
356
|
-
Sets or removes record into the default
|
|
356
|
+
Sets or removes record into the default key-value store associated with the Actor run.
|
|
357
357
|
|
|
358
358
|
```
|
|
359
359
|
USAGE
|
|
@@ -381,17 +381,17 @@ DESCRIPTION
|
|
|
381
381
|
|
|
382
382
|
_See code: [src/commands/actor/set-value.js](https://github.com/apify/apify-cli/blob/v0.19.3/src/commands/actor/set-value.js)_
|
|
383
383
|
|
|
384
|
-
## `apify call [
|
|
384
|
+
## `apify call [ACTORID]`
|
|
385
385
|
|
|
386
386
|
Runs a specific actor remotely on the Apify cloud platform.
|
|
387
387
|
|
|
388
388
|
```
|
|
389
389
|
USAGE
|
|
390
|
-
$ apify call [
|
|
390
|
+
$ apify call [ACTORID]
|
|
391
391
|
|
|
392
392
|
ARGUMENTS
|
|
393
|
-
|
|
394
|
-
|
|
393
|
+
ACTORID Name or ID of the actor to run (e.g. "apify/hello-world" or "E2jjCZBezvAZnX8Rb"). If not provided, the
|
|
394
|
+
command runs the remote actor specified in the ".actor/actor.json" file.
|
|
395
395
|
|
|
396
396
|
OPTIONS
|
|
397
397
|
-b, --build=build Tag or number of the build to run (e.g. "latest" or "1.2.34").
|
|
@@ -408,22 +408,22 @@ _See code: [src/commands/call.js](https://github.com/apify/apify-cli/blob/v0.19.
|
|
|
408
408
|
|
|
409
409
|
## `apify create [ACTORNAME]`
|
|
410
410
|
|
|
411
|
-
Creates a new
|
|
411
|
+
Creates a new Actor project directory from a selected boilerplate template.
|
|
412
412
|
|
|
413
413
|
```
|
|
414
414
|
USAGE
|
|
415
415
|
$ apify create [ACTORNAME]
|
|
416
416
|
|
|
417
417
|
ARGUMENTS
|
|
418
|
-
ACTORNAME Name of the
|
|
418
|
+
ACTORNAME Name of the Actor and its directory
|
|
419
419
|
|
|
420
420
|
OPTIONS
|
|
421
|
-
-t, --template=template Template for the
|
|
421
|
+
-t, --template=template Template for the Actor. If not provided, the command will prompt for it.
|
|
422
422
|
Visit
|
|
423
423
|
https://raw.githubusercontent.com/apify/actor-templates/master/templates/manifest.json to
|
|
424
424
|
find available template names.
|
|
425
425
|
|
|
426
|
-
--skip-dependency-install Skip installing
|
|
426
|
+
--skip-dependency-install Skip installing Actor dependencies.
|
|
427
427
|
```
|
|
428
428
|
|
|
429
429
|
_See code: [src/commands/create.js](https://github.com/apify/apify-cli/blob/v0.19.3/src/commands/create.js)_
|
|
@@ -444,14 +444,14 @@ _See code: [src/commands/info.js](https://github.com/apify/apify-cli/blob/v0.19.
|
|
|
444
444
|
|
|
445
445
|
## `apify init [ACTORNAME]`
|
|
446
446
|
|
|
447
|
-
Initializes a new
|
|
447
|
+
Initializes a new Actor project in an existing directory.
|
|
448
448
|
|
|
449
449
|
```
|
|
450
450
|
USAGE
|
|
451
451
|
$ apify init [ACTORNAME]
|
|
452
452
|
|
|
453
453
|
ARGUMENTS
|
|
454
|
-
ACTORNAME Name of the
|
|
454
|
+
ACTORNAME Name of the Actor. If not provided, you will be prompted for it.
|
|
455
455
|
|
|
456
456
|
OPTIONS
|
|
457
457
|
-y, --yes Automatic yes to prompts; assume "yes" as answer to all prompts. Note that in some cases, the command may
|
|
@@ -557,7 +557,7 @@ _See code: [src/commands/push.js](https://github.com/apify/apify-cli/blob/v0.19.
|
|
|
557
557
|
|
|
558
558
|
## `apify run`
|
|
559
559
|
|
|
560
|
-
Runs the
|
|
560
|
+
Runs the Actor locally in the current directory.
|
|
561
561
|
|
|
562
562
|
```
|
|
563
563
|
USAGE
|
|
@@ -575,8 +575,8 @@ OPTIONS
|
|
|
575
575
|
--purge-queue Deletes the local directory containing the default request queue before the run starts.
|
|
576
576
|
|
|
577
577
|
DESCRIPTION
|
|
578
|
-
It sets various APIFY_XYZ environment variables in order to provide a working execution environment for the
|
|
579
|
-
example, this causes the
|
|
578
|
+
It sets various APIFY_XYZ environment variables in order to provide a working execution environment for the Actor. For
|
|
579
|
+
example, this causes the Actor input, as well as all other data in key-value stores, datasets or request queues to be
|
|
580
580
|
stored in the "storage" directory, rather than on the Apify platform.
|
|
581
581
|
|
|
582
582
|
NOTE: You can override the command's default behavior for Node.js actors by overriding the "start" script in the
|
|
@@ -587,7 +587,7 @@ _See code: [src/commands/run.js](https://github.com/apify/apify-cli/blob/v0.19.3
|
|
|
587
587
|
|
|
588
588
|
## `apify secrets`
|
|
589
589
|
|
|
590
|
-
Manages secret values for
|
|
590
|
+
Manages secret values for Actor environment variables.
|
|
591
591
|
|
|
592
592
|
```
|
|
593
593
|
USAGE
|
|
@@ -657,7 +657,7 @@ ARGUMENTS
|
|
|
657
657
|
PATH Optional path to your INPUT_SCHEMA.json file. If not provided ./INPUT_SCHEMA.json is used.
|
|
658
658
|
|
|
659
659
|
DESCRIPTION
|
|
660
|
-
The input schema for the
|
|
660
|
+
The input schema for the Actor is used from these locations in order of preference.
|
|
661
661
|
The first one found is validated as it would be the one used on the Apify platform.
|
|
662
662
|
1. Directly embedded object in ".actor/actor.json" under 'input' key
|
|
663
663
|
2. Path to JSON file referenced in ".actor/actor.json" under 'input' key
|
package/oclif.manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"0.19.3","commands":{"call":{"id":"call","description":"Runs a specific actor remotely on the Apify cloud platform.\nThe Actor is run under your current Apify account. Therefore you need to be logged in by calling \"apify login\". It takes input for the Actor from the default local key-value store by default.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"build":{"name":"build","type":"option","char":"b","description":"Tag or number of the build to run (e.g. \"latest\" or \"1.2.34\").","required":false},"timeout":{"name":"timeout","type":"option","char":"t","description":"Timeout for the actor run in seconds. Zero value means there is no timeout.","required":false},"memory":{"name":"memory","type":"option","char":"m","description":"Amount of memory allocated for the actor run, in megabytes.","required":false},"wait-for-finish":{"name":"wait-for-finish","type":"option","char":"w","description":"Seconds for waiting to run to finish, if no value passed, it waits forever.","required":false}},"args":[{"name":"actId","description":"Name or ID of the actor to run (e.g. \"apify/hello-world\" or \"E2jjCZBezvAZnX8Rb\"). If not provided, the command runs the remote actor specified in the \".actor/actor.json\" file.","required":false}]},"check-version":{"id":"check-version","description":"Checks that installed Apify CLI version is up to date.","pluginName":"apify-cli","pluginType":"core","hidden":true,"aliases":["cv"],"flags":{"enforce-update":{"name":"enforce-update","type":"boolean","char":"e","description":"[Optional] Enforce version update from NPM","required":false,"allowNo":false}},"args":[]},"create":{"id":"create","description":"Creates a new actor project directory from a selected boilerplate template.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"template":{"name":"template","type":"option","char":"t","description":"Template for the actor. If not provided, the command will prompt for it.\nVisit https://raw.githubusercontent.com/apify/actor-templates/master/templates/manifest.json to find available template names.","required":false},"skip-dependency-install":{"name":"skip-dependency-install","type":"boolean","description":"Skip installing actor dependencies.","required":false,"allowNo":false},"template-archive-url":{"name":"template-archive-url","type":"option","description":"Actor template archive url. Useful for developing new templates.","hidden":true,"required":false}},"args":[{"name":"actorName","description":"Name of the actor and its directory","required":false}]},"edit-input-schema":{"id":"edit-input-schema","description":"Lets you edit your input schema that would be used on the platform in a visual input schema editor.","pluginName":"apify-cli","pluginType":"core","hidden":true,"aliases":["eis"],"flags":{},"args":[{"name":"path","description":"Optional path to your INPUT_SCHEMA.json file. If not provided default platform location for input schema is used.","required":false}]},"info":{"id":"info","description":"Displays information about the currently active Apify account.\nThe information is printed to the console.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"init-wrap-scrapy":{"id":"init-wrap-scrapy","description":"Wraps your existing Scrapy project to work like an Apify Actor.\n\nIt adds the following features:\n- Automatic retry of failed requests\n- Automatic proxy rotation\n- Automatic user agent rotation\n...\n","pluginName":"apify-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{},"args":[{"name":"path","description":"Optional path to your scrapy project. If not provided, the current directory is used.","required":false}]},"init":{"id":"init","description":"Initializes a new actor project in an existing directory.\nThe command only creates the \".actor/actor.json\" file and the \"storage\" directory in the current directory, but will not touch anything else.\n\nWARNING: The directory at \"storage\" will be overwritten if it already exists.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"yes":{"name":"yes","type":"boolean","char":"y","description":"Automatic yes to prompts; assume \"yes\" as answer to all prompts. Note that in some cases, the command may still ask for confirmation.","required":false,"allowNo":false}},"args":[{"name":"actorName","description":"Name of the actor. If not provided, you will be prompted for it.","required":false}]},"login-new":{"id":"login-new","description":"Logs in to your Apify account using your API token.\nThe API token and other account information is stored in the ~/.apify directory, from where it is read by all other \"apify\" commands. To log out, call \"apify logout\".","pluginName":"apify-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"token":{"name":"token","type":"option","char":"t","description":"[Optional] Apify API token","required":false}},"args":[]},"login":{"id":"login","description":"Logs in to your Apify account using a provided API token.\nThe API token and other account information is stored in the ~/.apify directory, from where it is read by all other \"apify\" commands. To log out, call \"apify logout\".","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"token":{"name":"token","type":"option","char":"t","description":"[Optional] Apify API token","required":false}},"args":[]},"logout":{"id":"logout","description":"Logs out of your Apify account.\nThe command deletes the API token and all other account information stored in the ~/.apify directory. To log in again, call \"apify login\".","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"pull":{"id":"pull","description":"Pulls an Actor from the Apify platform to the current directory. If it is defined as Git repository, it will be cloned. If it is defined as Web IDE, it will fetch the files.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"version":{"name":"version","type":"option","char":"v","description":"Actor version number which will be pulled, e.g. 1.2. Default: the highest version","required":false}},"args":[{"name":"actorId","description":"Name or ID of the actor to run (e.g. \"apify/hello-world\" or \"E2jjCZBezvAZnX8Rb\"). If not provided, the command will update the Actor in the current directory based on its name in \".actor/actor.json\" file.","required":false}]},"push":{"id":"push","description":"Uploads the actor to the Apify platform and builds it there.\nThe Actor settings are read from the \".actor/actor.json\" file in the current directory, but they can be overridden using command-line options.\nNOTE: If the source files are smaller than 3 MB then they are uploaded as \n\"Multiple source files\", otherwise they are uploaded as \"Zip file\".\n\nWARNING: If the target Actor already exists in your Apify account, it will be overwritten!","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"version-number":{"name":"version-number","type":"option","description":"DEPRECATED: Use flag version instead. Actor version number to which the files should be pushed. By default, it is taken from the \".actor/actor.json\" file.","required":false},"version":{"name":"version","type":"option","char":"v","description":"Actor version number to which the files should be pushed. By default, it is taken from the \".actor/actor.json\" file.","required":false},"build-tag":{"name":"build-tag","type":"option","char":"b","description":"Build tag to be applied to the successful Actor build. By default, it is taken from the \".actor/actor.json\" file","required":false},"wait-for-finish":{"name":"wait-for-finish","type":"option","char":"w","description":"Seconds for waiting to build to finish, if no value passed, it waits forever.","required":false},"no-prompt":{"name":"no-prompt","type":"boolean","description":"Do not prompt for opening the actor details in a browser. This will also not open the browser automatically.","required":false,"allowNo":false}},"args":[{"name":"actorId","description":"Name or ID of the Actor to push (e.g. \"apify/hello-world\" or \"E2jjCZBezvAZnX8Rb\"). If not provided, the command will create or modify the actor with the name specified in \".actor/actor.json\" file.","required":false}]},"run":{"id":"run","description":"Runs the actor locally in the current directory.\nIt sets various APIFY_XYZ environment variables in order to provide a working execution environment for the actor. For example, this causes the actor input, as well as all other data in key-value stores, datasets or request queues to be stored in the \"storage\" directory, rather than on the Apify platform.\n\nNOTE: You can override the command's default behavior for Node.js actors by overriding the \"start\" script in the package.json file. You can set up your own main file or environment variables by changing it.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"purge":{"name":"purge","type":"boolean","char":"p","description":"Shortcut that combines the --purge-queue, --purge-dataset and --purge-key-value-store options.","required":false,"allowNo":false},"purge-queue":{"name":"purge-queue","type":"boolean","description":"Deletes the local directory containing the default request queue before the run starts.","required":false,"allowNo":false},"purge-dataset":{"name":"purge-dataset","type":"boolean","description":"Deletes the local directory containing the default dataset before the run starts.","required":false,"allowNo":false},"purge-key-value-store":{"name":"purge-key-value-store","type":"boolean","description":"Deletes all records from the default key-value store in the local directory before the run starts, except for the \"INPUT\" key.","required":false,"allowNo":false}},"args":[]},"vis":{"id":"vis","description":"Validates input schema and prints errors found.\nThe input schema for the actor is used from these locations in order of preference.\nThe first one found is validated as it would be the one used on the Apify platform.\n1. Directly embedded object in \".actor/actor.json\" under 'input' key\n2. Path to JSON file referenced in \".actor/actor.json\" under 'input' key\n3. JSON file at .actor/INPUT_SCHEMA.json\n4. JSON file at INPUT_SCHEMA.json\n\nYou can also pass any custom path to your input schema to have it validated instead.\n","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"path","description":"Optional path to your INPUT_SCHEMA.json file. If not provided ./INPUT_SCHEMA.json is used.","required":false}]},"actor:get-input":{"id":"actor:get-input","description":"Gets the actor input value from the default key-value store associated with the actor run.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"actor:get-value":{"id":"actor:get-value","description":"Gets a value from the default key-value store associated with the actor run.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"key","description":"Key of the record in key-value store","required":true}]},"actor":{"id":"actor","description":"Commands are designed to be used in actor runs. All commands are in PoC state, do not use in production environments.\n","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"actor:push-data":{"id":"actor:push-data","description":"Stores an object or an array of objects to the default dataset of the actor run.\nIt is possible to pass data using item argument or stdin.\nPassing data using argument:\n$ apify actor:push-data {\"foo\": \"bar\"}\nPassing data using stdin with pipe:\n$ cat ./test.json | apify actor:push-data\n","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"item","description":"JSON string with one object or array of objects containing data to be stored in the default dataset.","required":false}]},"actor:set-value":{"id":"actor:set-value","description":"Sets or removes record into the default KeyValueStore associated with the actor run.\nIt is possible to pass data using argument or stdin.\nPassing data using argument:\n$ apify actor:set-value KEY my-value\nPassing data using stdin with pipe:\n$ cat ./my-text-file.txt | apify actor:set-value KEY --contentType text/plain\n","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"contentType":{"name":"contentType","type":"option","char":"c","description":"Specifies a custom MIME content type of the record. By default \"application/json\" is used.","required":false}},"args":[{"name":"key","description":"Key of the record in key-value store.","required":true},{"name":"value","description":"Record data, which can be one of the following values:\n- If empty, the record in the key-value store is deleted.\n- If no `contentType` flag is specified, value is expected to be any JSON string value.\n- If options.contentType is set, value is taken as is.","required":false}]},"secrets:add":{"id":"secrets:add","description":"Adds a new secret value.\nThe secrets are stored to a file at ~/.apify","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"name","description":"Name of the secret","required":true},{"name":"value","description":"Value of the secret","required":true}]},"secrets":{"id":"secrets","description":"Manages secret values for actor environment variables.\n\nExample:\n$ apify secrets:add mySecret TopSecretValue123\n\nNow the \"mySecret\" value can be used in an environment variable defined in \".actor/actor.json\" file by adding the \"@\" prefix:\n\n{\n \"actorSpecification\": 1,\n \"name\": \"my_actor\",\n \"environmentVariables\": { \"SECRET_ENV_VAR\": \"@mySecret\" },\n \"version\": \"0.1\n}\n\nWhen the actor is pushed to Apify cloud, the \"SECRET_ENV_VAR\" and its value is stored as a secret environment variable of the actor.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"secrets:rm":{"id":"secrets:rm","description":"Removes the secret.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"name","description":"Name of the secret","required":true}]}}}
|
|
1
|
+
{"version":"0.19.3","commands":{"call":{"id":"call","description":"Runs a specific actor remotely on the Apify cloud platform.\nThe Actor is run under your current Apify account. Therefore you need to be logged in by calling \"apify login\". It takes input for the Actor from the default local key-value store by default.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"build":{"name":"build","type":"option","char":"b","description":"Tag or number of the build to run (e.g. \"latest\" or \"1.2.34\").","required":false},"timeout":{"name":"timeout","type":"option","char":"t","description":"Timeout for the actor run in seconds. Zero value means there is no timeout.","required":false},"memory":{"name":"memory","type":"option","char":"m","description":"Amount of memory allocated for the actor run, in megabytes.","required":false},"wait-for-finish":{"name":"wait-for-finish","type":"option","char":"w","description":"Seconds for waiting to run to finish, if no value passed, it waits forever.","required":false}},"args":[{"name":"actorId","description":"Name or ID of the actor to run (e.g. \"apify/hello-world\" or \"E2jjCZBezvAZnX8Rb\"). If not provided, the command runs the remote actor specified in the \".actor/actor.json\" file.","required":false}]},"check-version":{"id":"check-version","description":"Checks that installed Apify CLI version is up to date.","pluginName":"apify-cli","pluginType":"core","hidden":true,"aliases":["cv"],"flags":{"enforce-update":{"name":"enforce-update","type":"boolean","char":"e","description":"[Optional] Enforce version update from NPM","required":false,"allowNo":false}},"args":[]},"create":{"id":"create","description":"Creates a new Actor project directory from a selected boilerplate template.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"template":{"name":"template","type":"option","char":"t","description":"Template for the Actor. If not provided, the command will prompt for it.\nVisit https://raw.githubusercontent.com/apify/actor-templates/master/templates/manifest.json to find available template names.","required":false},"skip-dependency-install":{"name":"skip-dependency-install","type":"boolean","description":"Skip installing Actor dependencies.","required":false,"allowNo":false},"template-archive-url":{"name":"template-archive-url","type":"option","description":"Actor template archive url. Useful for developing new templates.","hidden":true,"required":false}},"args":[{"name":"actorName","description":"Name of the Actor and its directory","required":false}]},"edit-input-schema":{"id":"edit-input-schema","description":"Lets you edit your input schema that would be used on the platform in a visual input schema editor.","pluginName":"apify-cli","pluginType":"core","hidden":true,"aliases":["eis"],"flags":{},"args":[{"name":"path","description":"Optional path to your INPUT_SCHEMA.json file. If not provided default platform location for input schema is used.","required":false}]},"info":{"id":"info","description":"Displays information about the currently active Apify account.\nThe information is printed to the console.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"init-wrap-scrapy":{"id":"init-wrap-scrapy","description":"Wraps your existing Scrapy project to work like an Apify Actor.\n\nIt adds the following features:\n- Automatic retry of failed requests\n- Automatic proxy rotation\n- Automatic user agent rotation\n...\n","pluginName":"apify-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{},"args":[{"name":"path","description":"Optional path to your scrapy project. If not provided, the current directory is used.","required":false}]},"init":{"id":"init","description":"Initializes a new Actor project in an existing directory.\nThe command only creates the \".actor/actor.json\" file and the \"storage\" directory in the current directory, but will not touch anything else.\n\nWARNING: The directory at \"storage\" will be overwritten if it already exists.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"yes":{"name":"yes","type":"boolean","char":"y","description":"Automatic yes to prompts; assume \"yes\" as answer to all prompts. Note that in some cases, the command may still ask for confirmation.","required":false,"allowNo":false}},"args":[{"name":"actorName","description":"Name of the Actor. If not provided, you will be prompted for it.","required":false}]},"login-new":{"id":"login-new","description":"Logs in to your Apify account using your API token.\nThe API token and other account information is stored in the ~/.apify directory, from where it is read by all other \"apify\" commands. To log out, call \"apify logout\".","pluginName":"apify-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"token":{"name":"token","type":"option","char":"t","description":"[Optional] Apify API token","required":false}},"args":[]},"login":{"id":"login","description":"Logs in to your Apify account using a provided API token.\nThe API token and other account information is stored in the ~/.apify directory, from where it is read by all other \"apify\" commands. To log out, call \"apify logout\".","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"token":{"name":"token","type":"option","char":"t","description":"[Optional] Apify API token","required":false}},"args":[]},"logout":{"id":"logout","description":"Logs out of your Apify account.\nThe command deletes the API token and all other account information stored in the ~/.apify directory. To log in again, call \"apify login\".","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"pull":{"id":"pull","description":"Pulls an Actor from the Apify platform to the current directory. If it is defined as Git repository, it will be cloned. If it is defined as Web IDE, it will fetch the files.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"version":{"name":"version","type":"option","char":"v","description":"Actor version number which will be pulled, e.g. 1.2. Default: the highest version","required":false}},"args":[{"name":"actorId","description":"Name or ID of the actor to run (e.g. \"apify/hello-world\" or \"E2jjCZBezvAZnX8Rb\"). If not provided, the command will update the Actor in the current directory based on its name in \".actor/actor.json\" file.","required":false}]},"push":{"id":"push","description":"Uploads the actor to the Apify platform and builds it there.\nThe Actor settings are read from the \".actor/actor.json\" file in the current directory, but they can be overridden using command-line options.\nNOTE: If the source files are smaller than 3 MB then they are uploaded as \n\"Multiple source files\", otherwise they are uploaded as \"Zip file\".\n\nWARNING: If the target Actor already exists in your Apify account, it will be overwritten!","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"version-number":{"name":"version-number","type":"option","description":"DEPRECATED: Use flag version instead. Actor version number to which the files should be pushed. By default, it is taken from the \".actor/actor.json\" file.","required":false},"version":{"name":"version","type":"option","char":"v","description":"Actor version number to which the files should be pushed. By default, it is taken from the \".actor/actor.json\" file.","required":false},"build-tag":{"name":"build-tag","type":"option","char":"b","description":"Build tag to be applied to the successful Actor build. By default, it is taken from the \".actor/actor.json\" file","required":false},"wait-for-finish":{"name":"wait-for-finish","type":"option","char":"w","description":"Seconds for waiting to build to finish, if no value passed, it waits forever.","required":false},"no-prompt":{"name":"no-prompt","type":"boolean","description":"Do not prompt for opening the actor details in a browser. This will also not open the browser automatically.","required":false,"allowNo":false}},"args":[{"name":"actorId","description":"Name or ID of the Actor to push (e.g. \"apify/hello-world\" or \"E2jjCZBezvAZnX8Rb\"). If not provided, the command will create or modify the actor with the name specified in \".actor/actor.json\" file.","required":false}]},"run":{"id":"run","description":"Runs the Actor locally in the current directory.\nIt sets various APIFY_XYZ environment variables in order to provide a working execution environment for the Actor. For example, this causes the Actor input, as well as all other data in key-value stores, datasets or request queues to be stored in the \"storage\" directory, rather than on the Apify platform.\n\nNOTE: You can override the command's default behavior for Node.js actors by overriding the \"start\" script in the package.json file. You can set up your own main file or environment variables by changing it.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"purge":{"name":"purge","type":"boolean","char":"p","description":"Shortcut that combines the --purge-queue, --purge-dataset and --purge-key-value-store options.","required":false,"allowNo":false},"purge-queue":{"name":"purge-queue","type":"boolean","description":"Deletes the local directory containing the default request queue before the run starts.","required":false,"allowNo":false},"purge-dataset":{"name":"purge-dataset","type":"boolean","description":"Deletes the local directory containing the default dataset before the run starts.","required":false,"allowNo":false},"purge-key-value-store":{"name":"purge-key-value-store","type":"boolean","description":"Deletes all records from the default key-value store in the local directory before the run starts, except for the \"INPUT\" key.","required":false,"allowNo":false}},"args":[]},"vis":{"id":"vis","description":"Validates input schema and prints errors found.\nThe input schema for the Actor is used from these locations in order of preference.\nThe first one found is validated as it would be the one used on the Apify platform.\n1. Directly embedded object in \".actor/actor.json\" under 'input' key\n2. Path to JSON file referenced in \".actor/actor.json\" under 'input' key\n3. JSON file at .actor/INPUT_SCHEMA.json\n4. JSON file at INPUT_SCHEMA.json\n\nYou can also pass any custom path to your input schema to have it validated instead.\n","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"path","description":"Optional path to your INPUT_SCHEMA.json file. If not provided ./INPUT_SCHEMA.json is used.","required":false}]},"actor:get-input":{"id":"actor:get-input","description":"Gets the actor input value from the default key-value store associated with the actor run.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"actor:get-value":{"id":"actor:get-value","description":"Gets a value from the default key-value store associated with the actor run.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"key","description":"Key of the record in key-value store","required":true}]},"actor":{"id":"actor","description":"Commands are designed to be used in Actor runs. All commands are in PoC state, do not use in production environments.\n","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"actor:push-data":{"id":"actor:push-data","description":"Stores an object or an array of objects to the default dataset of the actor run.\nIt is possible to pass data using item argument or stdin.\nPassing data using argument:\n$ apify actor:push-data {\"foo\": \"bar\"}\nPassing data using stdin with pipe:\n$ cat ./test.json | apify actor:push-data\n","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"item","description":"JSON string with one object or array of objects containing data to be stored in the default dataset.","required":false}]},"actor:set-value":{"id":"actor:set-value","description":"Sets or removes record into the default key-value store associated with the Actor run.\nIt is possible to pass data using argument or stdin.\nPassing data using argument:\n$ apify actor:set-value KEY my-value\nPassing data using stdin with pipe:\n$ cat ./my-text-file.txt | apify actor:set-value KEY --contentType text/plain\n","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{"contentType":{"name":"contentType","type":"option","char":"c","description":"Specifies a custom MIME content type of the record. By default \"application/json\" is used.","required":false}},"args":[{"name":"key","description":"Key of the record in key-value store.","required":true},{"name":"value","description":"Record data, which can be one of the following values:\n- If empty, the record in the key-value store is deleted.\n- If no `contentType` flag is specified, value is expected to be any JSON string value.\n- If options.contentType is set, value is taken as is.","required":false}]},"secrets:add":{"id":"secrets:add","description":"Adds a new secret value.\nThe secrets are stored to a file at ~/.apify","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"name","description":"Name of the secret","required":true},{"name":"value","description":"Value of the secret","required":true}]},"secrets":{"id":"secrets","description":"Manages secret values for Actor environment variables.\n\nExample:\n$ apify secrets:add mySecret TopSecretValue123\n\nNow the \"mySecret\" value can be used in an environment variable defined in \".actor/actor.json\" file by adding the \"@\" prefix:\n\n{\n \"actorSpecification\": 1,\n \"name\": \"my_actor\",\n \"environmentVariables\": { \"SECRET_ENV_VAR\": \"@mySecret\" },\n \"version\": \"0.1\n}\n\nWhen the actor is pushed to Apify cloud, the \"SECRET_ENV_VAR\" and its value is stored as a secret environment variable of the actor.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"secrets:rm":{"id":"secrets:rm","description":"Removes the secret.","pluginName":"apify-cli","pluginType":"core","aliases":[],"flags":{},"args":[{"name":"name","description":"Name of the secret","required":true}]}}}
|
package/package.json
CHANGED
|
@@ -8,6 +8,6 @@ class ActorIndexCommand extends Command {
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
ActorIndexCommand.description = 'Commands are designed to be used in
|
|
11
|
+
ActorIndexCommand.description = 'Commands are designed to be used in Actor runs. All commands are in PoC state, do not use in production environments.\n';
|
|
12
12
|
|
|
13
13
|
module.exports = ActorIndexCommand;
|
|
@@ -28,7 +28,7 @@ class SetValueCommand extends ApifyCommand {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
SetValueCommand.description = 'Sets or removes record into the default
|
|
31
|
+
SetValueCommand.description = 'Sets or removes record into the default key-value store associated with the Actor run.\n'
|
|
32
32
|
+ 'It is possible to pass data using argument or stdin.\n'
|
|
33
33
|
+ 'Passing data using argument:\n'
|
|
34
34
|
+ '$ apify actor:set-value KEY my-value\n'
|
package/src/commands/call.js
CHANGED
|
@@ -21,11 +21,11 @@ class CallCommand extends ApifyCommand {
|
|
|
21
21
|
const userInfo = await getLocalUserInfo();
|
|
22
22
|
const usernameOrId = userInfo.username || userInfo.id;
|
|
23
23
|
|
|
24
|
-
const forceActorId = args.
|
|
24
|
+
const forceActorId = args.actorId;
|
|
25
25
|
let actorId;
|
|
26
26
|
if (forceActorId) {
|
|
27
27
|
const actor = await apifyClient.actor(forceActorId).get();
|
|
28
|
-
if (!actor) throw new Error(`Cannot find
|
|
28
|
+
if (!actor) throw new Error(`Cannot find Actor with ID '${forceActorId}' in your account.`);
|
|
29
29
|
actorId = actor.username ? `${actor.username}/${actor.name}` : actor.id;
|
|
30
30
|
} else {
|
|
31
31
|
actorId = `${usernameOrId}/${localConfig.name}`;
|
|
@@ -65,7 +65,7 @@ class CallCommand extends ApifyCommand {
|
|
|
65
65
|
}
|
|
66
66
|
} catch (err) {
|
|
67
67
|
// TODO: Better error message in apify-client-js
|
|
68
|
-
if (err.type === 'record-not-found') throw new Error(`Actor ${
|
|
68
|
+
if (err.type === 'record-not-found') throw new Error(`Actor ${args.actorId} not found!`);
|
|
69
69
|
else throw err;
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -121,7 +121,7 @@ CallCommand.flags = {
|
|
|
121
121
|
|
|
122
122
|
CallCommand.args = [
|
|
123
123
|
{
|
|
124
|
-
name: '
|
|
124
|
+
name: 'actorId',
|
|
125
125
|
required: false,
|
|
126
126
|
description: 'Name or ID of the actor to run (e.g. "apify/hello-world" or "E2jjCZBezvAZnX8Rb"). '
|
|
127
127
|
+ `If not provided, the command runs the remote actor specified in the "${LOCAL_CONFIG_PATH}" file.`,
|
package/src/commands/create.js
CHANGED
|
@@ -71,8 +71,8 @@ class CreateCommand extends ApifyCommand {
|
|
|
71
71
|
fs.mkdirSync(actFolderDir);
|
|
72
72
|
} catch (err) {
|
|
73
73
|
if (err?.code === 'EEXIST') {
|
|
74
|
-
outputs.error(`Cannot create new
|
|
75
|
-
+ 'You can use "apify init" to create a local
|
|
74
|
+
outputs.error(`Cannot create new Actor, directory '${actorName}' already exists. `
|
|
75
|
+
+ 'You can use "apify init" to create a local Actor environment inside an existing directory.');
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
78
|
throw err;
|
|
@@ -172,17 +172,17 @@ class CreateCommand extends ApifyCommand {
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
CreateCommand.description = 'Creates a new
|
|
175
|
+
CreateCommand.description = 'Creates a new Actor project directory from a selected boilerplate template.';
|
|
176
176
|
|
|
177
177
|
CreateCommand.flags = {
|
|
178
178
|
template: flagsHelper.string({
|
|
179
179
|
char: 't',
|
|
180
|
-
description: 'Template for the
|
|
180
|
+
description: 'Template for the Actor. If not provided, the command will prompt for it.\n'
|
|
181
181
|
+ `Visit ${actorTemplates.manifestUrl} to find available template names.`,
|
|
182
182
|
required: false,
|
|
183
183
|
}),
|
|
184
184
|
'skip-dependency-install': flagsHelper.boolean({
|
|
185
|
-
description: 'Skip installing
|
|
185
|
+
description: 'Skip installing Actor dependencies.',
|
|
186
186
|
required: false,
|
|
187
187
|
}),
|
|
188
188
|
'template-archive-url': flagsHelper.string({
|
|
@@ -196,7 +196,7 @@ CreateCommand.args = [
|
|
|
196
196
|
{
|
|
197
197
|
name: 'actorName',
|
|
198
198
|
required: false,
|
|
199
|
-
description: 'Name of the
|
|
199
|
+
description: 'Name of the Actor and its directory',
|
|
200
200
|
},
|
|
201
201
|
];
|
|
202
202
|
|
package/src/commands/init.js
CHANGED
|
@@ -55,11 +55,11 @@ class InitCommand extends ApifyCommand {
|
|
|
55
55
|
await setLocalEnv(cwd);
|
|
56
56
|
// Create prefilled INPUT.json file from the input schema prefills
|
|
57
57
|
await createPrefilledInputFileFromInputSchema(cwd);
|
|
58
|
-
outputs.success('The
|
|
58
|
+
outputs.success('The Actor has been initialized in the current directory.');
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
InitCommand.description = 'Initializes a new
|
|
62
|
+
InitCommand.description = 'Initializes a new Actor project in an existing directory.\n'
|
|
63
63
|
+ `The command only creates the "${LOCAL_CONFIG_PATH}" file and the "${DEFAULT_LOCAL_STORAGE_DIR}" directory in the current directory, `
|
|
64
64
|
+ 'but will not touch anything else.\n\n'
|
|
65
65
|
+ `WARNING: The directory at "${DEFAULT_LOCAL_STORAGE_DIR}" will be overwritten if it already exists.`;
|
|
@@ -68,7 +68,7 @@ InitCommand.args = [
|
|
|
68
68
|
{
|
|
69
69
|
name: 'actorName',
|
|
70
70
|
required: false,
|
|
71
|
-
description: 'Name of the
|
|
71
|
+
description: 'Name of the Actor. If not provided, you will be prompted for it.',
|
|
72
72
|
},
|
|
73
73
|
];
|
|
74
74
|
|
package/src/commands/push.js
CHANGED
|
@@ -60,7 +60,7 @@ class PushCommand extends ApifyCommand {
|
|
|
60
60
|
const forceActorId = args.actorId;
|
|
61
61
|
if (forceActorId) {
|
|
62
62
|
actor = await apifyClient.actor(forceActorId).get();
|
|
63
|
-
if (!actor) throw new Error(`Cannot find
|
|
63
|
+
if (!actor) throw new Error(`Cannot find Actor with ID '${forceActorId}' in your account.`);
|
|
64
64
|
actorId = actor.id;
|
|
65
65
|
} else {
|
|
66
66
|
const usernameOrId = userInfo.username || userInfo.id;
|
package/src/commands/run.js
CHANGED
|
@@ -88,7 +88,7 @@ class RunCommand extends ApifyCommand {
|
|
|
88
88
|
if (!flags.purge) {
|
|
89
89
|
const isStorageEmpty = await checkIfStorageIsEmpty();
|
|
90
90
|
if (!isStorageEmpty) {
|
|
91
|
-
warning('The storage directory contains a previous state, the
|
|
91
|
+
warning('The storage directory contains a previous state, the Actor will continue where it left off. '
|
|
92
92
|
+ 'To start from the initial state, use --purge parameter to clean the storage directory.');
|
|
93
93
|
}
|
|
94
94
|
}
|
|
@@ -172,10 +172,10 @@ class RunCommand extends ApifyCommand {
|
|
|
172
172
|
|
|
173
173
|
// TODO: we should describe which env vars are set here:
|
|
174
174
|
|
|
175
|
-
RunCommand.description = 'Runs the
|
|
175
|
+
RunCommand.description = 'Runs the Actor locally in the current directory.\n'
|
|
176
176
|
+ 'It sets various APIFY_XYZ environment variables '
|
|
177
|
-
+ 'in order to provide a working execution environment for the
|
|
178
|
-
+ 'the
|
|
177
|
+
+ 'in order to provide a working execution environment for the Actor. For example, this causes '
|
|
178
|
+
+ 'the Actor input, as well as all other data in key-value stores, '
|
|
179
179
|
+ `datasets or request queues to be stored in the "${DEFAULT_LOCAL_STORAGE_DIR}" directory, `
|
|
180
180
|
+ 'rather than on the Apify platform.\n\n'
|
|
181
181
|
+ 'NOTE: You can override the command\'s default behavior for Node.js actors by overriding the "start" script in the package.json file. '
|
|
@@ -9,7 +9,7 @@ class SecretsIndexCommand extends Command {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
SecretsIndexCommand.description = 'Manages secret values for
|
|
12
|
+
SecretsIndexCommand.description = 'Manages secret values for Actor environment variables.\n\n'
|
|
13
13
|
+ 'Example:\n'
|
|
14
14
|
+ '$ apify secrets:add mySecret TopSecretValue123\n\n'
|
|
15
15
|
+ `Now the "mySecret" value can be used in an environment variable defined in "${LOCAL_CONFIG_PATH}" file by adding the "@" prefix:\n\n`
|
package/src/commands/vis.js
CHANGED
|
@@ -29,7 +29,7 @@ class ValidateInputSchemaCommand extends ApifyCommand {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
ValidateInputSchemaCommand.description = `Validates input schema and prints errors found.
|
|
32
|
-
The input schema for the
|
|
32
|
+
The input schema for the Actor is used from these locations in order of preference.
|
|
33
33
|
The first one found is validated as it would be the one used on the Apify platform.
|
|
34
34
|
1. Directly embedded object in "${LOCAL_CONFIG_PATH}" under 'input' key
|
|
35
35
|
2. Path to JSON file referenced in "${LOCAL_CONFIG_PATH}" under 'input' key
|
package/src/lib/create-utils.js
CHANGED
|
@@ -94,7 +94,7 @@ async function executePrompts(manifest) {
|
|
|
94
94
|
async function promptActorName() {
|
|
95
95
|
const answer = await inquirer.prompt([{
|
|
96
96
|
name: 'actorName',
|
|
97
|
-
message: 'Name of your new
|
|
97
|
+
message: 'Name of your new Actor:',
|
|
98
98
|
type: 'input',
|
|
99
99
|
validate: (promptText) => {
|
|
100
100
|
try {
|
|
@@ -115,7 +115,7 @@ async function promptProgrammingLanguage() {
|
|
|
115
115
|
const answer = await inquirer.prompt([{
|
|
116
116
|
type: 'list',
|
|
117
117
|
name: 'programmingLanguage',
|
|
118
|
-
message: 'Choose the programming language of your new
|
|
118
|
+
message: 'Choose the programming language of your new Actor:',
|
|
119
119
|
default: PROGRAMMING_LANGUAGES[0],
|
|
120
120
|
choices: PROGRAMMING_LANGUAGES,
|
|
121
121
|
loop: false,
|
|
@@ -149,7 +149,7 @@ async function promptTemplateDefinition(manifest, programmingLanguage) {
|
|
|
149
149
|
const answer = await inquirer.prompt([{
|
|
150
150
|
type: 'list',
|
|
151
151
|
name: 'templateDefinition',
|
|
152
|
-
message: 'Choose a template for your new
|
|
152
|
+
message: 'Choose a template for your new Actor. Detailed information about the template will be shown in the next step.',
|
|
153
153
|
default: choices[0],
|
|
154
154
|
choices,
|
|
155
155
|
loop: false,
|
package/src/lib/utils.js
CHANGED
|
@@ -210,10 +210,10 @@ const getLocalConfigOrThrow = async () => {
|
|
|
210
210
|
name: 'isConfirm',
|
|
211
211
|
type: 'confirm',
|
|
212
212
|
|
|
213
|
-
message: `The new version of Apify CLI uses the "${LOCAL_CONFIG_PATH}" instead of the "apify.json" file. Since we have found both files in your
|
|
213
|
+
message: `The new version of Apify CLI uses the "${LOCAL_CONFIG_PATH}" instead of the "apify.json" file. Since we have found both files in your Actor directory, "apify.json" will be renamed to "apify.json.deprecated". Going forward, all commands will use "${LOCAL_CONFIG_PATH}". You can read about the differences between the old and the new config at https://github.com/apify/apify-cli/blob/master/MIGRATIONS.md. Do you want to continue?`,
|
|
214
214
|
}]);
|
|
215
215
|
if (!answer.isConfirm) {
|
|
216
|
-
throw new Error('Command can not run with old "apify.json" file present in your
|
|
216
|
+
throw new Error('Command can not run with old "apify.json" file present in your Actor directory., Please, either rename or remove it.');
|
|
217
217
|
}
|
|
218
218
|
try {
|
|
219
219
|
fs.renameSync(getDeprecatedLocalConfigPath(), `${getDeprecatedLocalConfigPath()}.deprecated`);
|