From 3c43094e6a31e9ea72fea2740683c7408caac8cc Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 8 May 2026 13:34:32 +0000 Subject: [PATCH 01/10] docs: update Academy deploying section to use .actor directory structure Update the "Deploying your code" Academy section to reflect the modern Actor definition approach using the .actor directory instead of legacy root-level INPUT_SCHEMA.json placement. - Update input_schema.md to reference .actor/INPUT_SCHEMA.json location - Add .actor directory step to the Actorization workflow in index.md - Mention .actor directory option for Dockerfile placement - Fix broken link to dataset schema lesson https://claude.ai/code/session_01Syd9ezZLfCtQWJJjkafH3C --- .../platform/deploying_your_code/docker_file.md | 2 +- .../platform/deploying_your_code/index.md | 9 +++++---- .../platform/deploying_your_code/input_schema.md | 16 +++++++++++----- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/sources/academy/platform/deploying_your_code/docker_file.md b/sources/academy/platform/deploying_your_code/docker_file.md index c7ae50d9d9..815c7ac7db 100644 --- a/sources/academy/platform/deploying_your_code/docker_file.md +++ b/sources/academy/platform/deploying_your_code/docker_file.md @@ -12,7 +12,7 @@ import TabItem from '@theme/TabItem'; --- -The **Dockerfile** is a file which gives the Apify platform (or Docker, more specifically) instructions on how to create an environment for your code to run in. Every Actor must have a Dockerfile, as Actors run in Docker containers. +The **Dockerfile** is a file which gives the Apify platform (or Docker, more specifically) instructions on how to create an environment for your code to run in. Every Actor must have a Dockerfile, as Actors run in Docker containers. You can place the Dockerfile either in the `.actor` directory (recommended) or in the root of your project. See the [Actor definition](/platform/actors/development/actor-definition/actor-json) documentation for details on how to configure the Dockerfile path in `actor.json`. :::note Local testing diff --git a/sources/academy/platform/deploying_your_code/index.md b/sources/academy/platform/deploying_your_code/index.md index bd67d39e27..c9ca4be8c6 100644 --- a/sources/academy/platform/deploying_your_code/index.md +++ b/sources/academy/platform/deploying_your_code/index.md @@ -28,12 +28,13 @@ Here are a few examples of Actors in other languages: ## The "Actorization" workflow {#workflow} -Follow these four main steps to turn a piece of code into an Actor: +Follow these main steps to turn a piece of code into an Actor: 1. Handle [accepting inputs and writing outputs](./inputs_outputs.md). -2. Create an [input schema](./input_schema.md) _(optional)_. -3. Add a [Dockerfile](./docker_file.md). -4. [Deploy](./deploying.md) to the Apify platform! +2. Create a [`.actor` directory](/platform/actors/development/actor-definition) with an `actor.json` file to define your Actor. +3. Create an [input schema](./input_schema.md) _(optional)_. +4. Add a [Dockerfile](./docker_file.md). +5. [Deploy](./deploying.md) to the Apify platform! ## Our example project diff --git a/sources/academy/platform/deploying_your_code/input_schema.md b/sources/academy/platform/deploying_your_code/input_schema.md index 82eeab6b30..e128320a8f 100644 --- a/sources/academy/platform/deploying_your_code/input_schema.md +++ b/sources/academy/platform/deploying_your_code/input_schema.md @@ -1,15 +1,15 @@ --- title: How to write Actor input schema -description: Learn how to generate a user interface on the platform for your Actor's input with a single file - the INPUT_SCHEMA.json file. +description: Learn to generate a user interface on the Apify platform for your Actor's input using the input schema file inside the .actor directory. sidebar_position: 2 slug: /deploying-your-code/input-schema --- -**Learn how to generate a user interface on the platform for your Actor's input with a single file - the INPUT_SCHEMA.json file.** +**Learn to generate a user interface on the Apify platform for your Actor's input using the input schema file inside the `.actor` directory.** --- -Though writing an [input schema](/platform/actors/development/actor-definition/input-schema) for an Actor is not a required step, it's definitely an ideal one. The Apify platform will read the `INPUT_SCHEMA.json` file within the root of your project and generate a user interface for entering input into your Actor, which makes it significantly easier for non-developers (and even developers) to configure and understand the inputs your Actor can receive. Because of this, we'll be writing an input schema for our example Actor. +Though writing an [input schema](/platform/actors/development/actor-definition/input-schema) for an Actor is not a required step, it's definitely an ideal one. The Apify platform reads the input schema from the [`.actor` directory](/platform/actors/development/actor-definition) and generates a user interface for entering input into your Actor, which makes it significantly easier for non-developers (and even developers) to configure and understand the inputs your Actor can receive. Because of this, we'll be writing an input schema for our example Actor. :::note JSON requirement @@ -19,7 +19,13 @@ Without an input schema, the users of our Actor will have to provide the input i ## Schema title & description {#title-and-description} -In the root of our project, we'll create a file named **INPUT_SCHEMA.json** and start writing the first part of the schema. +Inside the `.actor` directory at the root of our project, we'll create a file named **INPUT_SCHEMA.json** (so the full path is `.actor/INPUT_SCHEMA.json`) and start writing the first part of the schema. + +:::tip .actor directory + +If you don't have a `.actor` directory yet, create one. This directory contains your Actor's configuration files, including `actor.json`, `INPUT_SCHEMA.json`, `Dockerfile`, and `README.md`. For more details, see the [Actor definition](/platform/actors/development/actor-definition) documentation. + +::: ```json { @@ -110,4 +116,4 @@ It's not expected to memorize all of the fields that properties can take or the ## Next up {#next} -In the [next lesson](/platform/actors/development/actor-definition/dataset-schema), we'll learn how to generate an appealing Overview table to display our Actor's results in real time, so users can get immediate feedback about the data being extracted. +In the [next lesson](./output_schema.md), we'll learn how to generate an appealing Overview table to display our Actor's results in real time, so users can get immediate feedback about the data being extracted. From b9a8b204028adf6b341f69f3d8723c2bd7e22925 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 8 May 2026 18:24:34 +0000 Subject: [PATCH 02/10] docs: simplify Dockerfile location to only mention .actor directory Remove mention of legacy root-level Dockerfile placement option. https://claude.ai/code/session_01Syd9ezZLfCtQWJJjkafH3C --- sources/academy/platform/deploying_your_code/docker_file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/academy/platform/deploying_your_code/docker_file.md b/sources/academy/platform/deploying_your_code/docker_file.md index 815c7ac7db..df853c6028 100644 --- a/sources/academy/platform/deploying_your_code/docker_file.md +++ b/sources/academy/platform/deploying_your_code/docker_file.md @@ -12,7 +12,7 @@ import TabItem from '@theme/TabItem'; --- -The **Dockerfile** is a file which gives the Apify platform (or Docker, more specifically) instructions on how to create an environment for your code to run in. Every Actor must have a Dockerfile, as Actors run in Docker containers. You can place the Dockerfile either in the `.actor` directory (recommended) or in the root of your project. See the [Actor definition](/platform/actors/development/actor-definition/actor-json) documentation for details on how to configure the Dockerfile path in `actor.json`. +The **Dockerfile** is a file which gives the Apify platform (or Docker, more specifically) instructions on how to create an environment for your code to run in. Every Actor must have a Dockerfile, as Actors run in Docker containers. Place the Dockerfile in the `.actor` directory alongside your `actor.json` file. :::note Local testing From b8a94048ce62fba006fe38c4d88c66ad254db7fb Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Tue, 12 May 2026 18:41:20 +0200 Subject: [PATCH 03/10] Update sources/academy/platform/deploying_your_code/input_schema.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/academy/platform/deploying_your_code/input_schema.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/academy/platform/deploying_your_code/input_schema.md b/sources/academy/platform/deploying_your_code/input_schema.md index e128320a8f..850c9d4394 100644 --- a/sources/academy/platform/deploying_your_code/input_schema.md +++ b/sources/academy/platform/deploying_your_code/input_schema.md @@ -21,7 +21,7 @@ Without an input schema, the users of our Actor will have to provide the input i Inside the `.actor` directory at the root of our project, we'll create a file named **INPUT_SCHEMA.json** (so the full path is `.actor/INPUT_SCHEMA.json`) and start writing the first part of the schema. -:::tip .actor directory +:::tip Actor configuration directory If you don't have a `.actor` directory yet, create one. This directory contains your Actor's configuration files, including `actor.json`, `INPUT_SCHEMA.json`, `Dockerfile`, and `README.md`. For more details, see the [Actor definition](/platform/actors/development/actor-definition) documentation. From 68f2c5ddf385e6e08f0afb085917fb357bc4fda5 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Tue, 12 May 2026 18:41:37 +0200 Subject: [PATCH 04/10] Update sources/academy/platform/deploying_your_code/input_schema.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/academy/platform/deploying_your_code/input_schema.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/academy/platform/deploying_your_code/input_schema.md b/sources/academy/platform/deploying_your_code/input_schema.md index 850c9d4394..4a7dd3fb37 100644 --- a/sources/academy/platform/deploying_your_code/input_schema.md +++ b/sources/academy/platform/deploying_your_code/input_schema.md @@ -19,7 +19,7 @@ Without an input schema, the users of our Actor will have to provide the input i ## Schema title & description {#title-and-description} -Inside the `.actor` directory at the root of our project, we'll create a file named **INPUT_SCHEMA.json** (so the full path is `.actor/INPUT_SCHEMA.json`) and start writing the first part of the schema. +Inside the `.actor` directory at the root of our project, we'll create `INPUT_SCHEMA.json` and start writing the first part of the schema. :::tip Actor configuration directory From 2a9f6880a00c4e678386aa9455f75062783ddf24 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Tue, 12 May 2026 18:41:57 +0200 Subject: [PATCH 05/10] Update sources/academy/platform/deploying_your_code/input_schema.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/academy/platform/deploying_your_code/input_schema.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/academy/platform/deploying_your_code/input_schema.md b/sources/academy/platform/deploying_your_code/input_schema.md index 4a7dd3fb37..f596753efb 100644 --- a/sources/academy/platform/deploying_your_code/input_schema.md +++ b/sources/academy/platform/deploying_your_code/input_schema.md @@ -23,7 +23,7 @@ Inside the `.actor` directory at the root of our project, we'll create `INPUT_SC :::tip Actor configuration directory -If you don't have a `.actor` directory yet, create one. This directory contains your Actor's configuration files, including `actor.json`, `INPUT_SCHEMA.json`, `Dockerfile`, and `README.md`. For more details, see the [Actor definition](/platform/actors/development/actor-definition) documentation. +Create a `.actor` directory at the root of your project. It holds your Actor's configuration: `actor.json`, `INPUT_SCHEMA.json`, `Dockerfile`, and `README.md`. See [Actor definition](/platform/actors/development/actor-definition) for the full reference. ::: From ac90da34a86765a320a54220a2bf5f2792e40e0a Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Tue, 12 May 2026 18:42:09 +0200 Subject: [PATCH 06/10] Update sources/academy/platform/deploying_your_code/input_schema.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/academy/platform/deploying_your_code/input_schema.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/academy/platform/deploying_your_code/input_schema.md b/sources/academy/platform/deploying_your_code/input_schema.md index f596753efb..a10f54b010 100644 --- a/sources/academy/platform/deploying_your_code/input_schema.md +++ b/sources/academy/platform/deploying_your_code/input_schema.md @@ -1,6 +1,6 @@ --- title: How to write Actor input schema -description: Learn to generate a user interface on the Apify platform for your Actor's input using the input schema file inside the .actor directory. +description: Learn to define your Actor's input UI on the Apify platform with an INPUT_SCHEMA.json file stored inside the .actor configuration directory. sidebar_position: 2 slug: /deploying-your-code/input-schema --- From 102c99eaf544f33d58e2ca0ef605cd39eedb8644 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Tue, 12 May 2026 18:42:17 +0200 Subject: [PATCH 07/10] Update sources/academy/platform/deploying_your_code/index.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/academy/platform/deploying_your_code/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/academy/platform/deploying_your_code/index.md b/sources/academy/platform/deploying_your_code/index.md index c9ca4be8c6..9fa8c5e1fc 100644 --- a/sources/academy/platform/deploying_your_code/index.md +++ b/sources/academy/platform/deploying_your_code/index.md @@ -31,7 +31,7 @@ Here are a few examples of Actors in other languages: Follow these main steps to turn a piece of code into an Actor: 1. Handle [accepting inputs and writing outputs](./inputs_outputs.md). -2. Create a [`.actor` directory](/platform/actors/development/actor-definition) with an `actor.json` file to define your Actor. +2. Create the [`.actor` directory](/platform/actors/development/actor-definition) and an `actor.json` configuration file. 3. Create an [input schema](./input_schema.md) _(optional)_. 4. Add a [Dockerfile](./docker_file.md). 5. [Deploy](./deploying.md) to the Apify platform! From 7961feda17327b49fccd8880c17c1a5bf0426a35 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Tue, 12 May 2026 18:42:26 +0200 Subject: [PATCH 08/10] Update sources/academy/platform/deploying_your_code/input_schema.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/academy/platform/deploying_your_code/input_schema.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/academy/platform/deploying_your_code/input_schema.md b/sources/academy/platform/deploying_your_code/input_schema.md index a10f54b010..13fc2d865d 100644 --- a/sources/academy/platform/deploying_your_code/input_schema.md +++ b/sources/academy/platform/deploying_your_code/input_schema.md @@ -5,7 +5,7 @@ sidebar_position: 2 slug: /deploying-your-code/input-schema --- -**Learn to generate a user interface on the Apify platform for your Actor's input using the input schema file inside the `.actor` directory.** +**Learn to define your Actor's input UI on the Apify platform with an `INPUT_SCHEMA.json` file stored inside the `.actor` configuration directory.** --- From 3a57449eedc70fba3fd4463b4e3be3b27188cd4c Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Tue, 12 May 2026 18:42:46 +0200 Subject: [PATCH 09/10] Update sources/academy/platform/deploying_your_code/input_schema.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/academy/platform/deploying_your_code/input_schema.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/academy/platform/deploying_your_code/input_schema.md b/sources/academy/platform/deploying_your_code/input_schema.md index 13fc2d865d..ccf06958a4 100644 --- a/sources/academy/platform/deploying_your_code/input_schema.md +++ b/sources/academy/platform/deploying_your_code/input_schema.md @@ -9,7 +9,7 @@ slug: /deploying-your-code/input-schema --- -Though writing an [input schema](/platform/actors/development/actor-definition/input-schema) for an Actor is not a required step, it's definitely an ideal one. The Apify platform reads the input schema from the [`.actor` directory](/platform/actors/development/actor-definition) and generates a user interface for entering input into your Actor, which makes it significantly easier for non-developers (and even developers) to configure and understand the inputs your Actor can receive. Because of this, we'll be writing an input schema for our example Actor. +Writing an [input schema](/platform/actors/development/actor-definition/input-schema) for an Actor is optional, but recommended. The Apify platform reads [`.actor/INPUT_SCHEMA.json`](/platform/actors/development/actor-definition) and generates a user interface for entering input into your Actor, which makes it easier for non-developers and developers alike to configure and understand the inputs your Actor accepts. Because of this, we'll write an input schema for our example Actor. :::note JSON requirement From 4551754083393c7f6515526bb072e65dba1a5f30 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Tue, 12 May 2026 18:44:47 +0200 Subject: [PATCH 10/10] Apply suggestion from @jancurn --- sources/academy/platform/deploying_your_code/input_schema.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/academy/platform/deploying_your_code/input_schema.md b/sources/academy/platform/deploying_your_code/input_schema.md index ccf06958a4..92664136ea 100644 --- a/sources/academy/platform/deploying_your_code/input_schema.md +++ b/sources/academy/platform/deploying_your_code/input_schema.md @@ -9,7 +9,7 @@ slug: /deploying-your-code/input-schema --- -Writing an [input schema](/platform/actors/development/actor-definition/input-schema) for an Actor is optional, but recommended. The Apify platform reads [`.actor/INPUT_SCHEMA.json`](/platform/actors/development/actor-definition) and generates a user interface for entering input into your Actor, which makes it easier for non-developers and developers alike to configure and understand the inputs your Actor accepts. Because of this, we'll write an input schema for our example Actor. +Writing an [input schema](/platform/actors/development/actor-definition/input-schema) for an Actor is optional, but recommended. The Apify platform reads input schema and generates a user interface for entering input into your Actor, which makes it easier for non-developers and developers alike to configure and understand the inputs your Actor accepts. Because of this, we'll write an input schema for our example Actor. :::note JSON requirement