Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions cloud/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* [Welcome to Spice.ai Cloud](README.md)
* [Getting Started](getting-started/get-started/README.md)
* [Sign in with GitHub](getting-started/get-started/portal-login.md)
* [Create a Spice app](getting-started/getting-started/portal-login-1.md)
* [Create a Spice project](getting-started/getting-started/portal-login-1.md)
* [Add a Dataset and query data](getting-started/get-started/step-2-add-dataset-and-query-data.md)
* [Add AI Model and chat with your data](getting-started/get-started/step-3-add-ai-model-and-chat-with-your-app.md)
* [Next Steps](getting-started/get-started/next-steps.md)
Expand All @@ -20,7 +20,7 @@
* [Organizations](portal/organizations.md)
* [Organization Secrets](portal/organization-secrets.md)
* [OAuth Clients](portal/oauth-clients.md)
* [Apps](portal/apps/README.md)
* [Projects](portal/apps/README.md)
* [API keys](portal/apps/api-keys.md)
* [Secrets](portal/apps/secrets.md)
* [Tags](portal/apps/tags.md)
Expand All @@ -29,9 +29,9 @@
* [Transfer](portal/apps/transfer.md)
* [Delete](portal/apps/delete.md)
* [Runtime](portal/apps/runtime.md)
* [Public Apps](portal/public-apps.md)
* [Public Projects](portal/public-apps.md)
* [SpiceRack Registry](portal/spicerack.md)
* [App Spicepod](portal/app-spicepod/README.md)
* [Project Spicepod](portal/app-spicepod/README.md)
* [Spicepod Configuration](portal/app-spicepod/spicepod-configuration.md)
* [Deployments](portal/app-spicepod/deployments.md)
* [Spice Runtime Versions](portal/app-spicepod/spice-runtime-versions.md)
Expand Down
2 changes: 1 addition & 1 deletion cloud/getting-started/get-started/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ description: Get started with the Spice.ai Cloud Platform in 5 mins.
[portal-login.md](portal-login.md)
{% endcontent-ref %}

### Create a Spice app
### Create a Spice project

{% content-ref url="../getting-started/portal-login-1.md" %}
[portal-login-1.md](../getting-started/portal-login-1.md)
Expand Down
2 changes: 1 addition & 1 deletion cloud/getting-started/get-started/next-steps.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

Learn more about building AI applications and agents with the Spice.ai Cloud Platform.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Playground</strong></td><td>Start experimenting in the <a href="../../portal/playground/">Playground</a></td><td><a href="https://spice.ai/login">https://spice.ai/login</a></td></tr><tr><td><strong>Features</strong></td><td>Explore the <a href="/broken/pages/X0tERtTckVdb28YlZDut">features</a> of the platform</td><td><a href="../../portal/apps/">apps</a></td></tr><tr><td><strong>Use-Cases</strong></td><td>Explore <a href="/broken/pages/hpBCDc7Kl9gakSyIePLN">use-cases</a> for Spice.ai.</td><td><a href="/broken/pages/X0tERtTckVdb28YlZDut">Broken link</a></td></tr></tbody></table>
<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Playground</strong></td><td>Start experimenting in the <a href="../../portal/playground/">Playground</a></td><td><a href="https://spice.ai/login">https://spice.ai/login</a></td></tr><tr><td><strong>Features</strong></td><td>Explore the <a href="/broken/pages/X0tERtTckVdb28YlZDut">features</a> of the platform</td><td><a href="../../portal/apps/">projects</a></td></tr><tr><td><strong>Use-Cases</strong></td><td>Explore <a href="/broken/pages/hpBCDc7Kl9gakSyIePLN">use-cases</a> for Spice.ai.</td><td><a href="/broken/pages/X0tERtTckVdb28YlZDut">Broken link</a></td></tr></tbody></table>

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ icon: circle-3

# Add a Dataset and query data

To add a dataset to the Spice app, navigate to **Build** > [**Code**](../../portal/app-spicepod/).
To add a dataset to the Spice project, navigate to **Build** > [**Code**](../../portal/app-spicepod/).

Use the **Components sidebar** on the right to select from available **Data Connectors**, **Model Providers**, and ready-to-use **Datasets**.

Expand All @@ -20,7 +20,7 @@ Use the **Components sidebar** on the right to select from available **Data Conn

### \[Optional] Execute a SQL query using cURL

6. Go app **Settings** and copy one of the app API Keys.
6. Go to project **Settings** and copy one of the project API Keys.
7. Replace `[API-KEY]` in the sample below with your API Key and execute from a terminal.

{% tabs %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ models:

### \[Optional] Call chat completions API using cURL

10. Replace `[API-KEY]` in the sample below with the app API Key and execute in a terminal.
10. Replace `[API-KEY]` in the sample below with the project API Key and execute in a terminal.

{% tabs %}
{% tab title="cURL" %}
Expand Down
18 changes: 9 additions & 9 deletions cloud/getting-started/getting-started/portal-login-1.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
---
description: Create your first Spice app
description: Create your first Spice project
icon: circle-2
---

# Create a Spice app
# Create a Spice project

Once [signed in with GitHub](../get-started/portal-login.md), you will be redirected to the **new application page.** Set a name, add a model provider, and optionally select one of ready to use datasets.
Once [signed in with GitHub](../get-started/portal-login.md), you will be redirected to the **new project page.** Set a name, add a model provider, and optionally select one of ready to use datasets.

1. Enter a name for the application.
1. Enter a name for the project.
2. Select region.
3. Click **Create application**.
3. Click **Create project**.

It will take up to 30 seconds to create and provision a dedicated Spice.ai instance for the application.
4. Once the application instance is deployed and ready, you will be redirected to the [Playground](../../portal/playground/).
5. Executing the `show tables` SQL query will show the default datasets available for the app.
It will take up to 30 seconds to create and provision a dedicated Spice.ai instance for the project.
4. Once the project instance is deployed and ready, you will be redirected to the [Playground](../../portal/playground/).
5. Executing the `show tables` SQL query will show the default datasets available for the project.

🎉 **Congrats, you've created your first** [**Spice app**](../../portal/apps/)**!**
🎉 **Congrats, you've created your first** [**Spice project**](../../portal/apps/)**!**

Continue to [Step. 3 to add a dataset and query it](../get-started/step-2-add-dataset-and-query-data.md).

Expand Down
4 changes: 2 additions & 2 deletions cloud/portal/app-spicepod/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
icon: cube
---

# App Spicepod
# Project Spicepod

Every Spice app is powered by a managed instance of the [Spice OSS Runtime](https://www.spiceai.org/) deployed to the platform.
Every Spice project is powered by a managed instance of the [Spice OSS Runtime](https://www.spiceai.org/) deployed to the platform.

A **Spicepod** is a package that encapsulates application-centric datasets and machine learning (ML) models.

Expand Down
18 changes: 9 additions & 9 deletions cloud/portal/app-spicepod/deployments.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Monitor and manage app Spicepod instances and deployments.
description: Monitor and manage project Spicepod instances and deployments.
icon: rocket-launch
---

Expand All @@ -23,7 +23,7 @@ Each deployment listed on the **Deployments** tab reports a status derived from
| **Unhealthy** | All required replicas are ready, but at least one is failing its health check. |
| **Terminating** | The deployment is being replaced by a newer deployment that is ready to take traffic. |
| **Succeeded** | The deployment completed and its instances are no longer reporting live state. |
| **Paused** | The app is paused, so no deployment is serving. |
| **Paused** | The project is paused, so no deployment is serving. |
| **Created** | No live state is available for the deployment, typically because it has already been replaced. |
| **Failed** | The deployment failed. |

Expand All @@ -35,32 +35,32 @@ When a deployed Spicepod reports errors or warnings, the portal collects them in

Issues are surfaced in four places:

* A banner on every page of the app, listing the most recent error and the number of other errors. The banner covers errors only — warnings appear in the **Issues** panel.
* An error count on the **Deployments** tab in the app navigation.
* A banner on every page of the project, listing the most recent error and the number of other errors. The banner covers errors only — warnings appear in the **Issues** panel.
* An error count on the **Deployments** tab in the project navigation.
* An **Issues** panel on the **Deployments** page, and on each instance page scoped to that instance. Each panel lists up to five issues and links to the full list.
* A dedicated **Issues** page for the app, listing every issue without a limit.
* A dedicated **Issues** page for the project, listing every issue without a limit.
* An indicator on the affected row in **Datasets** and **Models**, when an issue can be attributed to a component.

The feed combines runtime `ERROR` and `WARN` log lines with the reported status of each dataset. Repeats of the same failure collapse into one row with an occurrence count, so a connector retrying every second appears once rather than hundreds of times.

Issues are ordered errors first, then by how often they occurred, then by how recently. A panel capped at five rows therefore shows the errors before any warning, and the panel header keeps the full error and warning counts for the app or instance. **View all** *N* **issues** in the panel footer opens the dedicated **Issues** page, which lists the entire set.
Issues are ordered errors first, then by how often they occurred, then by how recently. A panel capped at five rows therefore shows the errors before any warning, and the panel header keeps the full error and warning counts for the project or instance. **View all** *N* **issues** in the panel footer opens the dedicated **Issues** page, which lists the entire set.

Each row shows where the issue came from, how many times it occurred, when it was last seen, the dataset or model it was attributed to, and the instance that reported it. **Show details** expands the full text, including stack traces. The link on the row opens the originating instance's logs filtered to the issue, or the component's page for an issue reported by a dataset.

{% hint style="info" %}
Dismissing an error hides that specific error. A different failure raises the banner again.
{% endhint %}

An app with no issues shows no banner, no count, and no panel. The dedicated **Issues** page remains reachable and reports that no issues were detected.
A project with no issues shows no banner, no count, and no panel. The dedicated **Issues** page remains reachable and reports that no issues were detected.

#### Get AI help

Each issue row has a **Get AI help** action that analyzes that issue on demand. The analysis reads the app's recent runtime logs and returns a likely root cause, a short numbered list of fix steps, links to the relevant documentation, and a confidence level.
Each issue row has a **Get AI help** action that analyzes that issue on demand. The analysis reads the project's recent runtime logs and returns a likely root cause, a short numbered list of fix steps, links to the relevant documentation, and a confidence level.

Results are generated per issue and are not produced until the action is used.

{% hint style="warning" %}
An AI analysis is a suggestion, not a diagnosis. Verify each step against the app's own configuration before applying it.
An AI analysis is a suggestion, not a diagnosis. Verify each step against the project's own configuration before applying it.
{% endhint %}

### Spicepod Instance Logs
Expand Down
6 changes: 3 additions & 3 deletions cloud/portal/app-spicepod/spice-runtime-versions.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ icon: gear

# Spice Runtime Versions

Each new app deployment automatically retrieves the most recent stable Spice OSS release. Visit the [Releases page](https://github.com/spiceai/spiceai/releases) or [Spice OSS blog](https://spiceai.org/blog) to check for the latest runtime updates.
Each new project deployment automatically retrieves the most recent stable Spice OSS release. Visit the [Releases page](https://github.com/spiceai/spiceai/releases) or [Spice OSS blog](https://spiceai.org/blog) to check for the latest runtime updates.

### Migrate Exiting Apps
### Migrate Existing Projects

All Spice Apps are now powered by the latest, next-generation Spice.ai Open Source data and AI engine. Existing apps have been migrated but require a manual setup step to connect datasets and/or model providers.
All Spice projects are now powered by the latest Spice.ai Open Source data and AI engine. Existing projects have been migrated but require a manual setup step to connect datasets and/or model providers.

Learn More: Read the [Announcing 1.0-stable](https://spiceai.org/blog/announcing-1.0-stable) blog post for details on this upgrade, and visit the [Spice.ai Cookbook](https://spiceai.org/cookbook) for over 50 quickstarts and examples.
8 changes: 4 additions & 4 deletions cloud/portal/app-spicepod/spicepod-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ icon: square-code

# Spicepod Configuration

### Edit app spicepod not connected to GitHub
### Edit project spicepod not connected to GitHub

To update Spice App spicepod.yaml, navigate to **Build** > **Code**. Use Components sidebar to add data connectors, model providers and preconfigured datasets, or manually edit spicepod.yaml in code editor.
To update the Spice project spicepod.yaml, navigate to **Build** > **Code**. Use Components sidebar to add data connectors, model providers and preconfigured datasets, or manually edit spicepod.yaml in code editor.

After saving the spicepod changes, a new deployment must be triggered. Learn more about [Spicepod Deployments](deployments.md).

### Edit app spicepod connected to GitHub
### Edit project spicepod connected to GitHub

If the Spice App is connected to a GitHub repository ([learn more](../apps/connect-github.md) about how to connect), the only way to update the Spicepod configuration is to edit the spicepod.yaml file in the root of your repository and push it to the default branch.
If the Spice project is connected to a GitHub repository ([learn more](../apps/connect-github.md) about how to connect), the only way to update the Spicepod configuration is to edit the spicepod.yaml file in the root of your repository and push it to the default branch.

To apply the updated spicepod, a new deployment must be triggered. Learn more about [Spicepod Deployments](deployments.md).

Expand Down
16 changes: 10 additions & 6 deletions cloud/portal/apps/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,19 @@
icon: cubes
---

# Apps
# Projects

**Apps** are self-contained instances of Spice OSS Runtime, running in Spice.ai Cloud Platform.
**Projects** are self-contained instances of Spice OSS Runtime, running in Spice.ai Cloud Platform.

Each app has a unique API Key and owned by individual accounts or [**organizations**](../organizations.md).
Each project has a unique API Key and owned by individual accounts or [**organizations**](../organizations.md).

{% hint style="info" %}
Projects were previously called apps. The portal now uses **Project** throughout, and the Management API serves canonical `/v1/projects` routes alongside the supported legacy `/v1/apps` paths. See [Management APIs](../../api/management/).
{% endhint %}

### Learn how to:

* [Transfer an app to another organization](transfer.md)
* [Connect an app with your existing GitHub repository](connect-github.md)
* [Delete an app](delete.md)
* [Transfer a project to another organization](transfer.md)
* [Connect a project with your existing GitHub repository](connect-github.md)
* [Delete a project](delete.md)
* [Create and toggle custom Dataset and Views](../datasets-and-views.md)
15 changes: 8 additions & 7 deletions cloud/portal/apps/api-keys.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,24 @@ icon: key

# API keys

Each Spice app has two pre-generated API keys, which can be used with [Spice SDKs](../../../sdks/), the [HTTP API](../../api/sql-query/http-api.md) or the [Apache Arrow Flight API](../../api/sql-query/apache-arrow-flight-api.md).
Each Spice project has two pre-generated API keys, which can be used with [Spice SDKs](../../../sdks/), the [HTTP API](../../api/sql-query/http-api.md) or the [Apache Arrow Flight API](../../api/sql-query/apache-arrow-flight-api.md).

## View API Keys

1. Navigate to your Spice app in the [portal](https://spice.ai).
2. Click **Settings** in the app navigation sidebar.
1. Navigate to your Spice project in the [portal](https://spice.ai).
2. Click **Settings** in the project navigation sidebar.
3. Under the **General** section, locate the **API Key 1** and **API Key 2** fields.
4. Click on an API key field to copy its value to your clipboard.

## Regenerate an API Key

If an API key has been compromised or you need to rotate keys, you can regenerate individual keys. Regenerating a key **immediately invalidates** the previous key.

1. Navigate to your Spice app and click **Settings** -> **General**.
2. Click the **Regenerate** button next to the API key you want to rotate (**API Key 1** or **API Key 2**).
3. Confirm the regeneration when prompted.
4. Copy the new key and update it in your applications.
1. Navigate to your Spice project and click **Settings**.
2. Scroll to the **Danger Zone** section.
3. Click the **Regenerate key** button next to the key you want to rotate (**Regenerate API Key 1** or **Regenerate API Key 2**).
4. Confirm the regeneration when prompted.
5. Copy the new key and update it in your applications.

{% hint style="warning" %}
Regenerating an API key immediately invalidates the old key. Any applications using the old key will lose access. Use the two-key system to rotate keys without downtime: update your applications to use the secondary key first, then regenerate the primary key.
Expand Down
14 changes: 8 additions & 6 deletions cloud/portal/apps/connect-github.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Connect your Spice.ai app to a GitHub repository
description: Connect your Spice.ai project to a GitHub repository
icon: link-simple
---

Expand All @@ -10,22 +10,24 @@ icon: link-simple
Before connecting:

* **Admin access**: Ensure you have administrative access to the GitHub repository. This level of access is required to [install the Spice.ai GitHub app](https://docs.github.com/en/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-organizations#requirements-to-install-a-github-app-on-an-organization).
* **Matching repository name**: The Spice.ai app and the GitHub repository names **must match**. For example:
* **Spice.ai app**: [spice.ai/spiceai/demo](https://spice.ai/spiceai/demo)
* **Matching repository name**: The Spice.ai project and the GitHub repository names **must match**. For example:
* **Spice.ai project**: [spice.ai/spiceai/demo](https://spice.ai/spiceai/demo)
* **GitHub repository**: [github.com/spiceai/demo](https://github.com/spiceai/demo)

To quickly set up a new repository, use the [spiceai/spicepod-template](https://github.com/spiceai/spicepod-template) as a starting point:

{% hint style="warning" %}
Make sure to copy app spicepod.yaml contents from **Build** > **Code** and place it in the root of the repository before linking.
Make sure to copy the project spicepod.yaml contents from **Build** > **Code** and place it in the root of the repository before linking.
{% endhint %}

## Connect

1. Ensure the repository is set up as per instructions above.
2. In the context of the Spice app to connect, navigate to **Settings,** then click the **Connect repository** button.
2. In the context of the Spice project to connect, navigate to **Settings**, then find the **Connect Git Repository** section.
3. Follow GitHub App installation instructions.

> Ensure that you select all repositories or specifically the repository you intend to connect.

3. Finally, link the repository to your Spice.ai app.
4. Finally, link the repository to your Spice.ai project.

Once connected, the section is titled **Connected Git Repository** and offers a **Production Branch** selector and a **Disconnect** button.
Loading