Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add PDP concepts overview #5970

Merged
merged 60 commits into from
May 13, 2024
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
e18bd30
remove top block component
nikolasburk May 2, 2024
74729ca
Optimised images with calibre/image-actions
github-actions[bot] May 2, 2024
ffcfe5f
add concrete instructions for changing the connection pool size
nikolasburk May 3, 2024
e601f2e
Merge branch 'pdp-concepts' of github.com:prisma/docs into pdp-concepts
nikolasburk May 3, 2024
89b3d0d
refactor platform console concepts
nikolasburk May 3, 2024
170d0c5
Update content/300-accelerate/250-connection-pooling.mdx
nikolasburk May 3, 2024
36c0207
better overview of billing
nikolasburk May 3, 2024
d6aa3ae
Merge branch 'pdp-concepts' of github.com:prisma/docs into pdp-concepts
nikolasburk May 3, 2024
779fbe7
Update content/500-platform/10-about.mdx
nikolasburk May 3, 2024
f38d08d
Update content/300-accelerate/250-connection-pooling.mdx
nikolasburk May 3, 2024
8084f34
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
3c1a576
Update content/500-platform/50-support.mdx
nikolasburk May 6, 2024
e8bab84
Update content/300-accelerate/250-connection-pooling.mdx
nikolasburk May 6, 2024
0403ece
Update content/300-accelerate/250-connection-pooling.mdx
nikolasburk May 6, 2024
9615544
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
324eb5a
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
bc8e573
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
bb21890
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
1ce7bd6
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
b0e0f42
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
1ecdb5a
incorporate feedback
nikolasburk May 6, 2024
94ca6f6
incorporate feedback
nikolasburk May 6, 2024
1d39b76
Optimised images with calibre/image-actions
github-actions[bot] May 6, 2024
e39c952
incorporate feedback
nikolasburk May 6, 2024
a7f84a1
Merge branch 'pdp-concepts' of github.com:prisma/docs into pdp-concepts
nikolasburk May 6, 2024
3c5001e
incorporate feedback
nikolasburk May 6, 2024
e24468d
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
59a8c99
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
def1e5d
incorporate feedback
nikolasburk May 6, 2024
fce7dd2
 resolve merge conflict
nikolasburk May 6, 2024
7002a72
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
9e4e116
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
67279d4
incorporate feedback
nikolasburk May 6, 2024
ed87a69
Merge branch 'pdp-concepts' of github.com:prisma/docs into pdp-concepts
nikolasburk May 6, 2024
e75f7e8
incorporate feedback
nikolasburk May 6, 2024
43aa66d
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
8d7debc
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
31f4663
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
c13e860
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
f691528
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
8e891b9
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
bd752a9
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
3e0e296
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
95e1671
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
9b4eeba
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
fd323a9
Update content/500-platform/10-about.mdx
nikolasburk May 6, 2024
04b1709
update pricing plan to subscription plan
nikolasburk May 6, 2024
c7dc10b
resolve merge conflict
nikolasburk May 6, 2024
a30a893
Update content/500-platform/10-about.mdx
nikolasburk May 7, 2024
70f9f53
Update content/500-platform/10-about.mdx
nikolasburk May 7, 2024
f93ca84
incorporate feedback
nikolasburk May 7, 2024
083f087
incorporate feedback
nikolasburk May 7, 2024
5d1dee3
incorporate feedback
nikolasburk May 7, 2024
0328967
incorporate feedback
nikolasburk May 8, 2024
a28d470
update illustration
nikolasburk May 10, 2024
8f83e2a
update illustration
nikolasburk May 10, 2024
3d780a8
Optimised images with calibre/image-actions
github-actions[bot] May 10, 2024
565c106
resolve merge conflict
nikolasburk May 13, 2024
a674911
Merge branch 'pdp-concepts' of github.com:prisma/docs into pdp-concepts
nikolasburk May 13, 2024
a4c6461
fix build errors
nikolasburk May 13, 2024
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
18 changes: 7 additions & 11 deletions content/300-accelerate/250-connection-pooling.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ metaTitle: 'Accelerate: Connection Pooling'
metaDescription: "Learn about everything you need to know to use Accelerate's connection pooling."
---

<TopBlock>

A [connection pool](https://en.wikipedia.org/wiki/Connection_pool#:~:text=In%20software%20engineering%2C%20a%20connection,executing%20commands%20on%20a%20database.) is a storage of database connections that can be reused for future requests to the database. When a new connection is requested, it is retrieved from the pool if one is available. Once the connection is no longer needed, it is returned to the pool for reuse.

[Connection pooling](https://www.prisma.io/dataguide/database-tools/connection-pooling) is important as it allows you to reuse existing connections instead of creating new ones, which can be an expensive operation.
Expand All @@ -20,8 +18,6 @@ For more information about connection pooling in Prisma, see the documentation [

</Admonition>

</TopBlock>

### Default connection pool size

By default, Accelerate calculates a default connection pool size using the formula `num_physical_cpus * 2 + 1`.
Expand All @@ -36,17 +32,17 @@ This means that Accelerate will create a maximum of 5 connections to the databas

### Configuring the connection pool size

The connection pool size can be configured to a value other than the default via the _database connection string_.
The connection pool size can be configured to a value other than the default via the _database connection string_ in your PDP project (_not_ the connection string in the Prisma schema) via the `connection_limit` parameter. For example, to set a connection pool size of `10` like this: `postgresql://USER:PASSWORD@HOST:PORT/DATABASE?connection_limit=10`.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

![Update database connection string in Accelerate](/img/accelerate/accelerate-update-database-connection-string.png)
To change the size of the connection pool:
1. Open the [Platform Console](https://console.prisma.io/).
1. Select the _workspace_ of the _project_ in which you're using Accelerate and navigate into that _project_.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
1. Select the _environment_ where you want to configure Accelerate's connection pool size.
1. Update the connection string by appending the `connection_limit` argument.

To adjust the connection pool size, you can add the `connection_limit` parameter to the database connection string. The value of `connection_limit` is the maximum number of connections that Accelerate will open against your database.
![Update database connection string in Accelerate](/img/accelerate/accelerate-update-database-connection-string.png)

For example, here is how you can set a connection pool size of 10:

```env no-copy
postgresql://user:password@localhost:5432/db?connection_limit=10
```

### Configuring the connection pool timeout

Expand Down
128 changes: 124 additions & 4 deletions content/500-platform/10-about.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,133 @@ metaDescription: 'Learn about the Platform Console to integrate the Prisma Data
displayed_sidebar: platformSidebar
---

<TopBlock>
## Overview

Platform Console enables you to integrate the latest Prisma Data Platform products into your application
Platform Console enables you to integrate the latest Prisma Data Platform (PDP) products into your application
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

- [Accelerate](/accelerate/what-is-accelerate): Global database cache with scalable connection pooling
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
- [Pulse](/pulse/what-is-pulse): A managed Change Data Capture (CDC) service that enables real-time database subscriptions

[Go to Platform Console](https://console.prisma.io)
Open the [Platform Console](https://console.prisma.io).
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

</TopBlock>
## Concepts

The Platform Console workflows are based on four main concepts:

- [**Account**](#account): In order to use PDP products, you need to have a PDP account. An _organization_ will typically create one account to manage all their workspaces, projects and environments.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
- [**Workspaces**](#workspace): An account can have multiple workspaces. A workspace typically represents a _team_ within an _organization_. **Billing happens on a per-workspace basis**, i.e. an _organization_ receives an invoice at the end of the month that captures all cost associated with the projects in a given workspace.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
- [**Project**](#project): A workspace can have multiple projects. A project typically represents the _application_ of a _product_ or _service_ a team is working on.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
- [**Environments**](#environment): A project can have multiple environments. An environment typically maps to a _development stage_, like `dev`, `staging` or `prod`. **API keys are provisioned on the environment-level**.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

Here is a visual illustration of how these concepts relate to each other:

![](/img/platform/pdp-concepts.png)
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

### Account
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

Your account is the basis for all interactions with PDP products. You can use it to manage your workspaces (and their projects).
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

If you need to delete your account, go [here](/platform/support#deleting-your-pdp-account).

### Workspace

In your PDP account, you can create several workspaces. A workspace is an isolated space to host projects in which you use PDP products.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

In each workspace, you can:

- view and manage all projects (and their environments) in that workspace.
- manage billing, i.e. select a [pricing plan](https://pris.ly/pricing?utm_source=prisma-docs&utm_medium=docs-site), configure payment methods, or view the invoice history.
- view the usage of your enabled PDP products across all projects in that workspace.
- manage team members and change their roles / permissions in the workspace.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

### Project

In each workspace, you can create several projects. A project typically represents an application (a product or service) your organization is offering. You typically have one [Prisma schema](/orm/prisma-schema/) per project.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

In each project, you can:

- view and manage all environments in that project.

The number of project you can create in a workspace depends on the [pricing plan](https://pris.ly/pricing?utm_source=prisma-docs&utm_medium=docs-site) configured in that workspace:
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

Here's an overview of the number of projects per workspace on each plan:
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

| | **Starter** | **Pro** | **Business** | **Enterprise** |
| ------------ | ----------- | ------- | ------------ | -------------- |
| **Projects** | 5 | 10 | 15 | Custom |

### Environment

An environment is an isolated space to provision PDP products for a given project. Environments typically map to development stages, like `dev`, `staging` or `prod`.

In each environment, you can:

- enable, disable and manage PDP products (Pulse, Accelerate, ...).
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
- for **Accelerate**:
- set your database connection string.
- generate API keys.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
- change the connection pool size.
- enable static IPs.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
- for **Pulse**:
- set your database connection string (of a [Pulse-compatible database](/pulse/database-setup)).
petradonka marked this conversation as resolved.
Show resolved Hide resolved
- configure the _region_ where Pulse is running.
petradonka marked this conversation as resolved.
Show resolved Hide resolved
- configure database replication.
- generate API keys.

The number of environments you can create in a project depends on the [pricing plan](https://pris.ly/pricing?utm_source=prisma-docs&utm_medium=docs-site) configured in your workspace:
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

Here's an overview of the number of environments per project on each plan:

| | **Starter** | **Pro** | **Business** | **Enterprise** |
| ---------------- | ----------- | ----------- | ------------ | -------------- |
| **Environments** | 2 / project | 6 / project | 12 / project | Custom |

## Billing

The [pricing plan](https://pris.ly/pricing?utm_source=prisma-docs&utm_medium=docs-site) you select in your workspace determins how many projects and environments you can create in that workspace:
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

| | **Starter** | **Pro** | **Business** | **Enterprise** |
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
| ---------------- | :---------- | ----------- | ------------ | -------------- |
| **Projects** | 5 | 10 | 15 | Custom |
| **Environments** | 2 / project | 6 / project | 12 / project | Custom |

### Per-workspace billing

Billing in PDP is done on a per-workspace basis:
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

- A pricing plan is selected per workspace. That means, your PDP account can have multiple workspaces where each workspace uses a different pricing plan.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
- A payment method is selected per workspace. That means, your PDP account can have multiple workspaces where each workspace has a different payment method.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

At the end of the billing period, **your selected payment method will be charged with the usage costs of the PDP products across _all_ the projects (and their environments) in that workspace**.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

You can configure all billing details in the **Billing** section of your project.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

### Prorated billing

All our paid plans are prorated, which means **you're only billed for the duration you use a specific plan**.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

For example:

- if you subscribe to our **Pro** plan for only 15 days in a 30-day month, you'll only be charged for half of the plan's price.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
- if you want to try out a particular plan for only 2 days, you can do so and you'll only be charged for the respective fraction of the plan's price (2 days out of the entire month).
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
- if you downgrade your pricing plan (e.g. from **Business** to **Pro**) after 10 days of a 30-day month, you'll be charged 1/3 (i.e. 10 days) for the **Business** plan and 2/3 (i.e. 20 days) for the **Pro** plan.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

Visit our [pricing page](https://pris.ly/pricing?utm_source=prisma-docs&utm_medium=docs-site) for more details.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

### Downgrading a pricing plan
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

If you downgrade a pricing plan, you may need to delete some of your projects and/or their environments in order to adhere to the [limits](#environment) of the newly selected plan.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

For example, if your workspace is on a **Business** plan and current has 14 (out of 15) projects, you will need to delete at least 4 projects to adhere to the project limit of the **Pro** plan. Additionally, you need to make sure that the remaining projects don't have more than 6 environments per project to adhere to the environment limit of the **Pro** plan.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

## Programmatic access via the Platform CLI

In addition to the GUI of the Platform Console, thge Prisma CLI provides another way to interact with your PDP account and manage PDP products in your projects.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

This is if you need programmatic access to your account, e.g. for integrating it into CI workflows.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

Read more about the Prisma CLI [here](/platform/platform-cli).
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

## API keys

An API key is required to authenticate requests from your Prisma Client to products such as Prisma Accelerate and Prisma Pulse. You may generate multiple API keys per environment and manage those via the **API Keys** section in a project.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
20 changes: 0 additions & 20 deletions content/500-platform/20-concepts/10-workspaces.mdx

This file was deleted.

14 changes: 0 additions & 14 deletions content/500-platform/20-concepts/20-projects.mdx

This file was deleted.

40 changes: 0 additions & 40 deletions content/500-platform/20-concepts/30-environments.mdx

This file was deleted.

4 changes: 0 additions & 4 deletions content/500-platform/20-concepts/_category_.json

This file was deleted.

15 changes: 0 additions & 15 deletions content/500-platform/20-concepts/index.mdx

This file was deleted.

4 changes: 1 addition & 3 deletions content/500-platform/30-maturity-levels.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@ metaDescription: 'Understand the maturity levels for features in Prisma Data Pla
displayed_sidebar: platformSidebar
---

<TopBlock>

Prisma releases updates to Prisma Data Platform multiple times per week, as opposed to the Prisma ORM that we release on a set schedule every few weeks. This is why we consider the lifecycle and process for maturing features in Prisma Data Platform differently.

You can [check out the releases and maturity process for the Prisma ORM](/orm/more/releases) for further details.

</TopBlock>
You can find information about releases across _all_ Prisma tools and products in the [changelog](https://www.prisma.io/changelog).

### Early Access

Expand Down
3 changes: 0 additions & 3 deletions content/500-platform/40-limits.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,5 @@ hide_table_of_contents: true
displayed_sidebar: platformSidebar
---

<TopBlock>

More details on limits will be available soon.

</TopBlock>
24 changes: 15 additions & 9 deletions content/500-platform/50-support.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,32 @@ toc: true
displayed_sidebar: platformSidebar
---

<TopBlock>

Your feedback is invaluable, and we encourage you to share your experiences with us on [Discord](https://pris.ly/discord).

</TopBlock>

### Community Support
## Support

### Community support

Reach out to us in our [Discord](https://pris.ly/discord).

### Standard Support
### Standard support

- Email support, support@prisma.io
- Email support, <a href="mailto:support@prisma.io">support@prisma.io</a>
- Mon-Fri, 9am-5pm CET

### Premium Support
### Premium support

- Email support, support@prisma.io
- Email support, <a href="mailto:support@prisma.io">support@prisma.io</a>
- 24/7

### Dedicated Support
### Dedicated support

Dedicated contact person.

## Deleting your PDP account


If you want to delete your PDP account, **email us at <a href="mailto:support@prisma.io">support@prisma.io</a>**.
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved

To ensure that you're not accidentally disabling any infrastructure powering onbe of your applications, we require that you **disable Accelerate and Pulse in _all_ environments of _all_ your projects** that live in the account to be deleted,
nikolasburk marked this conversation as resolved.
Show resolved Hide resolved
Binary file added static/img/platform/pdp-concepts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading