> ## Documentation Index
> Fetch the complete documentation index at: https://docs.datazone.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Project Repository

> Organize and deploy your pipelines, actions, apps, and endpoints in a single project structure.

## Overview

A Datazone project is a **Git repository** containing your data pipelines, actions, apps, knowledge objects, flows, and endpoints. All project components are defined in a central **`config.yml`** file.

## Project Structure

<Tree>
  <Tree.Folder name="my-project" defaultOpen>
    <Tree.File name="config.yml" />

    <Tree.Folder name="pipelines" defaultOpen>
      <Tree.File name="hello_world.py" />

      <Tree.File name="data_processing.py" />
    </Tree.Folder>

    <Tree.Folder name="actions">
      <Tree.File name="send_notification.py" />
    </Tree.Folder>

    <Tree.Folder name="apps">
      <Tree.File name="my_app.py" />
    </Tree.Folder>

    <Tree.Folder name="objects">
      <Tree.File name="order.yml" />
    </Tree.Folder>

    <Tree.Folder name="flows">
      <Tree.File name="daily_report.yml" />
    </Tree.Folder>

    <Tree.Folder name="studio">
      <Tree.Folder name="orders">
        <Tree.File name="package.json" />

        <Tree.Folder name="src" />
      </Tree.Folder>
    </Tree.Folder>

    <Tree.File name="utils.py" />
  </Tree.Folder>
</Tree>

<Note>
  * Each project **must have** a `config.yml` file
  * Each pipeline should have a **unique alias** and be defined in separate files
  * Aliases must be unique within `pipelines` and within `studio_apps`
  * Unknown keys are **rejected** on deploy rather than ignored, so a typo fails loudly
  * You can organize your code with utility files for shared logic
</Note>

## Configuration File

The `config.yml` file defines all project resources:

```yaml config.yml theme={null}
project_name: my-pretty-project
project_id: 67280ba2f4a0960d02159675

pipelines:
  - alias: hello_world
    path: pipelines/hello_world.py
    compute: LARGE
    spark_config:
      deploy_mode: client
      executor_instances: 3
    python_dependencies:
      - name: pandas
        version: 1.3.3

actions:
  - path: actions/send_notification.py

apps:
  - path: apps/my_app.py

objects:
  - path: objects/order.yml

flows:
  - path: flows/daily_report.yml

studio_apps:
  - alias: orders
    name: Orders
    path: studio/orders

endpoints:
  - path: endpoints/api_config.yml
```

## Configuration Reference

### Project Fields

<ParamField path="project_name" type="string" required>
  Name of your project. Used for display and identification.

  ```yaml theme={null}
  project_name: data-processing-platform
  ```
</ParamField>

<ParamField path="project_id" type="string" required>
  Unique identifier for your project. Generated when you create a project.

  ```yaml theme={null}
  project_id: 67280ba2f4a0960d02159675
  ```
</ParamField>

<ParamField path="pipelines" type="array">
  List of data pipeline definitions. Each pipeline processes and transforms data.

  ```yaml theme={null}
  pipelines:
    - alias: etl_pipeline
      path: pipelines/etl.py
  ```
</ParamField>

<ParamField path="actions" type="array">
  List of serverless action functions. Actions can be triggered by endpoints or used by AI agents.

  ```yaml theme={null}
  actions:
    - path: actions/send_email.py
  ```

  Learn more in the [Actions documentation](/reference/development/actions).
</ParamField>

<ParamField path="apps" type="array">
  List of intelligent AI applications.

  ```yaml theme={null}
  apps:
    - path: apps/customer_support.py
  ```
</ParamField>

<ParamField path="objects" type="array">
  List of Knowledge Object definitions — versioned business entities with a CRUD API.

  ```yaml theme={null}
  objects:
    - path: objects/order.yml
  ```

  Removing an entry deletes the object and schedules cleanup of its data. Learn more in the [Knowledge Objects documentation](/reference/knowledge-objects/overview).
</ParamField>

<ParamField path="flows" type="array">
  List of declarative YAML orchestration flows.

  ```yaml theme={null}
  flows:
    - path: flows/daily_report.yml
  ```

  Learn more in the [Flows documentation](/reference/flows/overview).
</ParamField>

<ParamField path="studio_apps" type="array">
  List of Studio Apps — React applications built and served by Datazone.

  ```yaml theme={null}
  studio_apps:
    - alias: orders
      name: Orders
      path: studio/orders
  ```

  Learn more in the [Studio Apps documentation](/reference/studio-apps/overview).
</ParamField>

<ParamField path="endpoints" type="array">
  List of API endpoint configurations.

  ```yaml theme={null}
  endpoints:
    - path: endpoints/webhooks.yml
  ```

  Learn more in the [Endpoints documentation](/reference/integration/endpoints).
</ParamField>

### Pipeline Configuration

<ParamField path="alias" type="string" required>
  Short, unique identifier for the pipeline. Used in CLI commands and UI.

  ```yaml theme={null}
  alias: daily_etl
  ```
</ParamField>

<ParamField path="path" type="string" required>
  Relative path to the pipeline Python file from project root.

  ```yaml theme={null}
  path: pipelines/etl_pipeline.py
  ```
</ParamField>

<ParamField path="compute" type="string" default="SMALL">
  Compute instance size for pipeline execution.

  **Available sizes:**

  * `XSMALL` - 2 vCPU, 8 GB RAM
  * `SMALL` - 4 vCPU, 16 GB RAM
  * `MEDIUM` - 8 vCPU, 32 GB RAM
  * `LARGE` - 16 vCPU, 64 GB RAM
  * `XLARGE` - 32 vCPU, 128 GB RAM (Enterprise only)

  ```yaml theme={null}
  compute: LARGE
  ```
</ParamField>

<ParamField path="spark_config.deploy_mode" type="string" default="local">
  Spark deployment mode for distributed processing.

  **Options:**

  * `local` - Runs on a single machine (default)
  * `client` - Driver runs in the same process, executors run separately
  * `cluster` - Both driver and executors run in separate processes (Enterprise only)

  ```yaml theme={null}
  spark_config:
    deploy_mode: client
  ```
</ParamField>

<ParamField path="spark_config.executor_instances" type="integer">
  Number of Spark executors for parallel processing. Only applies when `deploy_mode` is `client` or `cluster`.

  ```yaml theme={null}
  spark_config:
    deploy_mode: client
    executor_instances: 5
  ```
</ParamField>

<ParamField path="spark_config.extra_spark_config" type="object">
  Additional Spark configuration properties. Pass any custom Spark configuration key-value pairs.

  ```yaml theme={null}
  spark_config:
    deploy_mode: client
    executor_instances: 3
    extra_spark_config:
      spark.sql.shuffle.partitions: "200"
      spark.default.parallelism: "100"
      spark.sql.adaptive.enabled: "true"
  ```
</ParamField>

<ParamField path="python_dependencies" type="array">
  Python packages required by the pipeline. Installed before execution.

  ```yaml theme={null}
  python_dependencies:
    - name: pandas
      version: 2.0.0
    - name: requests
      version: 2.31.0
      index_url: https://pypi.org/simple
    - name: my-package
      extra_arguments:
        - "--no-dependencies"
  ```
</ParamField>

### Python Dependency Fields

<ParamField path="name" type="string" required>
  Python package name from PyPI or custom index.

  ```yaml theme={null}
  - name: numpy
  ```
</ParamField>

<ParamField path="version" type="string">
  Specific package version. If omitted, installs the latest version.

  ```yaml theme={null}
  - name: pandas
    version: 2.0.0
  ```
</ParamField>

<ParamField path="index_url" type="string">
  Custom Python package index URL. Useful for private packages or mirrors.

  ```yaml theme={null}
  - name: my-private-package
    version: 1.2.3
    index_url: https://pypi.mycompany.com/simple
  ```
</ParamField>

<ParamField path="extra_arguments" type="array">
  Additional arguments passed directly to the package installer for this dependency.

  ```yaml theme={null}
  - name: my-package
    version: 1.2.3
    extra_arguments:
      - "--no-dependencies"
  ```
</ParamField>

### Action Configuration

<ParamField path="path" type="string" required>
  Relative path to the action Python file containing an `@action` decorated function.

  ```yaml theme={null}
  actions:
    - path: actions/send_notification.py
    - path: workflows/data_validator.py
  ```

  Each file should contain **one action function**. Learn more in the [Actions documentation](/reference/development/actions).
</ParamField>

### App Configuration

<ParamField path="path" type="string" required>
  Relative path to the intelligent app Python file.

  ```yaml theme={null}
  apps:
    - path: apps/customer_assistant.py
  ```
</ParamField>

### Studio App Configuration

<ParamField path="alias" type="string" required>
  Short, unique identifier for the app. Used in its served URL.

  ```yaml theme={null}
  alias: orders
  ```
</ParamField>

<ParamField path="name" type="string">
  Display name shown in Datazone. Defaults to the alias.

  ```yaml theme={null}
  name: Orders
  ```
</ParamField>

<ParamField path="path" type="string" required>
  Relative path to the app directory — the folder holding `package.json`.

  ```yaml theme={null}
  studio_apps:
    - alias: orders
      name: Orders
      path: studio/orders
  ```

  The entry is created for you when you add a Studio App, and removing it deletes the app and its directory. Each app is built per branch; see the [Studio Apps documentation](/reference/studio-apps/overview).
</ParamField>

### Knowledge Object Configuration

<ParamField path="path" type="string" required>
  Relative path to the object definition YAML file. One file may hold several objects, separated by `---`.

  ```yaml theme={null}
  objects:
    - path: objects/order.yml
    - path: objects/customer.yml
  ```

  Learn more in the [Knowledge Objects documentation](/reference/knowledge-objects/overview).
</ParamField>

### Flow Configuration

<ParamField path="path" type="string" required>
  Relative path to the flow definition YAML file.

  ```yaml theme={null}
  flows:
    - path: flows/daily_report.yml
  ```

  Learn more in the [Flows documentation](/reference/flows/overview).
</ParamField>

### Endpoint Configuration

<ParamField path="path" type="string" required>
  Relative path to the endpoint configuration YAML file.

  ```yaml theme={null}
  endpoints:
    - path: endpoints/webhooks.yml
    - path: endpoints/api_routes.yml
  ```

  Learn more in the [Endpoints documentation](/reference/integration/endpoints).
</ParamField>

## Example Projects

### Data Processing Pipeline

```yaml theme={null}
project_name: sales-analytics
project_id: 67280ba2f4a0960d02159675

pipelines:
  - alias: daily_sales_etl
    path: pipelines/sales_pipeline.py
    compute: MEDIUM
    spark_config:
      deploy_mode: client
      executor_instances: 3
    python_dependencies:
      - name: pandas
        version: 2.0.0
      - name: sqlalchemy
        version: 2.0.0
```

### Multi-Component Project

```yaml theme={null}
project_name: customer-platform
project_id: 67280ba2f4a0960d02159675

pipelines:
  - alias: customer_data_sync
    path: pipelines/sync.py
    compute: SMALL
    python_dependencies:
      - name: requests
      - name: pydantic
        version: 2.0.0

actions:
  - path: actions/send_welcome_email.py
  - path: actions/validate_customer.py

apps:
  - path: apps/support_chatbot.py

objects:
  - path: objects/customer.yml

flows:
  - path: flows/onboarding.yml

studio_apps:
  - alias: customer_portal
    name: Customer Portal
    path: studio/customer_portal

endpoints:
  - path: endpoints/customer_api.yml
```

## Next Steps

* [Learn about Pipelines](/reference/development/pipeline)
* [Create Actions](/reference/development/actions)
* [Build Intelligent Apps](/reference/intelligent-apps/overview)
* [Build Studio Apps](/reference/studio-apps/overview)
* [Define Knowledge Objects](/reference/knowledge-objects/overview)
* [Orchestrate with Flows](/reference/flows/overview)
* [Set up Endpoints](/reference/integration/endpoints)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.