diff --git a/docs/developer-docs/latest/developer-resources/database-apis-reference/rest/filtering-locale-publication.md b/docs/developer-docs/latest/developer-resources/database-apis-reference/rest/filtering-locale-publication.md
index 071717d58d..d3c5edf73b 100644
--- a/docs/developer-docs/latest/developer-resources/database-apis-reference/rest/filtering-locale-publication.md
+++ b/docs/developer-docs/latest/developer-resources/database-apis-reference/rest/filtering-locale-publication.md
@@ -46,7 +46,9 @@ The following operators are available:
| `$notNull` | Is not null |
| `$between` | Is between |
| `$startsWith` | Starts with |
+| `$startsWithi` | Starts with (case-insensitive) |
| `$endsWith` | Ends with |
+| `$endsWithi` | Ends with (case-insensitive) |
| `$or` | Joins the filters in an "or" expression |
| `$and` | Joins the filters in an "and" expression |
@@ -422,4 +424,4 @@ await request(`/api/articles?${query}`);
```
:::
-::::
\ No newline at end of file
+::::
diff --git a/docs/developer-docs/latest/developer-resources/error-handling.md b/docs/developer-docs/latest/developer-resources/error-handling.md
index 71927b73c8..b5a816f9df 100644
--- a/docs/developer-docs/latest/developer-resources/error-handling.md
+++ b/docs/developer-docs/latest/developer-resources/error-handling.md
@@ -63,7 +63,7 @@ Errors thrown by the GraphQL API are included in the [response](/developer-docs/
### Controllers and middlewares
-The recommended way to throw errors when developing any custom logic with Strapi is to have the [controller](/developer-docs/latest/development/backend-customization/controllers.md) or [middleware](/developer-docs/latest/development/backend-customization/) respond with the correct status and body.
+The recommended way to throw errors when developing any custom logic with Strapi is to have the [controller](/developer-docs/latest/development/backend-customization/controllers.md) or [middleware](/developer-docs/latest/development/backend-customization/middlewares.md) respond with the correct status and body.
This can be done by calling an error function on the context (i.e. `ctx`). Available error functions are listed in the [http-errors documentation](https://github.com/jshttp/http-errors#list-of-all-constructors) but their name should be lower camel-cased to be used by Strapi (e.g. `badRequest`).
@@ -367,7 +367,7 @@ throw new PolicyError('Something went wrong', { policy: 'my-policy' });
::: tab Pagination
-The `PaginationError` class is a specific error class that is typically used when parsing the pagination information from [REST](/developer-resources/database-apis-reference/rest/sort-pagination.md#pagination), [GraphQL](/developer-resources/database-apis-reference/graphql-api.md#pagination), or the [Entity Service](/developer-resources/database-apis-reference/entity-service/order-pagination.md#pagination). It accepts the following parameters:
+The `PaginationError` class is a specific error class that is typically used when parsing the pagination information from [REST](/developer-docs/latest/developer-resources/database-apis-reference/rest/sort-pagination.md#pagination), [GraphQL](/developer-docs/latest/developer-resources/database-apis-reference/graphql-api.md#pagination), or the [Entity Service](/developer-docs/latest/developer-resources/database-apis-reference/entity-service/order-pagination.md#pagination). It accepts the following parameters:
| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
diff --git a/docs/developer-docs/latest/developer-resources/unit-testing.md b/docs/developer-docs/latest/developer-resources/unit-testing.md
index d63531c26f..6c1557d5a0 100644
--- a/docs/developer-docs/latest/developer-resources/unit-testing.md
+++ b/docs/developer-docs/latest/developer-resources/unit-testing.md
@@ -96,7 +96,7 @@ module.exports = ({ env }) => ({
### Strapi instance
In order to test anything we need to have a strapi instance that runs in the testing environment,
-basically we want to get instance of strapi app as object, similar like creating an instance for [process manager](process-manager.md).
+basically we want to get instance of strapi app as object, similar like creating an instance for [process manager](/developer-docs/latest/setup-deployment-guides/deployment/optional-software/process-manager.md).
These tasks require adding some files - let's create a folder `tests` where all the tests will be put and inside it, next to folder `helpers` where main Strapi helper will be in file strapi.js.
diff --git a/docs/developer-docs/latest/plugins/users-permissions.md b/docs/developer-docs/latest/plugins/users-permissions.md
index 1d208abfcc..f715ef310c 100644
--- a/docs/developer-docs/latest/plugins/users-permissions.md
+++ b/docs/developer-docs/latest/plugins/users-permissions.md
@@ -786,6 +786,45 @@ The use of `ngrok` is not needed.
:::
+::: tab Patreon
+
+#### Using ngrok
+
+Patreon does not accept `localhost` urls.
+Use `ngrok` to serve the backend app.
+
+```
+ngrok http 1337
+```
+
+Don't forget to update the server url in the Strapi config file `./config/server.js` and the server URL in your frontend app (environment variable `REACT_APP_BACKEND_URL` if you use [react login example app](https://github.com/strapi/strapi-examples/tree/master/login-react)) with the generated ngrok URL.
+
+#### Patreon configuration
+
+- You must be a Patreon Creator in order to register an Oauth client.
+- Go to the [Patreon developer portal](https://www.patreon.com/portal)
+- Click on [Clients & API Keys](https://www.patreon.com/portal/registration/register-clients)
+- Click on "Create Client"
+- Enter the details of your organization and website.
+- There is a drop-down for "App Category" but no explanation of what the different categories mean.
+"Community" seems to work fine.
+- You can choose either version 1 or version 2 of the API - neither are actively developed.
+Version 2 is probably the best choice. See their
+[developer docs](https://docs.patreon.com/#introduction) for more detail.
+- Under "Redirect URI's" enter `https://your-site.com/api/connect/patreon/callback`
+- Save the client details and you will then see the Client ID and Client Secret.
+
+#### Strapi configuration
+
+- Visit the User Permissions provider settings page
[http://localhost:1337/admin/settings/users-permissions/providers](http://localhost:1337/admin/settings/users-permissions/providers)
+- Click on the **Patreon** provider
+- Fill the information:
+ - Enable: `ON`
+ - Client ID: `` - as above
+ - Client Secret: `` - as above
+
+:::
+
::::
Your configuration is done.