docs: misc cleanup

This commit is contained in:
Jessica Boezwinkle
2023-10-09 14:00:11 +01:00
parent 229149a5a6
commit 3cb0d9c2ca
4 changed files with 17 additions and 23 deletions

View File

@@ -5,8 +5,6 @@ order: 100
desc: NEEDS TO BE WRITTEN
---
TODO: expand on this and make sure it looks nice, talk about how if you use a `process.env.SERVER_URL`, it might not be usable in your Payload config in your admin UI, but it needs to be, so it should be prefixed like `process.env.PAYLOAD_PUBLIC_SERVER_URL` to work in both places
## Admin environment vars
<Banner type="warning">

View File

@@ -5,18 +5,16 @@ order: 70
desc: Learn how to exclude server-only code from the Payload Admin UI bundle
---
### Aliasing server-only modules
Because the Admin Panel browser bundle includes your Payload Config file, files using server-only modules need to be excluded.
It's common for your config to rely on server only modules to perform logic in access control functions, hooks, and other contexts.
Any file that imports a server-only module such as `fs`, `stripe`, `authorizenet`, `nodemailer`, etc. **cannot** be included in the browser bundle.
#### Let's Look at an example
#### Example Scenario
Say we have a collection called `Subscriptions` that has a `beforeChange` hook that creates a Stripe subscription whenever a Subscription document is created in Payload.
##### Your collection config
**Collection config**:
```ts
// collections/Subscriptions/index.ts
@@ -39,7 +37,7 @@ export const Subscription: CollectionConfig = {
}
```
##### Your collection hook
**Collection hook**:
```ts
// collections/Subscriptions/hooks/createStripeSubscription.ts
@@ -83,7 +81,7 @@ export const createStripeSubscription = async ({ data, operation }) => {
#### How to fix this
You need to make sure that you use `alias`es to tell your bundler to import "safe" files vs. attempting to import any server-side code that you need to get rid of. Depending on your bundler (Webpack, Vite, etc.) the steps involved may be slightly different.
You need to make sure that you use `alias`es to tell your bundler to import "safe" files vs. attempting to import any server-side code that you need to get rid of. Depending on your bundler (Webpack, Vite, etc.) the steps involved may be slightly different.
The basic idea is to create a file that exports an empty object, and then alias import paths of any files that import server-only modules to that empty object file.

View File

@@ -6,8 +6,6 @@ keywords: database, migrations, ddl, sql, mongodb, postgres, documentation, Cont
desc: Payload features first-party database migrations all done in TypeScript.
---
## Migrations
Payload exposes a full suite of migration controls available for your use. Migration commands are accessible via the `npm run payload` command in your project directory.
<Banner>
@@ -38,7 +36,7 @@ export async function down({ payload }: MigrateDownArgs): Promise<void> {
};
```
All database adapters should implement similar migration patterns, but there will be small differences based on the adapter and its specific needs. Below is a list of all migration commands that should be supported by your database adapter.
All database adapters should implement similar migration patterns, but there will be small differences based on the adapter and its specific needs. Below is a list of all migration commands that should be supported by your database adapter.
### Migrate
@@ -92,7 +90,7 @@ npm run payload migrate:reset
### Fresh
Drops all entities from the database and re-runs all migrations from scratch.
Drops all entities from the database and re-runs all migrations from scratch.
```text
npm run payload migrate:fresh

View File

@@ -12,7 +12,7 @@ Payload requires the following software:
- Yarn or NPM
- Node.js version 14+
- A Database (MongoDB or Postgres)
- Any [compatible database](/docs/database/overview) (MongoDB or Postgres)
<Banner type="warning">
Before proceeding any further, please ensure that you have the above requirements met.
@@ -104,43 +104,43 @@ PAYLOAD_SECRET=your-payload-secret
Here is a list of all properties available to pass through `payload.init`:
##### `secret`
##### secret
**Required**. This is a secure string that will be used to authenticate with Payload. It can be random but should be at least 14 characters and be very difficult to guess.
Payload uses this secret key to generate secure user tokens (JWT). Behind the scenes, we do not use your secret key to encrypt directly - instead, we first take the secret key and create an encrypted string using the SHA-256 hash function. Then, we reduce the encrypted string to its first 32 characters. This final value is what Payload uses for encryption.
##### `config`
##### config
Allows you to pass your config directly to the onInit function. The config passed here should match the payload.config file.
##### `disableOnInit`
##### disableOnInit
A boolean that disables running your `onInit` function when Payload starts up.
##### `disableDBConnect`
##### disableDBConnect
A boolean that disables the database connection when Payload starts up.
##### `email`
##### email
An object used to configure SMTP. [Read more](/docs/email/overview).
##### `express`
##### express
This is your Express app as shown above. Payload will tie into your existing `app` and scope all of its functionalities to sub-routers. By default, Payload will add an `/admin` router and an `/api` router, but you can customize these paths.
##### `local`
##### local
A boolean that when set to `true` tells Payload to start in local-only mode which will bypass setting up API routes. When set to `true`, `express` is not required. This is useful when running scripts that need to use Payload's [local-api](/docs/local-api/overview).
##### `loggerDestination`
##### loggerDestination
Specify destination stream for the built-in Pino logger that Payload uses for internal logging. See [Pino Docs](https://getpino.io/#/docs/api?id=pino-destination) for more info on what is available.
##### `loggerOptions`
##### loggerOptions
Specify options for the built-in Pino logger that Payload uses for internal logging. See [Pino Docs](https://getpino.io/#/docs/api?id=options) for more info on what is available.
##### `onInit`
##### onInit
A function that is called immediately following startup that receives the Payload instance as it's only argument.