@@ -9,12 +9,23 @@ The file has the following structure:
99 // Required, indicates that this is an Actor definition file and the specific version of the Actor specification.
1010 " actorSpecification" : 1 ,
1111
12- // Properties
12+ // Required "technical" name of the Actor, must be a DNS-friendly text
1313 " name" : " google-search-scraper" ,
14+
15+ // Human-friendly name and description of the Actor
1416 " title" : " Google Search Scraper" ,
1517 " description" : " A 200-char description" ,
16- " version" : " 0.0" , // Required
17- " buildTag" : " latest" , // If omitted, builds with "latest" tag
18+
19+ // Required, indicates the version of the Actor. Since actor.json file is commited to Git, you can have different Actor
20+ // versions in different branches.
21+ " version" : " 0.0" ,
22+
23+ // Optional tag that is applied to the builds of this Actor. If omitted, it defaults to "latest".
24+ " buildTag" : " latest" ,
25+
26+ // An object with environment variables expected by the Actor.
27+ // Secret values are prefixed by @ and their actual values need to be registered with the CLI, for example:
28+ // $ apify secrets add mySecretPassword pwd1234
1829 " environmentVariables" : {
1930 " MYSQL_USER" : " my_username" ,
2031 " MYSQL_PASSWORD" : " @mySecretPassword"
@@ -24,61 +35,55 @@ The file has the following structure:
2435 // to get started and be kept alive by the system to handle incoming HTTP REST requests by the Actor's web server.
2536 " usesStandbyMode" : true ,
2637
27- // A meta object enabling implementations to pass arbitrary additional properties
28- " meta " : {
38+ // A metadata object enabling implementations to pass arbitrary additional properties.
39+ " labels " : {
2940 " something" : " bla bla"
3041 },
3142
32- // Optional min and max memory for running this Actor (TODO: shouldn't this also be in "meta"?)
43+ // Optional minimum and maximum memory for running the Actor.
3344 " minMemoryMbytes" : 128 ,
3445 " maxMemoryMbytes" : 4096 ,
3546
36- // Links to other Actor definition files
37- " dockerfile" : " ./Dockerfile" , // If omitted, the system looks for "./Dockerfile" and "../Dockerfile"
38- " readme" : " ./README.md" , // If omitted, the system looks for "./ACTOR.md" and "../README.md"
47+ // Link to the Actor Dockerfile. If omitted, the system looks for "./Dockerfile" or "../Dockerfile"
48+ " dockerfile" : " ./Dockerfile" ,
49+
50+ // Link to the Actor README file in Markdown format. If omitted, the system looks for "./ACTOR.md" and "../README.md"
51+ " readme" : " ./README.md" ,
52+
53+ // Optional link to the Actor changelog file in Markdown format.
3954 " changelog" : " ../../../shared/CHANGELOG.md" ,
4055
41- // Links to input/output JSON schema files, or inlined JSON schema objects.
42- " input" : " ./input_schema.json" ,
43- " output" : " ./output_schema.json" ,
56+ // Links to input/output extened JSON schema files or inlined objects.
57+ // COMPATIBILITY: This used to be called "input", all implementations should support it
58+ " inputSchema" : " ./input_schema.json" ,
59+ " outputSchema" : " ./output_schema.json" ,
4460
4561 // Links to storages schema files, or inlined schema objects.
4662 // These aren't standard JSON schema files, but our own format. See ./DATASET_SCHEMA.md
47- " storages" : {
48- " keyValueStore" : " ./key_value_store_schema.json" ,
49- " dataset" : " ../shared_schemas/generic_dataset_schema.json" ,
50- " requestQueue" : " ./request_queue_schema.json"
51- },
63+ // COMPATIBILITY: This used to be "storages.keyValueStore", all implementations should support it
64+ " datasetSchema" : " ../shared_schemas/generic_dataset_schema.json"
65+
66+ " keyValueStoreSchema" : " ./key_value_store_schema.json" ,
5267
53- // Link to OpenAPI schema file for the Standby web server API
54- " webServer" : " ./web_server_openapi.json" ,
55- // TODO: I'd use just above, instead of extra line with a second server:
56- // "standbyServer": "./standby_openapi.json",
57- // See https://github.com/apify/actor-specs/issues/40
68+ // Optional link to an OpenAPI definition file or inlined object describing the Actor web server API
69+ " webServerOpenapi" : " ./web_server_openapi.json" ,
70+
71+ // Optional URL path to the Model Context Protocol (MCP) server exposed on the Actor web server.
72+ // If present, the system knows the Actor provides an MCP server, which can be used by the platform
73+ // and integrations to integrate the Actor from AI/LLM systems.
74+ " webServerMcpPath" : " /mcp?someVar=1" ,
5875
59- // Scripts that might be used by the CLI to ease the local Actor development.
76+ // Scripts that might be used by the CLI tools to simplify the local Actor development.
6077 " scripts" : {
6178 " post-create" : " npm install" ,
6279 " run" : " npm start"
6380 }
6481}
6582```
6683
67- ## Random notes
68-
69- The ` .actor/actor.json ` replaces the legacy ` apify.json ` file.
70- Here are the notes comparing the format to the previous version:
84+ ## Notes
7185
72- - We removed the ` template ` property as it's not needed for anything, it only stored the original template
73- - There's a new ` title ` field for a human-readable name of the Actor.
74- We're moving towards having human-readable names shown for Actors everywhere,
75- so it makes sense to define ` title ` directly in the source code.
76- - Similarly, we added ` description ` for the short description of what the Actor does.
77- - When calling ` actor push ` and the ` title ` or ` description ` are already set
78- on the Actor (maybe SEO-optimized versions from copywriter),
79- by default we do not overwrite them
80- unless ` apify push ` is called with options ` --force-title ` or ` --force-description ` .
81- - The ` name ` doesn't contain username, so that the Actor can be easily deployed
86+ - The ` name ` doesn't contain the developer username, so that the Actor can be easily deployed
8287 to any user account. This is useful for tutorials and examples, as well as
8388 pull requests done externally to create Actors from existing source code files
8489 owned by external developers
@@ -87,7 +92,7 @@ Here are the notes comparing the format to the previous version:
8792 Note that ` apify push ` has option ` --target=eva/my-actor:0.0 ` that allows
8893 deployment of the Actor under a different user account, using permissions
8994 and personal API token of the current user.
90- We should also add options to override only parts of this,
95+ We should also add options to override only parts of this,
9196 like ` --target-user ` (ID or username), ` --name ` , ` --build-tag ` and ` --version ` ,
9297 it would be useful e.g. in CI for beta versions etc.
9398- Note that ` version ` and ` buildTag ` are shared across Actor deployments to
@@ -100,8 +105,23 @@ Here are the notes comparing the format to the previous version:
100105 other Dockerfile in the top-level directory, to separate Actor Docker image from the
101106 other one. Note that paths in Dockerfile are ALWAYS relative to the Dockerfile's location.
102107 When calling ` apify run ` , the system runs the Actor using the Dockerfile.
108+ - When calling ` actor push ` and the ` title ` or ` description ` are already set
109+ on the Actor (maybe SEO-optimized versions from copywriter),
110+ by default we do not overwrite them
111+ unless ` apify push ` is called with options ` --force-title ` or ` --force-description ` .
112+
113+
114+ ## Changes from the legacy ` apify.json ` file
115+
116+ The ` .actor/actor.json ` replaces the legacy ` apify.json ` file. Here are main changes from the previous version:
117+
118+ - We removed the ` template ` property as it's not needed for anything, it only stored the original template
119+ - There's a new ` title ` field for a human-readable name of the Actor.
120+ We're moving towards having human-readable names shown for Actors everywhere,
121+ so it makes sense to define ` title ` directly in the source code.
122+ - Similarly, we added ` description ` for the short description of what the Actor does.
103123- ` env ` was renamed to ` environmentVariables ` for more clarity. ` apify build ` or ` apify run `
104124 could have an option ` --apply-env-vars-to-build ` like we have it on platform.
105125- The ` dockerfile ` and ` readme ` directives are optional, the system falls back to reasonable
106126 defaults, first in ` .actor ` directory and then in the top-level directory.
107- - " scripts" section added, see https://apify.slack.com/archives/C04HB9V90DT/p1672826248186569
127+ - ` scripts ` section was added, see https://apify.slack.com/archives/C04HB9V90DT/p1672826248186569
0 commit comments