---
title: Publish to the ODP sandbox
slug: data-platform/connect-platform/ocp-quickstart-publish-an-app-to-odp-sandbox
docTags: 
createdAt: 2026-07-23T12:53:16.000Z
---

Before publishing and testing your app, you must first:

- [Complete the prerequisites](docId\:gxEU_0AA37IEZJK-uoVcT)
- [Initialize the app and define the schema](docId\:D4TobV3WoA1l1f_XMtVrK)

In Connect Platform for Optimizely Data Platform (ODP), each app is published with a specific version. This quickstart guide uses the `-dev` tag version, which is designed for internal testing and development of apps. To learn more about versioning in Connect Platform for ODP, see [Update your app version](docId\:D-SaAJzvcfnWlM7Skp-2a).

Complete the following steps to validate, prepare, publish, and install the app to the ODP sandbox.

## Step 1: Validate your app configuration

Before you publish the app, first validate that the app is configured correctly with the following command in the Connect Platform for ODP command-line interface (CLI):

```shell
ocp app validate
```

:::hint{type="info"}
**Note**
If you are confident that there are no issues with your app's code or settings, you can skip this step. The `prepare` step runs the same validation.
:::

## Step 2: Prepare the app for publishing

After validating that your app is configured correctly, prepare the app for publishing with the following command, which packages the app's local files, uploads them to Connect Platform for ODP, and builds the publishable app:

```bash
ocp app prepare
```

:::hint{type="info"}
**Note**
You can skip the next step ([Publish the app](docId:-w5onEN5sCzdYnySPFgTi)) and automatically publish the app after it is prepared by adding the `--publish` flag to the `prepare` command.

```javascript
ocp app prepare --publish
```
:::

If a build fails, you can view the build logs to determine what caused the failure. Run the following command in the Connect Platform for ODP CLI, replacing `[BUILD_ID]` with the ID of the failed build to view the corresponding logs:

```javascript
ocp app logs --buildId=[BUILD_ID]
```

## Step 3: Publish the app

:::hint{type="info"}
**Note**
If you added the `--publish` flag to the `prepare` command above, you can skip this step.

After you validate and prepare the app, publish it to the ODP App Directory with the following command:
:::

```bash
ocp directory publish ocp_quickstart@1.0.0-dev.1
```

After this step, the app version is available in the ODP App Directory and can take requests. For example:

```bash
ocp directory info ocp_quickstart
Active environment: production

  General

    id          ocp_quickstart
    name        OCP Quickstart
    created     2023-04-17T02:31:44Z

  Versions


    1.0.0-dev.1    PUBLISHED
```

## Step 4: Install the app to ODP sandbox

After you publish the app, [find your Tracker ID in ODP](docId\:uSckrFlNPTg3aQgAZr1rp) and install your app in the ODP sandbox with the following command, replacing \[TRACKER\_ID]:

```bash
ocp directory install ocp_quickstart@1.0.0-dev.1 [TRACKER_ID]
```

Now you can view the app in the ODP sandbox. In the ODP app, go to the **App Directory** and locate your newly installed app.

The app does not run any code yet, but you can see Connect Platform for ODP added the object schema you created in the previous section ([Initialize an app and define its schema](docId\:D4TobV3WoA1l1f_XMtVrK)). To view this object schema, in the ODP app, go to **Account Settings > Objects & Fields**.

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/V5POCPfzQFpkKfF8px5Bo_610d0f9-image.png)

Next, [configure and authenticate the app using an app settings form](docId\:lG3VNBJAWBA3SyOM7arHH).
