Merge branch 'master' into develop

This commit is contained in:
HichamELBSI 2020-03-04 09:32:13 +01:00
commit b5947621fc
56 changed files with 668 additions and 210 deletions

View File

@ -151,8 +151,10 @@ module.exports = {
collapsable: false,
title: '🚀 Getting Started',
children: [
'/3.0.0-beta.x/getting-started/introduction',
'/3.0.0-beta.x/getting-started/install-requirements',
['/3.0.0-beta.x/getting-started/introduction', 'Introduction'],
['/3.0.0-beta.x/getting-started/installation', 'Installation'],
['/3.0.0-beta.x/getting-started/contributing', 'Contributing'],
['/3.0.0-beta.x/getting-started/troubleshooting', 'Troubleshooting'],
'/3.0.0-beta.x/getting-started/quick-start',
'/3.0.0-beta.x/getting-started/quick-start-tutorial',
],
@ -215,10 +217,7 @@ module.exports = {
{
collapsable: true,
title: '⚙️️ Admin Panel',
children: [
'/3.0.0-beta.x/admin-panel/customization',
'/3.0.0-beta.x/admin-panel/deploy',
],
children: ['/3.0.0-beta.x/admin-panel/customization', '/3.0.0-beta.x/admin-panel/deploy'],
},
{
collapsable: true,
@ -258,10 +257,7 @@ module.exports = {
collapsable: false,
title: '📚 Resources',
children: [
[
'https://github.com/strapi/strapi/blob/master/CONTRIBUTING.md',
'Contributing guide',
],
['https://github.com/strapi/strapi/blob/master/CONTRIBUTING.md', 'Contributing guide'],
'/3.0.0-beta.x/migration-guide/',
],
},
@ -340,10 +336,7 @@ module.exports = {
collapsable: false,
title: '📚 Resources',
children: [
[
'https://github.com/strapi/strapi/blob/master/CONTRIBUTING.md',
'Contributing guide',
],
['https://github.com/strapi/strapi/blob/master/CONTRIBUTING.md', 'Contributing guide'],
'/3.0.0-alpha.x/migration-guide/',
'/3.0.0-alpha.x/articles/',
],

View File

@ -0,0 +1,55 @@
<template>
<router-link :to="link" class="install-link">
<span class="icon">
<slot name="icon" />
</span>
<span>
<p class="title"><slot name="title" /></p>
<p class="description"><slot name="description" /></p>
</span>
</router-link>
</template>
<script>
export default {
name: 'InstallLink',
props: {
link: {
type: String,
required: true
}
}
}
</script>
<style lang="scss" scoped>
.install-link {
background-color: #3498DB;
display: flex;
align-items: center;
color: white;
padding: 16px;
border-radius: 8px;
margin: 16px 0; // You'd normally do layout margins etc from the parent, but seeing the parent
// is a markdown file, that's a bit annoying
.icon {
flex-shrink: 0;
width: 32px;
margin-right: 16px;
& ::v-deep svg {
width: 100%;
height: auto;
}
}
.title {
font-weight: 700;
margin: 0;
}
.description {
font-size: 12px;
margin: 0;
}
}
</style>
<!-- Copyrigth Directus - https://github.com/directus/docs/blob/master/.vuepress/theme/global-components/InstallLink.vue -->

View File

@ -74,9 +74,9 @@ options: [--no-optimization]
```
- **strapi build**<br/>
Builds the administration panel without minimizing the assets
Builds the administration panel and minimizing the assets
- **strapi build --no-optimization**<br/>
Builds the administration panel without minizing the assets. The build duration is faster.
Builds the administration panel without minimizing the assets. The build duration is faster.
::: tip
You can specify a NODE_ENV to use the configurations in the `./config/environments/[development|staging|production]` folder.

View File

@ -97,7 +97,9 @@ module.exports = {
if (files) {
// automatically uploads the files based on the entry and the model
await this.uploadFiles(entry, files, { model: strapi.models.restaurant });
await strapi.entityService.uploadFiles(entry, files, {
model: strapi.models.restaurant,
});
return this.findOne({ id: entry.id });
}
@ -125,7 +127,9 @@ module.exports = {
if (files) {
// automatically uploads the files based on the entry and the model
await this.uploadFiles(entry, files, { model: strapi.models.restaurant });
await strapi.entityService.uploadFiles(entry, files, {
model: strapi.models.restaurant,
});
return this.findOne({ id: entry.id });
}
@ -258,12 +262,7 @@ module.exports = {
const user = await User.create(ctx.params);
// Send an email to validate his subscriptions.
strapi.services.email.send(
'welcome@mysite.com',
user.email,
'Welcome',
'...'
);
strapi.services.email.send('welcome@mysite.com', user.email, 'Welcome', '...');
// Send response to the server.
ctx.send({

View File

@ -0,0 +1,21 @@
# 🦸 Contributing
Strapi is a community oriented project and we really appreciate every contribution made by the community: feature requests, bug reports, and especially pull requests! If you have any questions please reach out the [Core team](https://strapi.io/company) on [Slack](https://slack.strapi.io).
## Repositories
### [strapi/strapi](https://github.com/strapi/strapi)
This repository contains the core of Strapi. It means the admin panel, core plugins (Content Manager, Content Type Buidler, etc...), the documentation and the code that runs your Strapi app. You will also find some plugin providers. This is the main repo of the Strapi organization.
### [strapi/buffet](https://github.com/strapi/buffet)
[Buffet](https://buffetjs.io) is the componenent library that is used in the admin panel. This brings consistency throughout the different admin plugins.
### [strapi/strapi-docker](https://github.com/strapi/strapi-docker)
This is the code used to generate the official Docker images for Strapi. These images are available through our [Docker Hub](https://hub.docker.com/r/strapi/strapi).
## Contributing guide
To contribute to the project please follow instructions present in the [`CONTRIBUTING.md`](https://github.com/strapi/strapi/blob/master/CONTRIBUTING.md) file on GitHub.

View File

@ -1,28 +0,0 @@
# Installation requirements
## Node.js
Strapi only requires [Node.js](https://nodejs.org). The current recommended version to run strapi is `Node v10` (current `LTS`).
This is all that is needed before Strapi can run on your local environment.
You can also use **yarn** if you want, [here](https://yarnpkg.com/en/docs/getting-started) are the instructions to get started with it.
- **Node.js** >= 10.x
- **NPM** >= 6.x
## Databases
Strapi is supporting multiple databases. If you are using the `--quickstart` or if you manually choose the `SQLite` database, you will not need to install any database on you local computer.
If you want to use a custom database, here are the versions you will have to respect:
- **MongoDB** >= 3.6
- **MySQL** >= 5.6
- **MariaDB** >= 10.1
- **PostgreSQL** >= 10
- **SQLite** >= 3
::: tip NEXT STEPS
👏 Congrats, you are all set! Now that Node.js is installed you can continue with the [Quick start guide](quick-start.md).
:::

View File

@ -0,0 +1,39 @@
# ⚙️ Installation
### Installation guides
<div>
<InstallLink link="../installation/cli">
<template #icon>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 271"><g><path d="M116.553,0 L0,67.953 L0,98.096 L49.665,127.882 L91.366,105.163 L91.366,78.74 L179.665,28.034 L241.711,63.77 L241.637,135.222 L156.567,184.231 L128.082,173.694 L90.165,197.882 L91.128,255.785 L117.233,270.858 L234.743,203.897 L234.743,163.65 L221.531,170.761 L221.531,196.347 L117.267,255.461 L104.352,248.005 L103.644,205.48 L128.114,189.128 L157.607,199.658 L256,142.912 L255.065,55.656 L179.678,12.633 L78.016,71.009 L78.016,97.419 L49.824,112.41 L13.35,90.536 L13.35,75.622 L116.243,15.636 L137.841,29.399 L150.89,21.886 L116.553,0 Z M186.0696,71.0918 L164.1876,84.3678 L164.7436,109.9558 L187.1816,122.2678 L209.0636,108.9918 L208.5076,83.4048 L186.0696,71.0918 Z M186.3206,82.6508 L198.6226,89.4018 L198.9276,103.4308 L186.9306,110.7088 L174.6286,103.9588 L174.3236,89.9298 L186.3206,82.6508 Z M73.701,141.0235 L70.738,135.4095 C70.086,134.1755 68.558,133.7035 67.324,134.3545 L47.931,144.5855 C46.697,145.2365 46.224,146.7655 46.876,148.0005 L49.84,153.6175 C50.491,154.8515 52.02,155.3245 53.254,154.6725 L72.645,144.4385 C73.88,143.7865 74.352,142.2575 73.701,141.0235 M84.9168,158.0703 L81.9548,152.4543 C81.2838,151.1813 79.6868,150.7253 78.4438,151.4513 L45.7398,170.5723 C44.5718,171.2563 44.1488,172.7373 44.7798,173.9333 L47.7418,179.5493 C48.4138,180.8223 50.0108,181.2783 51.2528,180.5523 L83.9578,161.4313 C85.1248,160.7483 85.5478,159.2673 84.9168,158.0703 M87.9705,169.6055 L49.5225,191.7065 C48.3435,192.3835 47.9115,193.8735 48.5475,195.0765 L51.5105,200.6915 C52.1785,201.9575 53.7635,202.4165 55.0045,201.7035 L93.4525,179.6025 C94.6325,178.9245 95.0635,177.4345 94.4285,176.2315 L91.4645,170.6165 C90.7965,169.3515 89.2115,168.8925 87.9705,169.6055" fill="#FFF"/></g></svg>
</template>
<template #title>CLI</template>
<template #description>
Create a project in your local machine using the CLI.
</template>
</InstallLink>
</div>
<div>
<InstallLink link="../installation/docker">
<template #icon>
<svg xmlns="http://www.w3.org/2000/svg" width="34" height="23"><g fill="#fff" fill-rule="evenodd"><path d="M18.8017 10.5442h3.4333v-3.101h-3.4333zM14.745 10.5442h3.4333v-3.101H14.745v3.101zM10.6892 10.5442h3.4325v-3.101h-3.4334v3.101zM6.6316 10.5442h3.4334v-3.101H6.6316zM2.5759 10.5442h3.4324v-3.101H2.576v3.101zM6.6326 6.8226h3.4324v-3.101H6.6316v3.101zM10.6892 6.8226h3.4325v-3.101h-3.4334v3.101zM14.745 6.8226h3.4333v-3.101H14.745v3.101zM14.745 3.101h3.4333V0H14.745v3.101z"></path><path d="M28.752 8.3043c-.1708-1.2412-.8667-2.317-2.1326-3.2901l-.727-.482-.4866.7243c-.6197.9309-.9318 2.2216-.829 3.46.046.4351.19 1.2145.6408 1.8993-.4498.2405-1.3366.572-2.5144.549H.1285l-.045.2589c-.2111 1.2439-.2075 5.1252 2.329 8.1087 1.9269 2.2675 4.8168 3.4178 8.5889 3.4178 8.1757 0 14.2245-3.741 17.0565-10.5406 1.1136.022 3.5132.0064 4.7461-2.3326.0312-.0533.1056-.1947.3204-.638l.1184-.2424-.693-.46c-.75-.4984-2.4723-.681-3.7979-.4323z"></path></g></svg>
</template>
<template #title>Docker</template>
<template #description>
Has everything you need to get started; no need to install, configure, or manage additional packages on your server.
</template>
</InstallLink>
</div>
<div>
<InstallLink link="../installation/platformsh">
<template #icon>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><defs><style>.bcac695a-a0a4-4100-84fd-61ecc421091c{fill:#0a0a0a;}.fc8dd422-fb02-4822-a57e-c20c8b5eef7c{fill:#fff;}</style></defs><g id="b5f9bb49-1614-4b22-8c04-f5182c1803f5" data-name="Layer 2"><g id="b2a28560-5e48-4435-accd-e149b4f96cc0" data-name="Layer 1"><rect class="fc8dd422-fb02-4822-a57e-c20c8b5eef7c" x="10.73" y="10.72" width="28.55" height="11.35"/><rect class="fc8dd422-fb02-4822-a57e-c20c8b5eef7c" x="10.73" y="35.42" width="28.55" height="3.86"/><rect class="fc8dd422-fb02-4822-a57e-c20c8b5eef7c" x="10.73" y="25.74" width="28.55" height="5.82"/></g></g></svg>
</template>
<template #title>Platform.sh One-Click</template>
<template #description>
Your project setup in one click with Platform.sh
</template>
</InstallLink>
</div>

View File

@ -1,18 +1,80 @@
# Introduction
# 🚀 Welcome to the Strapi documentation!
Welcome to the open source [headless CMS](https://strapi.io) developers love.
**Strapi is the open source [headless CMS](https://strapi.io) developers love.**
## Strapi Documentation
## What is Strapi?
### 👋 Welcome onboard!
Strapi, the most flexible open-source Headless CMS gives developers the freedom to use their favorite tools and frameworks while helping editors to easily manage their content and distribute anywhere. By making the admin panel and API easily customizable and extensible through a plugin system, Strapi enables the worlds largest companies to accelerate content delivery while building better digital experiences.
Users love Strapi because it is open source, MIT licensed, fully customizable and based on Node.js. Strapi lets you manage your content and distribute it anywhere. Strapi allows you to securely and privately serve your database from your hosting and server of choice.
::: tip Where the name come from?
**Strapi** come from Boot**strap** your **API** 🎉<br>
It's the origin purpose of the project.
:::
### Get Started
## Features
You are invited to get started using Strapi. You may explore Strapi by:
### Custom content structure
1. A [Quick Start Guide](quick-start.md) for more intermediate to advanced developers.
2. A [Tutorial](quick-start-tutorial.md) for those who prefer a step-by-step introduction.
With the admin panel of Strapi, You can generate the admin panel in just a few clicks, and get your whole CMS setup in a few minutes.
When you're done getting started, we invite you to join our [community](https://strapi.io/community).
### Manage content
The Strapi's admin panel gives you an intuitive interface to create edit and delete your content.
### Developer-friendly API
Your content have to be displayed on your devices, an API is required. Strapi provide you an API that match your need. Fetch the data you want via a REST API or via the GraphQL endpoint.
### Roles & permissions
A User system is built in Strapi, that let you manage how can access to what.
### Plugin system
You want a new feature in you application, fetch a plugin in the market place and tada! You can install a GraphQL endpoint in one command.
### Customization
You can customize every single pice of your application. The architecture of Strapi let you customize your app to match your exact needs.
Don't stay stuck by the techno you choose.
## The Strapi Ecosystem
### Code Source
Strapi is an Open Source project, all the source code is under the MIT licence. The core project is in the [strapi/strapi](https://github.com/strapi/strapi) GitHub repository and you will find all other tools into the [Strapi](https://github.com/strapi) GitHub organization.
### Marketplace
In the marketplace section of the admin panel, you will only found official Strapi plugins. For now, the Strapi marketplace is not open to everyone but will be soon, stay tuned.
But you already can develop yours and publish them on npm.
### Roadmap
Strapi is a community oriented project. We are trying to be the more transparent as possible to let you have a vision on the future of the project.
Your insights are really important too to help to develop the project in the right direction.
The [Roadmap](https://portal.productboard.com/strapi) is open, feel free to add your insights.
### Tutorials and Guides
To help you using Strapi, we and the community provide you a suite of resources to let you achieve your goals.
You will find [tutorials](https://strapi.io/tutorials/) on the website and guides into the documentation.
### Demo
You can discover Strapi in few minutes by watching the demo video or by requesting a live demo via the form present in the [Demo](https://strapi.io/demo) page.
### Blog
For long-form news and announcements the best place to keep up to date with everything happening is our [blog](https://strapi.io/blog).
### Social media
We maintain a handful of social media accounts to keep in touch with the community directly and give them updates about what's new with Strapi. Here are the easiest ways to keep track of Strapi and everything hapening around the web:
- ⭐️ [GitHub](https://github.com/strapi/strapi)
- 🐧 [Twitter](https://twitter.com/strapijs)
- 👩🏻‍💻 [Facebook](https://www.facebook.com/strapijs/)
- 📸 [Instagram](https://www.instagram.com/strapijs/)

View File

@ -0,0 +1,78 @@
# 💬 Troubleshooting
Below are solutions to some common issues that you may experience when working with Strapi. You can also post questions to [StackOverflow](https://stackoverflow.com/questions/tagged/strapi) or reach out to the members of our [Slack](https://slack.strapi.io) community!
[[toc]]
## Technical Support
Strapi is offered as free and open-source for users who wish to self-host the software.
### Community Support
[StackOverflow](https://stackoverflow.com/search?q=strapi) is great first place to reach out for help. Our community and Core developers often check this platform and answer posts tagged with `strapi`.
Another option to get help is our [Community Slack](https://slack.strapi.io). Please keep all questions on the `#help` channel, be considerate, and remember that _you are getting free help for a free product_.
### Enterprise support
Looking for enterprise support?
Fill out the form on the [Support page](https://strapi.io/support) of the Strapi website.
## Frequently Asked Questions
### Does Strapi handle deploying or migrating of content?
Strapi does not currently provide any tools for migrating or deploying your data changes between different environments (_ie. from development to production_).
### User can't login to the admin panel
With the release of the Strapi beta version a fundamental change occurred in that the "end-users" (REST and GraphQL users) were split from the Administrators (admin panel users) in such a way that normal users can not be given access to the admin panel. If you would like to read more on why this change was done, you can read the Strapi [blog post](https://strapi.io/blog/why-we-split-the-management-of-the-admin-users-and-end-users) about it.
In the future Strapi does plan to implement a solution where Administrators could use the REST and GraphQL routes like a standard 3rd party provider, but there is no intention of allowing for the reverse. Instead within Q1/Q2 2020 we plan to offer a plugin called [Administrators Roles & Permissions](https://portal.productboard.com/strapi/1-public-roadmap/c/8-administrators-roles-permissions) that will allow you to control access to Administrators within the admin panel. As of right now there is no work around to currently do this, anyone with access to the admin panel will have full access to all parts of it.
When this new plugin release, there will be two versions:
- Community Edition
- Enterprise Edition
By default, the Community Edition will include 3 administrators and 3 pre-defined roles (Administrators, Editor, Author). Upgrading to the Enterprise Edition will unlock an unlimited number of administrators and roles.
### Relations aren't maintaining their sort order
With the components there is a hidden field called `order` that allows entries to maintain their sort, however with relations there is no such field. If you consider the typical count of of component entries vs relational based entries (in retrospect they function in the backend the same) there is generally a much higher number of relations. If relations were to have an `order` field applied to them as well it could cause significant performance degradation when trying to update the order, and likewise in the case where a relation could be attached to multiple entries it would be quite difficult to maintain the order.
For the time being there is no recommended way to handle this automatically and instead it may be required for you to create custom controllers to handle this within your own project.
### Why is my app's database and uploads resetting on Heroku
If you used `--quickstart` to create your Strapi project, by default this uses the SQLite database. Heroku's file system is [ephemeral](https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem) meaning that each time a dyno (container) is reset all filesystem changes are lost. And since both SQLite and local uploads are stored on the filesystem, any changes made to these since the last dyno reset will be deleted. Typically dynos are reset at least once a day, and in most cases multiple times per day or when new code is pushed to Heroku.
It is recommended you use the Heroku PostgreSQL plugin or use something like MongoDB's Atlas for your database. For file uploads, you will need to use one of the 3rd party providers such as Cloudinary or AWS S3.
### How do I customize a plugin
Strapi uses a system called [extensions](../concepts/customization.md#plugin-extensions) as plugins are stored in the `node_modules` folder. Due to this extensions work by Strapi detecting newer versions of files and using that as a replacement for the ones stored within the `node_modules`. If you are familiar with React and "ejecting" a file, the concept is similar.
You gain the ability to modify these files without forking the plugin package, however you lose the ability to easily update. After each version release you will need to compare your changes to those in the new version and modify your version of the files accordingly.
### Can I add my own 3rd party auth provider
Yes you can either follow the following [guide](../plugins/users-permissions.md#adding-a-new-provider-to-your-project) or you can take a look at the [users-permissions](https://github.com/strapi/strapi/tree/master/packages/strapi-plugin-users-permissions) and submit a pull request to include the provider for everyone. Eventually Strapi does plan to move from the current grant/purest provider to a split natured system similar to the upload providers.
There is currently no ETA on this migration however.
### How do I setup SSL with Strapi
Strapi implements no SSL solution natively, this is due to the fact that it is extremely insecure to directly offer a Node.js application to the public web on a low port.
On Linux based operating systems you need root permissions to bind to any port below 1024 and with typical SSL being port 443 you would need to run your application as root.
Likewise since Strapi is Node.js based, in order for changes with the SSL certificate to take place (say when it expires) you would need to restart your application for that change to take effect.
Due to these two issues, it is recommended you use a proxy application such as Nginx, Apache, Traefik, or many others to handle your edge routing to Strapi. There are settings in the environment [server.json](../concepts/configurations.md#server) to handle upstream proxies. The proxy block requires all settings to be filled out and will modify any backend plugins such as authentication providers and the upload plugin to replace your standard `localhost:1337` with the proxy URL.
### Is X feature available yet
You can see the [ProductBoard roadmap](https://portal.productboard.com/strapi) to see which feature requests are currently being worked on and which have not been started yet.

View File

@ -6,9 +6,9 @@ In this guide we will see how you can customize your API's response..
To be able to update the default data response you have first to understand how it works.
When you create a content type, it generates an API with the following list of [endpoints](../content-api/endpoint).
When you create a content type, it generates an API with the following list of [endpoints](../content-api/api-endpoints.md).
Each of these endpoint triggers a controller action. Here is the list of [controller actions](../concepts/controller.md) that exist by default when a content type is created.
Each of these endpoint triggers a controller action. Here is the list of [controller actions](../concepts/controllers.md) that exist by default when a content type is created.
If you check the controller file of your generated API `./api/{content-type}/controller/{Content-Type}.js`, you will see an empty file. It is because all the default logic is managed by Strapi. But you can override these actions with your own code.
@ -68,9 +68,7 @@ module.exports = {
entities = await strapi.services.restaurant.find(ctx.query);
}
return entities.map(entity =>
sanitizeEntity(entity, { model: strapi.models.restaurant })
);
return entities.map(entity => sanitizeEntity(entity, { model: strapi.models.restaurant }));
},
};
```

View File

@ -0,0 +1,92 @@
# Installing from CLI
Fast-track local install for getting Strapi running on your computer.
[[toc]]
## Step 1: Make sure requirements are met
#### Node.js
Strapi only requires [Node.js](https://nodejs.org). The current recommended version to run strapi is Node v12 (current LTS).
This is everything you need to run Strapi on your local environment.
| Software | Minimum version |
| -------- | --------------- |
| Node.js | 12.x |
| npm | 6.x |
#### Yarn (optional)
You can also use **yarn** if you want [here](https://yarnpkg.com/en/docs/getting-started) are the instructions to get started with it.
#### Databases
Strapi currently support the following databases.
| Database | Minimum version |
| ---------- | --------------- |
| SQLite | 3 |
| PostgreSQL | 10 |
| MySQL | 5.6 |
| MariaDB | 10.1 |
| MongoDB | 3.6 |
## Step 2: Create a new project
:::: tabs
::: tab yarn
```bash
yarn create strapi-app my-project --quickstart
```
:::
::: tab npx
```bash
npx create-strapi-app my-project --quickstart
```
:::
::::
::: tip
If you want to use specific database, you don't have to use the `--quickstart` flag. The CLI will let you choose the database of your choice.
:::
::: warning
If you use a custom database, this one has to be up and running before creating your Strapi project
:::
## Step 3: Start the project
To start your Strapi application you will have to run the following command in your application folder.
:::: tabs
::: tab yarn
```bash
yarn develop
```
:::
::: tab npm
```bash
npm run develop
```
:::
::::
::: tip
If you created your application using `--quickstart` flag, it will automatically run your application.
:::

View File

@ -0,0 +1,111 @@
# Installing using Docker
If you're already familiar with Docker, you are probably looking for our official Docker images over [Docker Hub](https://hub.docker.com/r/strapi/strapi).
[[toc]]
## Step 1: Create a `docker-compose.yaml` file
Create this `docker-compose.yaml` file in an empty folder. <br>
A fresh new Strapi application will be created where the `docker-compose.yaml` file is located.
This docker-compose defines our database and Strapi service and links them.
:::: tabs
::: tab SQLite
```yaml
version: '3'
services:
strapi:
image: strapi/strapi
volumes:
- ./:/srv/app
ports:
- '1337:1337'
```
:::
::: tab Postgres
```yaml
version: '3'
services:
strapi:
image: strapi/strapi
environment:
DATABASE_CLIENT: postgres
DATABASE_NAME: strapi
DATABASE_HOST: postgres
DATABASE_PORT: 5432
DATABASE_USERNAME: strapi
DATABASE_PASSWORD: strapi
links:
- postgres:postgres
volumes:
- ./app:/srv/app
ports:
- '1337:1337'
postgres:
image: postgres
environment:
POSTGRES_USER: strapi
POSTGRES_PASSWORD: strapi
volumes:
- ./data:/data/postgres
ports:
- '5432:5432'
```
:::
::: tab MongoDB
```yaml
version: '3'
services:
strapi:
image: strapi/strapi
environment:
DATABASE_CLIENT: mongo
DATABASE_NAME: strapi
DATABASE_HOST: mongo
DATABASE_PORT: 27017
DATABASE_USERNAME: strapi
DATABASE_PASSWORD: strapi
links:
- mongo:mongo
volumes:
- ./app:/srv/app
ports:
- '1337:1337'
mongo:
image: postgres
environment:
MONGO_INITDB_ROOT_USERNAME: strapi
MONGO_INITDB_ROOT_PASSWORD: strapi
volumes:
- ./data/db:/data/db
ports:
- '27017:27017'
```
:::
::::
## Step 2: Pull the latest images
```
docker-compose pull
```
## Step 3: Run the stack
```
docker-compose up -d
```

View File

@ -0,0 +1,45 @@
# Installing using Platform.sh
[Plateform.sh](https://console.platform.sh/) gives you an easy way to get started and deploy your Strapi application.
You can find the template [source code](https://github.com/platformsh-templates/strapi#customizations) on Platform.sh GitHub for more information.
[[toc]]
## Step 1: Create a Platform.sh account
You must have a [Plateform.sh](https://platform.sh/) account before doing these steps.
## Step 2: Create a project
You can use the **One-Click** button or follow these steps.
<a href="https://console.platform.sh/projects/create-project?template=https://raw.githubusercontent.com/platformsh/template-builder/master/templates/strapi/.platform.template.yaml&utm_content=strapi&utm_source=github&utm_medium=button&utm_campaign=deploy_on_platform">
<img src="https://platform.sh/images/deploy/lg-blue.svg" alt="Deploy on Platform.sh" width="180px" />
</a>
- Click on `+ Add project` button
- Select `Use a template` option and click `Next`
- Fill your `Project name` and `Region` then click `Next`
**Choose Strapi template.**
Search for the Strapi template using the search bar.
- Click on the search bar
- Fill `strapi`
- Select the Strapi template
- Click `Next`
::: tip INFO
After few second a Strapi application will be setup with a Postgres database.
:::
## Step 4: Visit your app
Now to visit your application.
- Click on `Settings`
- Then `Domains` in the left menu
You will see the Platform.sh domain name that is used for your app.

View File

@ -132,7 +132,7 @@ axios
});
```
#### Providers
### Providers
Thanks to [Grant](https://github.com/simov/grant) and [Purest](https://github.com/simov/purest), you can easily use OAuth and OAuth2 providers to enable authentication in your application.
@ -144,7 +144,7 @@ In the following examples, the client app will be the [react login examples app]
::: tab GitHub
### Setup the server
#### Setup the server
Use `ngrok` to serve the frontend app.
@ -152,7 +152,7 @@ Use `ngrok` to serve the frontend app.
ngrok http 3000
```
### Github configuration
#### Github configuration
- Visit the OAuth Apps list page <br> [https://github.com/settings/developers](https://github.com/settings/developers)
- Click on **New OAuth App** button
@ -164,7 +164,7 @@ Then fill the informations:
- **Application description**: Strapi provider auth description
- **Authorization callback URL**: `https://65e60559.ngrok.io/connect/github`
### Strapi configuration
#### Strapi configuration
- Visit the User Permissions provider settings page <br> [http://localhost:1337/admin/plugins/users-permissions/providers](http://localhost:1337/admin/plugins/users-permissions/providers)
- Click on the **GitHub** provider
@ -180,7 +180,7 @@ Then fill the informations:
::: tab Facebook
### Setup the server
#### Setup the server
Use `ngrok` to serve the server app.
@ -188,7 +188,7 @@ Use `ngrok` to serve the server app.
ngrok http 1337
```
### Facebook configuration
#### Facebook configuration
- Visit the Developer Apps list page <br> [https://developers.facebook.com/apps/](https://developers.facebook.com/apps/)
- Click on **Add a New App** button
@ -205,7 +205,7 @@ To access the Application ID and secret:
- Click on **Settings** in the left menu
- Then on **Basic** link
### Strapi configuration
#### Strapi configuration
- Visit the User Permissions provider settings page <br> [http://localhost:1337/admin/plugins/users-permissions/providers](http://localhost:1337/admin/plugins/users-permissions/providers)
- Click on the **Facebook** provider
@ -221,7 +221,7 @@ Then fill the informations:
::: tab Google
### Google configuration
#### Google configuration
- Visit the Google Developer Console <br> [https://console.developers.google.com/](https://console.developers.google.com/)
- Click on the **Select a project** dropdown in the top menu
@ -248,7 +248,7 @@ To access the Client ID and secret:
- Click on **OAuth 2.0 Client IDs** name of the client you just created
### Strapi configuration
#### Strapi configuration
- Visit the User Permissions provider settings page <br> [http://localhost:1337/admin/plugins/users-permissions/providers](http://localhost:1337/admin/plugins/users-permissions/providers)
- Click on the **Google** provider
@ -264,7 +264,7 @@ Then fill the informations:
::: tab Twitter
### Setup the server
#### Setup the server
Use `ngrok` to serve the frontend app.
@ -272,7 +272,7 @@ Use `ngrok` to serve the frontend app.
ngrok http 3000
```
### Twitter configuration
#### Twitter configuration
- Visit the Apps list page <br> [https://developer.twitter.com/en/apps](https://developer.twitter.com/en/apps)
- Click on **Create an app** button
@ -289,7 +289,7 @@ To access the Consumer API keys:
- Click on **Keys and tokens** tab
### Strapi configuration
#### Strapi configuration
- Visit the User Permissions provider settings page <br> [http://localhost:1337/admin/plugins/users-permissions/providers](http://localhost:1337/admin/plugins/users-permissions/providers)
- Click on the **Twitter** provider
@ -305,7 +305,7 @@ Then fill the informations:
::: tab Discord
### Discord configuration
#### Discord configuration
- Visit the Apps list page on the developer portal <br> [https://discordapp.com/developers/applications/](https://discordapp.com/developers/applications/)
- Click on **New application** button
@ -318,7 +318,7 @@ To access the Consumer API keys:
- Click on **General information** in the left menu
### Strapi configuration
#### Strapi configuration
- Visit the User Permissions provider settings page <br> [http://localhost:1337/admin/plugins/users-permissions/providers](http://localhost:1337/admin/plugins/users-permissions/providers)
- Click on the **Discord** provider
@ -334,7 +334,7 @@ Then fill the informations:
::: tab Twitch
### Twitch configuration
#### Twitch configuration
- Visit the Apps list page on the developer console <br> [https://dev.twitch.tv/console/apps](https://dev.twitch.tv/console/apps)
- Click on **Register Your Application** button
@ -350,7 +350,7 @@ To access the Consumer API keys:
- Click on **Manage** button of your new app
- Then generate a new **Client Secret** with the **New Secret** button
### Strapi configuration
#### Strapi configuration
- Visit the User Permissions provider settings page <br> [http://localhost:1337/admin/plugins/users-permissions/providers](http://localhost:1337/admin/plugins/users-permissions/providers)
- Click on the **Twitch** provider
@ -366,7 +366,7 @@ Then fill the informations:
::: tab Instagram
### Setup the server
#### Setup the server
Use `ngrok` to serve the server app.
@ -374,7 +374,7 @@ Use `ngrok` to serve the server app.
ngrok http 1337
```
### Facebook configuration
#### Facebook configuration
- Visit the Developer Apps list page <br> [https://developers.facebook.com/apps/](https://developers.facebook.com/apps/)
- Click on **Add a New App** button
@ -393,7 +393,7 @@ On the **App Review for Instagram Basic Display** click on **Add to submition**
Make sure your Application information are well completed.
### Strapi configuration
#### Strapi configuration
- Visit the User Permissions provider settings page <br> [http://localhost:1337/admin/plugins/users-permissions/providers](http://localhost:1337/admin/plugins/users-permissions/providers)
- Click on the **Instagram** provider
@ -409,7 +409,7 @@ Then fill the informations:
::: tab VK
### VK configuration
#### VK configuration
- Visit the Apps list page <br> [https://vk.com/apps?act=manage](https://vk.com/apps?act=manage)
- Click on **Create app** button
@ -430,7 +430,7 @@ Then fill the informations:
- **Authorized redirect UR**: `http://localhost:1337/connect/vk/callback`
### Strapi configuration
#### Strapi configuration
- Visit the User Permissions provider settings page <br> [http://localhost:1337/admin/plugins/users-permissions/providers](http://localhost:1337/admin/plugins/users-permissions/providers)
- Click on the **VK** provider
@ -573,17 +573,19 @@ create: async ctx => {
};
```
## Adding a new provider (to the strapi project)
## Adding a new provider (to your project)
To add a new provider on Strapi, you will need to perform changes onto the following files:
```
packages/strapi-plugin-users-permissions/services/Providers.js
packages/strapi-plugin-users-permissions/config/functions/bootstrap.js
packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js
packages/strapi-plugin-users-permissions/admin/src/translations/en.json
extensions/users-permissions/services/Providers.js
extensions/users-permissions/config/functions/bootstrap.js
extensions/users-permissions/admin/src/components/PopUpForm/index.js
extensions/users-permissions/admin/src/translations/en.json
```
If these files don't exist you will need to copy from your `node_modules` or the Strapi mono-repo. You can see the [plugin extensions](../concepts/customization.md#plugin-extensions) for more information as to how this works
We will go step by step.
### Configure your Provider Request

View File

@ -1,6 +1,6 @@
{
"name": "docs",
"version": "1.0.0",
"version": "2.0.0",
"main": "index.js",
"scripts": {
"dev": "vuepress dev",

View File

@ -12,6 +12,10 @@
"attributes": {
"title": {
"type": "string"
},
"slug": {
"type": "uid",
"targetField": "title"
}
}
}

View File

@ -1,7 +1,7 @@
{
"name": "getstarted",
"private": true,
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "A Strapi application.",
"scripts": {
"develop": "strapi develop",
@ -15,21 +15,21 @@
"mysql": "^2.17.1",
"pg": "^7.10.0",
"sqlite3": "^4.0.6",
"strapi": "3.0.0-beta.18.7",
"strapi-admin": "3.0.0-beta.18.7",
"strapi-connector-bookshelf": "3.0.0-beta.18.7",
"strapi-connector-mongoose": "3.0.0-beta.18.7",
"strapi-middleware-views": "3.0.0-beta.18.7",
"strapi-plugin-content-manager": "3.0.0-beta.18.7",
"strapi-plugin-content-type-builder": "3.0.0-beta.18.7",
"strapi-plugin-documentation": "3.0.0-beta.18.7",
"strapi-plugin-email": "3.0.0-beta.18.7",
"strapi-plugin-graphql": "3.0.0-beta.18.7",
"strapi-plugin-upload": "3.0.0-beta.18.7",
"strapi-plugin-users-permissions": "3.0.0-beta.18.7",
"strapi-provider-email-mailgun": "3.0.0-beta.18.7",
"strapi-provider-upload-aws-s3": "3.0.0-beta.18.7",
"strapi-utils": "3.0.0-beta.18.7"
"strapi": "3.0.0-beta.18.8",
"strapi-admin": "3.0.0-beta.18.8",
"strapi-connector-bookshelf": "3.0.0-beta.18.8",
"strapi-connector-mongoose": "3.0.0-beta.18.8",
"strapi-middleware-views": "3.0.0-beta.18.8",
"strapi-plugin-content-manager": "3.0.0-beta.18.8",
"strapi-plugin-content-type-builder": "3.0.0-beta.18.8",
"strapi-plugin-documentation": "3.0.0-beta.18.8",
"strapi-plugin-email": "3.0.0-beta.18.8",
"strapi-plugin-graphql": "3.0.0-beta.18.8",
"strapi-plugin-upload": "3.0.0-beta.18.8",
"strapi-plugin-users-permissions": "3.0.0-beta.18.8",
"strapi-provider-email-mailgun": "3.0.0-beta.18.8",
"strapi-provider-upload-aws-s3": "3.0.0-beta.18.8",
"strapi-utils": "3.0.0-beta.18.8"
},
"strapi": {
"uuid": "getstarted"

View File

@ -1,5 +1,5 @@
{
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"packages": [
"packages/*",
"examples/*"

View File

@ -1,6 +1,6 @@
{
"name": "create-strapi-app",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Generate a new Strapi application.",
"license": "MIT",
"homepage": "http://strapi.io",
@ -21,7 +21,7 @@
],
"dependencies": {
"commander": "^2.20.0",
"strapi-generate-new": "3.0.0-beta.18.7"
"strapi-generate-new": "3.0.0-beta.18.8"
},
"scripts": {
"test": "echo \"no tests yet\""

View File

@ -1,6 +1,6 @@
{
"name": "strapi-admin",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Strapi Admin",
"repository": {
"type": "git",
@ -85,8 +85,8 @@
"reselect": "^3.0.1",
"sanitize.css": "^4.1.0",
"shelljs": "^0.7.8",
"strapi-helper-plugin": "3.0.0-beta.18.7",
"strapi-utils": "3.0.0-beta.18.7",
"strapi-helper-plugin": "3.0.0-beta.18.8",
"strapi-utils": "3.0.0-beta.18.8",
"style-loader": "^0.23.1",
"styled-components": "^5.0.0",
"terser-webpack-plugin": "^1.2.3",

View File

@ -1,13 +1,7 @@
const _ = require('lodash');
const { singular } = require('pluralize');
module.exports = async ({
ORM,
loadedModel,
definition,
connection,
model,
}) => {
module.exports = async ({ ORM, loadedModel, definition, connection, model }) => {
const createIdType = (table, definition) => {
if (definition.primaryKeyType === 'uuid' && definition.client === 'pg') {
return table
@ -68,11 +62,8 @@ module.exports = async ({
case 'text':
return table.text(name, 'longtext');
case 'json':
return definition.client === 'pg'
? table.jsonb(name)
: table.text(name, 'longtext');
return definition.client === 'pg' ? table.jsonb(name) : table.text(name, 'longtext');
case 'enumeration':
return table.enu(name, attribute.enum || []);
case 'string':
case 'password':
case 'email':
@ -150,8 +141,7 @@ module.exports = async ({
// Create GIN indexes for every column.
const indexes = columns.map(column => {
const indexName = `${_.snakeCase(table)}_${column}`;
const attribute =
_.toLower(column) === column ? column : `"${column}"`;
const attribute = _.toLower(column) === column ? column : `"${column}"`;
return ORM.knex.raw(
`CREATE INDEX IF NOT EXISTS search_${_.toLower(
@ -298,9 +288,7 @@ module.exports = async ({
// drop possible conflicting indexes
await Promise.all(
columns.map(key =>
trx.raw('DROP INDEX IF EXISTS ??', uniqueColName(table, key))
)
columns.map(key => trx.raw('DROP INDEX IF EXISTS ??', uniqueColName(table, key)))
);
// create the table
@ -341,9 +329,7 @@ module.exports = async ({
}
} else {
const columnsToAlter = columns.filter(
key =>
JSON.stringify(previousAttributes[key]) !==
JSON.stringify(attributes[key])
key => JSON.stringify(previousAttributes[key]) !== JSON.stringify(attributes[key])
);
const alterTable = async trx => {

View File

@ -1,6 +1,6 @@
{
"name": "strapi-connector-bookshelf",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Bookshelf hook for the Strapi framework",
"homepage": "http://strapi.io",
"keywords": [
@ -22,7 +22,7 @@
"lodash": "^4.17.11",
"pluralize": "^7.0.0",
"rimraf": "3.0.0",
"strapi-utils": "3.0.0-beta.18.7"
"strapi-utils": "3.0.0-beta.18.8"
},
"peerDependencies": {
"knex": "^0.20.0"

View File

@ -1,6 +1,6 @@
{
"name": "strapi-connector-mongoose",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Mongoose hook for the Strapi framework",
"homepage": "http://strapi.io",
"keywords": [
@ -20,7 +20,7 @@
"mongoose-float": "^1.0.4",
"mongoose-long": "^0.2.1",
"pluralize": "^7.0.0",
"strapi-utils": "3.0.0-beta.18.7"
"strapi-utils": "3.0.0-beta.18.8"
},
"author": {
"email": "hi@strapi.io",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-database",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Strapi's database layer",
"homepage": "http://strapi.io",
"main": "./lib/index.js",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-api",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Generate an API for a Strapi application.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-controller",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Generate a controller for a Strapi API.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-model",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Generate a model for a Strapi API.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-new",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Generate a new Strapi application.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-plugin",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Generate an plugin for a Strapi application.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-policy",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Generate a policy for a Strapi API.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate-service",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Generate a service for a Strapi API.",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-generate",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Master of ceremonies for the Strapi generators.",
"homepage": "http://strapi.io",
"keywords": [
@ -20,7 +20,7 @@
"fs-extra": "^8.0.1",
"lodash": "^4.17.11",
"reportback": "^2.0.2",
"strapi-utils": "3.0.0-beta.18.7"
"strapi-utils": "3.0.0-beta.18.8"
},
"author": {
"name": "Strapi team",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-helper-plugin",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Helper for Strapi plugins development",
"files": [
"dist"

View File

@ -1,6 +1,6 @@
{
"name": "strapi-hook-ejs",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "EJS hook for the Strapi framework",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-hook-redis",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Redis hook for the Strapi framework",
"homepage": "http://strapi.io",
"keywords": [
@ -19,7 +19,7 @@
"lodash": "^4.17.11",
"rimraf": "3.0.0",
"stack-trace": "0.0.10",
"strapi-utils": "3.0.0-beta.18.7"
"strapi-utils": "3.0.0-beta.18.8"
},
"author": {
"email": "hi@strapi.io",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-middleware-views",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Views middleware to enable server-side rendering for the Strapi framework",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -81,7 +81,7 @@ function Inputs({ autoFocus, keys, layout, name, onBlur }) {
if (type === 'relation') {
return (
<div className="col-6" key={keys}>
<div key={keys}>
<SelectWrapper
{...metadatas}
name={keys}

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-content-manager",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "A powerful UI to easily manage your data.",
"strapi": {
"name": "Content Manager",
@ -30,8 +30,8 @@
"redux-immutable": "^4.0.0",
"reselect": "^3.0.1",
"showdown": "^1.9.0",
"strapi-helper-plugin": "3.0.0-beta.18.7",
"strapi-utils": "3.0.0-beta.18.7",
"strapi-helper-plugin": "3.0.0-beta.18.8",
"strapi-utils": "3.0.0-beta.18.8",
"yup": "^0.27.0"
},
"author": {

View File

@ -29,24 +29,24 @@ const getModelConfiguration = async key => {
};
const setModelConfiguration = async (key, value) => {
const config = (await getStore().get({ key: configurationKey(key) })) || {};
const storedConfig = (await getStore().get({ key: configurationKey(key) })) || {};
const currentConfig = { ...storedConfig };
Object.keys(value).forEach(key => {
if (value[key] !== null && value[key] !== undefined) {
_.set(config, key, value[key]);
_.set(currentConfig, key, value[key]);
}
});
return getStore().set({
key: configurationKey(key),
value: config,
});
if (!_.isEqual(currentConfig, storedConfig)) {
return getStore().set({
key: configurationKey(key),
value: currentConfig,
});
}
};
const deleteKey = key => {
return strapi
.query('core_store')
.delete({ key: `plugin_content_manager_configuration_${key}` });
return strapi.query('core_store').delete({ key: `plugin_content_manager_configuration_${key}` });
};
function findByKeyQuery({ model }, key) {
@ -79,8 +79,7 @@ const moveKey = (oldKey, newKey) => {
);
};
const getAllConfigurations = () =>
findByKey('plugin_content_manager_configuration');
const getAllConfigurations = () => findByKey('plugin_content_manager_configuration');
module.exports = {
getAllConfigurations,

View File

@ -452,6 +452,8 @@ const forms = {
disabled: data.type !== 'date',
},
]);
} else if (type === 'richtext') {
items.splice(4, 1);
} else if (type === 'uid') {
const uidItems = [
[{ ...fields.default, disabled: Boolean(data.targetField), type: 'text' }],

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-content-type-builder",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Strapi plugin to create content type (API).",
"strapi": {
"name": "Content Type Builder",
@ -26,10 +26,10 @@
"redux": "^4.0.1",
"redux-immutable": "^4.0.0",
"reselect": "^3.0.1",
"strapi-generate": "3.0.0-beta.18.7",
"strapi-generate-api": "3.0.0-beta.18.7",
"strapi-helper-plugin": "3.0.0-beta.18.7",
"strapi-utils": "3.0.0-beta.18.7",
"strapi-generate": "3.0.0-beta.18.8",
"strapi-generate-api": "3.0.0-beta.18.8",
"strapi-helper-plugin": "3.0.0-beta.18.8",
"strapi-utils": "3.0.0-beta.18.8",
"yup": "^0.27.0"
},
"author": {

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-documentation",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "This is the description of the plugin.",
"strapi": {
"name": "Documentation",
@ -32,7 +32,7 @@
"redux": "^4.0.1",
"redux-immutable": "^4.0.0",
"reselect": "^4.0.0",
"strapi-helper-plugin": "3.0.0-beta.18.7",
"strapi-helper-plugin": "3.0.0-beta.18.8",
"swagger-ui-dist": "3.24.3"
},
"author": {

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-email",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "This is the description of the plugin.",
"strapi": {
"name": "Email",
@ -13,13 +13,13 @@
},
"dependencies": {
"lodash": "^4.17.11",
"strapi-provider-email-sendmail": "3.0.0-beta.18.7",
"strapi-utils": "3.0.0-beta.18.7"
"strapi-provider-email-sendmail": "3.0.0-beta.18.8",
"strapi-utils": "3.0.0-beta.18.8"
},
"devDependencies": {
"react-copy-to-clipboard": "5.0.1",
"rimraf": "3.0.0",
"strapi-helper-plugin": "3.0.0-beta.18.7"
"strapi-helper-plugin": "3.0.0-beta.18.8"
},
"author": {
"name": "Strapi team",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-graphql",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "This is the description of the plugin.",
"strapi": {
"name": "graphql",
@ -24,7 +24,7 @@
"koa-compose": "^4.1.0",
"lodash": "4.17.11",
"pluralize": "^7.0.0",
"strapi-utils": "3.0.0-beta.18.7"
"strapi-utils": "3.0.0-beta.18.8"
},
"devDependencies": {
"cross-env": "^5.2.0",

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-upload",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "This is the description of the plugin.",
"strapi": {
"name": "Files Upload",
@ -23,9 +23,9 @@
"react-router-dom": "^5.0.0",
"react-transition-group": "^2.5.0",
"reactstrap": "^5.0.0",
"strapi-helper-plugin": "3.0.0-beta.18.7",
"strapi-provider-upload-local": "3.0.0-beta.18.7",
"strapi-utils": "3.0.0-beta.18.7",
"strapi-helper-plugin": "3.0.0-beta.18.8",
"strapi-provider-upload-local": "3.0.0-beta.18.8",
"strapi-utils": "3.0.0-beta.18.8",
"stream-to-array": "^2.3.0",
"uuid": "^3.2.1"
},

View File

@ -1,6 +1,6 @@
{
"name": "strapi-plugin-users-permissions",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Protect your API with a full-authentication process based on JWT",
"strapi": {
"name": "Roles & Permissions",
@ -32,8 +32,8 @@
"reactstrap": "^5.0.0",
"redux-saga": "^0.16.0",
"request": "^2.83.0",
"strapi-helper-plugin": "3.0.0-beta.18.7",
"strapi-utils": "3.0.0-beta.18.7",
"strapi-helper-plugin": "3.0.0-beta.18.8",
"strapi-utils": "3.0.0-beta.18.8",
"uuid": "^3.1.0"
},
"devDependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-email-amazon-ses",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Amazon SES provider for strapi email",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-email-mailgun",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Mailgun provider for strapi email plugin",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-email-sendgrid",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Sendgrid provider for strapi email",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-email-sendmail",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Sendmail provider for strapi email",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-upload-aws-s3",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "AWS S3 provider for strapi upload",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-upload-cloudinary",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Cloudinary provider for strapi upload",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-upload-local",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Local provider for strapi upload",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi-provider-upload-rackspace",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Rackspace provider for strapi upload",
"main": "./lib",
"keywords": [],

View File

@ -1,6 +1,6 @@
{
"name": "strapi-utils",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "Shared utilities for the Strapi packages",
"homepage": "http://strapi.io",
"keywords": [

View File

@ -1,6 +1,6 @@
{
"name": "strapi",
"version": "3.0.0-beta.18.7",
"version": "3.0.0-beta.18.8",
"description": "An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MongoDB, MySQL, MariaDB, PostgreSQL, SQLite",
"homepage": "http://strapi.io",
"directories": {
@ -50,16 +50,16 @@
"resolve-cwd": "^3.0.0",
"rimraf": "^2.6.2",
"shelljs": "^0.8.3",
"strapi-database": "3.0.0-beta.18.7",
"strapi-generate": "3.0.0-beta.18.7",
"strapi-generate-api": "3.0.0-beta.18.7",
"strapi-generate-controller": "3.0.0-beta.18.7",
"strapi-generate-model": "3.0.0-beta.18.7",
"strapi-generate-new": "3.0.0-beta.18.7",
"strapi-generate-plugin": "3.0.0-beta.18.7",
"strapi-generate-policy": "3.0.0-beta.18.7",
"strapi-generate-service": "3.0.0-beta.18.7",
"strapi-utils": "3.0.0-beta.18.7"
"strapi-database": "3.0.0-beta.18.8",
"strapi-generate": "3.0.0-beta.18.8",
"strapi-generate-api": "3.0.0-beta.18.8",
"strapi-generate-controller": "3.0.0-beta.18.8",
"strapi-generate-model": "3.0.0-beta.18.8",
"strapi-generate-new": "3.0.0-beta.18.8",
"strapi-generate-plugin": "3.0.0-beta.18.8",
"strapi-generate-policy": "3.0.0-beta.18.8",
"strapi-generate-service": "3.0.0-beta.18.8",
"strapi-utils": "3.0.0-beta.18.8"
},
"scripts": {
"postinstall": "node lib/utils/success.js"