mirror of
https://github.com/strapi/strapi.git
synced 2025-10-19 12:02:38 +00:00
Merge branch 'master' into design/marketplace
This commit is contained in:
commit
12e673a9d6
@ -347,6 +347,9 @@ The session doesn't work with `mongo` as a client. The package that we should us
|
|||||||
- `enabled` (boolean): Enable or not GZIP response compression.
|
- `enabled` (boolean): Enable or not GZIP response compression.
|
||||||
- `responseTime`
|
- `responseTime`
|
||||||
- `enabled` (boolean): Enable or not `X-Response-Time header` to response. Default value: `false`.
|
- `enabled` (boolean): Enable or not `X-Response-Time header` to response. Default value: `false`.
|
||||||
|
- `poweredBy`
|
||||||
|
- `enabled` (boolean): Enable or not `X-Powered-By` header to response. Default value: `true`.
|
||||||
|
- `value` (string): The value of the header. Default value: `Strapi <strapi.io>`
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ Easily filter results according to fields values.
|
|||||||
- `_gt`: Greater than
|
- `_gt`: Greater than
|
||||||
- `_lte`: Lower than or equal to
|
- `_lte`: Lower than or equal to
|
||||||
- `_gte`: Greater than or equal to
|
- `_gte`: Greater than or equal to
|
||||||
|
- `_in`: Include in array
|
||||||
- `_contains`: Contains
|
- `_contains`: Contains
|
||||||
- `_containss`: Contains case sensitive
|
- `_containss`: Contains case sensitive
|
||||||
|
|
||||||
@ -37,6 +38,9 @@ Find products having a price equal or greater than `3`.
|
|||||||
|
|
||||||
`GET /products?price_gte=3`
|
`GET /products?price_gte=3`
|
||||||
|
|
||||||
|
Find multiple product with id 3, 6, 8
|
||||||
|
`GET /products?id_in=3&id_in=6&id_in=8`
|
||||||
|
|
||||||
::: note
|
::: note
|
||||||
You can't use filter to have specific results inside relation, like "Find users and only their posts older than yesterday" as example. If you need it, you can modify or create your own service or use [GraphQL](./graphql.md#query-api).
|
You can't use filter to have specific results inside relation, like "Find users and only their posts older than yesterday" as example. If you need it, you can modify or create your own service or use [GraphQL](./graphql.md#query-api).
|
||||||
:::
|
:::
|
||||||
|
@ -4,5 +4,9 @@
|
|||||||
},
|
},
|
||||||
"responseTime": {
|
"responseTime": {
|
||||||
"enabled": false
|
"enabled": false
|
||||||
|
},
|
||||||
|
"poweredBy": {
|
||||||
|
"enabled": true,
|
||||||
|
"value": "Strapi <strapi.io>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"defaultConnection": "default",
|
|
||||||
"connections": {
|
|
||||||
"default": {
|
|
||||||
"connector": "strapi-hook-mongoose",
|
|
||||||
"settings": {
|
|
||||||
"client": "mongo",
|
|
||||||
"uri": "${process.env.DATABASE_URI || ''}",
|
|
||||||
"host": "${process.env.DATABASE_HOST || '127.0.0.1'}",
|
|
||||||
"port": "${process.env.DATABASE_PORT || 27017}",
|
|
||||||
"database": "${process.env.DATABASE_NAME || 'strapi-production'}",
|
|
||||||
"username": "${process.env.DATABASE_USERNAME || ''}",
|
|
||||||
"password": "${process.env.DATABASE_PASSWORD || ''}"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"ssl": "${process.env.DATABASE_SSL || false}",
|
|
||||||
"authenticationDatabase": "${process.env.DATABASE_AUTHENTICATION_DATABASE || ''}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,5 +4,9 @@
|
|||||||
},
|
},
|
||||||
"responseTime": {
|
"responseTime": {
|
||||||
"enabled": false
|
"enabled": false
|
||||||
|
},
|
||||||
|
"poweredBy": {
|
||||||
|
"enabled": true,
|
||||||
|
"value": "Strapi <strapi.io>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"defaultConnection": "default",
|
|
||||||
"connections": {
|
|
||||||
"default": {
|
|
||||||
"connector": "strapi-hook-mongoose",
|
|
||||||
"settings": {
|
|
||||||
"client": "mongo",
|
|
||||||
"uri": "${process.env.DATABASE_URI || ''}",
|
|
||||||
"host": "${process.env.DATABASE_HOST || '127.0.0.1'}",
|
|
||||||
"port": "${process.env.DATABASE_PORT || 27017}",
|
|
||||||
"database": "${process.env.DATABASE_NAME || 'strapi-staging'}",
|
|
||||||
"username": "${process.env.DATABASE_USERNAME || ''}",
|
|
||||||
"password": "${process.env.DATABASE_PASSWORD || ''}"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"ssl": "${process.env.DATABASE_SSL || false}",
|
|
||||||
"authenticationDatabase": "${process.env.DATABASE_AUTHENTICATION_DATABASE || ''}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,5 +4,9 @@
|
|||||||
},
|
},
|
||||||
"responseTime": {
|
"responseTime": {
|
||||||
"enabled": false
|
"enabled": false
|
||||||
|
},
|
||||||
|
"poweredBy": {
|
||||||
|
"enabled": true,
|
||||||
|
"value": "Strapi <strapi.io>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,48 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
module.exports = scope => {
|
module.exports = scope => {
|
||||||
|
// Production/Staging Template
|
||||||
|
if (['production', 'staging'].includes(scope.keyPath.split('/')[2])) {
|
||||||
|
// All available settings (bookshelf and mongoose)
|
||||||
|
const settingsBase = {
|
||||||
|
client: scope.client.database,
|
||||||
|
host: '${process.env.DATABASE_HOST || \'127.0.0.1\' }',
|
||||||
|
port: '${process.env.DATABASE_PORT || 27017 }',
|
||||||
|
srv: '${process.env.DATABASE_SRV || false }',
|
||||||
|
database: '${process.env.DATABASE_NAME || strapi }',
|
||||||
|
username: '${process.env.DATABASE_USERNAME || \'\' }',
|
||||||
|
password: '${process.env.DATABASE_PASSWORD || \'\' }',
|
||||||
|
ssl: '${process.env.DATABASE_SSL || false }'
|
||||||
|
};
|
||||||
|
|
||||||
|
// Apply only settings set during the configuration
|
||||||
|
Object.keys(scope.database.settings).forEach((key) => {
|
||||||
|
scope.database.settings[key] = settingsBase[key];
|
||||||
|
});
|
||||||
|
|
||||||
|
// All available options (bookshelf and mongoose)
|
||||||
|
const optionsBase = {
|
||||||
|
ssl: '${process.env.DATABASE_SSL || false }',
|
||||||
|
authenticationDatabase: '${process.env.DATABASE_AUTHENTICATION_DATABASE || \'\' }'
|
||||||
|
};
|
||||||
|
|
||||||
|
// Apply only options set during the configuration
|
||||||
|
Object.keys(scope.database.options).forEach((key) => {
|
||||||
|
scope.database.options[key] = optionsBase[key];
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
defaultConnection: 'default',
|
||||||
|
connections: {
|
||||||
|
default: {
|
||||||
|
connector: scope.client.connector,
|
||||||
|
settings: scope.database.settings,
|
||||||
|
options: scope.database.options
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// Finally, return the JSON.
|
|
||||||
return {
|
return {
|
||||||
defaultConnection: 'default',
|
defaultConnection: 'default',
|
||||||
connections: {
|
connections: {
|
||||||
|
@ -15,10 +15,10 @@ const fs = require('fs-extra');
|
|||||||
const npm = require('enpeem');
|
const npm = require('enpeem');
|
||||||
const ora = require('ora');
|
const ora = require('ora');
|
||||||
const shell = require('shelljs');
|
const shell = require('shelljs');
|
||||||
const request = require('request');
|
|
||||||
|
|
||||||
// Logger.
|
// Logger.
|
||||||
const { packageManager } = require('strapi-utils');
|
const { packageManager } = require('strapi-utils');
|
||||||
|
const trackSuccess = require('./success');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs after this generator has finished
|
* Runs after this generator has finished
|
||||||
@ -201,14 +201,4 @@ module.exports = (scope, cb) => {
|
|||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function trackSuccess(event, scope) {
|
|
||||||
request
|
|
||||||
.post('https://analytics.strapi.io/track')
|
|
||||||
.form({
|
|
||||||
event,
|
|
||||||
uuid: scope.uuid
|
|
||||||
})
|
|
||||||
.on('error', () => {});
|
|
||||||
}
|
|
@ -21,6 +21,7 @@ const uuid = require('uuid/v4');
|
|||||||
|
|
||||||
// Logger.
|
// Logger.
|
||||||
const { packageManager } = require('strapi-utils');
|
const { packageManager } = require('strapi-utils');
|
||||||
|
const trackSuccess = require('./success');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This `before` function is run before generating targets.
|
* This `before` function is run before generating targets.
|
||||||
@ -49,6 +50,8 @@ module.exports = (scope, cb) => {
|
|||||||
scope.tmpPath = path.resolve(os.tmpdir(), `strapi${ crypto.randomBytes(6).toString('hex') }`);
|
scope.tmpPath = path.resolve(os.tmpdir(), `strapi${ crypto.randomBytes(6).toString('hex') }`);
|
||||||
scope.uuid = uuid();
|
scope.uuid = uuid();
|
||||||
|
|
||||||
|
trackSuccess('willCreateProject', scope);
|
||||||
|
|
||||||
// Ensure we aren't going to inadvertently delete any files.
|
// Ensure we aren't going to inadvertently delete any files.
|
||||||
try {
|
try {
|
||||||
const files = fs.readdirSync(scope.rootPath);
|
const files = fs.readdirSync(scope.rootPath);
|
||||||
@ -205,12 +208,16 @@ module.exports = (scope, cb) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scope.database.settings.host = answers.host;
|
scope.database.settings.host = answers.host;
|
||||||
scope.database.settings.srv = _.toString(answers.srv) === 'true';
|
|
||||||
scope.database.settings.port = answers.port;
|
scope.database.settings.port = answers.port;
|
||||||
scope.database.settings.database = answers.database;
|
scope.database.settings.database = answers.database;
|
||||||
scope.database.settings.username = answers.username;
|
scope.database.settings.username = answers.username;
|
||||||
scope.database.settings.password = answers.password;
|
scope.database.settings.password = answers.password;
|
||||||
scope.database.options.authenticationDatabase = answers.authenticationDatabase;
|
if (answers.srv) {
|
||||||
|
scope.database.settings.srv = _.toString(answers.srv) === 'true';
|
||||||
|
}
|
||||||
|
if (answers.authenticationDatabase) {
|
||||||
|
scope.database.options.authenticationDatabase = answers.authenticationDatabase;
|
||||||
|
}
|
||||||
if (scope.client.database === 'mongo') {
|
if (scope.client.database === 'mongo') {
|
||||||
scope.database.options.ssl = _.toString(answers.ssl) === 'true';
|
scope.database.options.ssl = _.toString(answers.ssl) === 'true';
|
||||||
} else {
|
} else {
|
||||||
|
@ -34,6 +34,14 @@ module.exports = {
|
|||||||
jsonfile: database
|
jsonfile: database
|
||||||
},
|
},
|
||||||
|
|
||||||
|
'config/environments/production/database.json': {
|
||||||
|
jsonfile: database
|
||||||
|
},
|
||||||
|
|
||||||
|
'config/environments/staging/database.json': {
|
||||||
|
jsonfile: database
|
||||||
|
},
|
||||||
|
|
||||||
// Copy dot files.
|
// Copy dot files.
|
||||||
'.editorconfig': {
|
'.editorconfig': {
|
||||||
copy: 'editorconfig'
|
copy: 'editorconfig'
|
||||||
|
18
packages/strapi-generate-new/lib/success.js
Normal file
18
packages/strapi-generate-new/lib/success.js
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Node.js core.
|
||||||
|
const request = require('request');
|
||||||
|
|
||||||
|
module.exports = function trackSuccess(event, scope) {
|
||||||
|
request
|
||||||
|
.post('https://analytics.strapi.io/track')
|
||||||
|
.form({
|
||||||
|
event,
|
||||||
|
uuid: scope.uuid
|
||||||
|
})
|
||||||
|
.on('error', () => {});
|
||||||
|
};
|
@ -422,8 +422,10 @@ module.exports = function(strapi) {
|
|||||||
case 'email':
|
case 'email':
|
||||||
type = 'varchar(255)';
|
type = 'varchar(255)';
|
||||||
break;
|
break;
|
||||||
case 'integer':
|
|
||||||
case 'biginteger':
|
case 'biginteger':
|
||||||
|
type = definition.client === 'pg' ? 'bigint' : 'bigint(53)';
|
||||||
|
break;
|
||||||
|
case 'integer':
|
||||||
type = definition.client === 'pg' ? 'integer' : 'int';
|
type = definition.client === 'pg' ? 'integer' : 'int';
|
||||||
break;
|
break;
|
||||||
case 'float':
|
case 'float':
|
||||||
|
@ -160,6 +160,28 @@ module.exports = function (strapi) {
|
|||||||
} else {
|
} else {
|
||||||
this._mongooseOptions.populate[association.alias].path = `${association.alias}.ref`;
|
this._mongooseOptions.populate[association.alias].path = `${association.alias}.ref`;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (!this._mongooseOptions.populate) {
|
||||||
|
this._mongooseOptions.populate = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Images are not displayed in populated data.
|
||||||
|
// We automatically populate morph relations.
|
||||||
|
if (association.nature === 'oneToManyMorph' || association.nature === 'manyToManyMorph') {
|
||||||
|
this._mongooseOptions.populate[association.alias] = {
|
||||||
|
path: association.alias,
|
||||||
|
match: {
|
||||||
|
[`${association.via}.${association.filter}`]: association.alias,
|
||||||
|
[`${association.via}.kind`]: definition.globalId
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
sort: '-createdAt'
|
||||||
|
},
|
||||||
|
select: undefined,
|
||||||
|
model: undefined,
|
||||||
|
_docs: {}
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
@ -554,4 +576,4 @@ module.exports = function (strapi) {
|
|||||||
}, relations);
|
}, relations);
|
||||||
|
|
||||||
return hook;
|
return hook;
|
||||||
};
|
};
|
||||||
|
@ -4,5 +4,5 @@
|
|||||||
"databases.connections.${name}.settings.host": "col-md-12",
|
"databases.connections.${name}.settings.host": "col-md-12",
|
||||||
"database.connections.settings.host": "col-md-12",
|
"database.connections.settings.host": "col-md-12",
|
||||||
"database.connections.settings.port": "col-md-6",
|
"database.connections.settings.port": "col-md-6",
|
||||||
"showInputLabel": ["form.response.item.gzip.enabled", "form.response.item.responseTime.enabled"]
|
"showInputLabel": ["form.response.item.gzip.enabled", "form.response.item.responseTime.enabled", "form.response.item.poweredBy.enabled"]
|
||||||
}
|
}
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "قم بتكوين إعدادات الاستجابة الخاصة بك.",
|
"form.response.description": "قم بتكوين إعدادات الاستجابة الخاصة بك.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "وقت الاستجابة",
|
"form.response.item.responseTime.enabled": "وقت الاستجابة",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "القيمة",
|
||||||
"form.response.name": "الإستجابة",
|
"form.response.name": "الإستجابة",
|
||||||
"form.security.description": "تكوين إعدادات الأمان الخاصة بك.",
|
"form.security.description": "تكوين إعدادات الأمان الخاصة بك.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Verwalte deine Antworteinstellungen.",
|
"form.response.description": "Verwalte deine Antworteinstellungen.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Antwortzeit",
|
"form.response.item.responseTime.enabled": "Antwortzeit",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Wert",
|
||||||
"form.response.name": "Antwort",
|
"form.response.name": "Antwort",
|
||||||
"form.security.description": "Verwalte deine Sicherheitseinstellungen.",
|
"form.security.description": "Verwalte deine Sicherheitseinstellungen.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Configure your response settings.",
|
"form.response.description": "Configure your response settings.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Response Time",
|
"form.response.item.responseTime.enabled": "Response Time",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Value",
|
||||||
"form.response.name": "Response",
|
"form.response.name": "Response",
|
||||||
"form.security.description": "Configure your security settings.",
|
"form.security.description": "Configure your security settings.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Configurar las opciones de respuesta.",
|
"form.response.description": "Configurar las opciones de respuesta.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Tiempo de respuesta",
|
"form.response.item.responseTime.enabled": "Tiempo de respuesta",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Valor",
|
||||||
"form.response.name": "Respuesta",
|
"form.response.name": "Respuesta",
|
||||||
"form.security.description": "Configurar las opciones de seguridad.",
|
"form.security.description": "Configurar las opciones de seguridad.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Configuration des réponses.",
|
"form.response.description": "Configuration des réponses.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Temps de réponse",
|
"form.response.item.responseTime.enabled": "Temps de réponse",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Valeur",
|
||||||
"form.response.name": "Réponse",
|
"form.response.name": "Réponse",
|
||||||
"form.security.description": "Configurations de sécurité.",
|
"form.security.description": "Configurations de sécurité.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Configurare la tua risposta impostazioni.",
|
"form.response.description": "Configurare la tua risposta impostazioni.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Il Tempo Di Risposta",
|
"form.response.item.responseTime.enabled": "Il Tempo Di Risposta",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Valore",
|
||||||
"form.response.name": "Risposta",
|
"form.response.name": "Risposta",
|
||||||
"form.security.description": "Configurare le impostazioni di sicurezza.",
|
"form.security.description": "Configurare le impostazioni di sicurezza.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "レスポンス設定を構成します。",
|
"form.response.description": "レスポンス設定を構成します。",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Response Time",
|
"form.response.item.responseTime.enabled": "Response Time",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Value",
|
||||||
"form.response.name": "レスポンス",
|
"form.response.name": "レスポンス",
|
||||||
"form.security.description": "セキュリティ設定を構成します。",
|
"form.security.description": "セキュリティ設定を構成します。",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "응답(response) 환경을 설정하세요.",
|
"form.response.description": "응답(response) 환경을 설정하세요.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "응답 시간 (Response Time)",
|
"form.response.item.responseTime.enabled": "응답 시간 (Response Time)",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "값",
|
||||||
"form.response.name": "응답 (Response)",
|
"form.response.name": "응답 (Response)",
|
||||||
"form.security.description": "보안 환경을 설정하세요.",
|
"form.security.description": "보안 환경을 설정하세요.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Configureer je response instellingen.",
|
"form.response.description": "Configureer je response instellingen.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Response Tijd",
|
"form.response.item.responseTime.enabled": "Response Tijd",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Waarde",
|
||||||
"form.response.name": "Response",
|
"form.response.name": "Response",
|
||||||
"form.security.description": "Configureer je beveiliging instellingen.",
|
"form.security.description": "Configureer je beveiliging instellingen.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Konfiguruj ustawienia odpowiedzi.",
|
"form.response.description": "Konfiguruj ustawienia odpowiedzi.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Czas odpowiedzi",
|
"form.response.item.responseTime.enabled": "Czas odpowiedzi",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Wartość",
|
||||||
"form.response.name": "Odpowiedzi",
|
"form.response.name": "Odpowiedzi",
|
||||||
"form.security.description": "Konfiguruj ustawienia bezpieczeństwa.",
|
"form.security.description": "Konfiguruj ustawienia bezpieczeństwa.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Defina as suas configurações de resposta.",
|
"form.response.description": "Defina as suas configurações de resposta.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Tempo de resposta",
|
"form.response.item.responseTime.enabled": "Tempo de resposta",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Valor",
|
||||||
"form.response.name": "Resposta",
|
"form.response.name": "Resposta",
|
||||||
"form.security.description": "Defina as suas configurações de segurança.",
|
"form.security.description": "Defina as suas configurações de segurança.",
|
||||||
"form.security.item.cors": "CORS",
|
"form.security.item.cors": "CORS",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Configure as suas definições de resposta.",
|
"form.response.description": "Configure as suas definições de resposta.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Tempo de resposta",
|
"form.response.item.responseTime.enabled": "Tempo de resposta",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Valor",
|
||||||
"form.response.name": "Resposta",
|
"form.response.name": "Resposta",
|
||||||
"form.security.description": "Configure as suas definições de segurança.",
|
"form.security.description": "Configure as suas definições de segurança.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Задайте настройки ответа.",
|
"form.response.description": "Задайте настройки ответа.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Время ответа",
|
"form.response.item.responseTime.enabled": "Время ответа",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Value",
|
||||||
"form.response.name": "Ответ",
|
"form.response.name": "Ответ",
|
||||||
"form.security.description": "Задайте настройки безопасности.",
|
"form.security.description": "Задайте настройки безопасности.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "Yanıt ayarlarınızı yapılandırın.",
|
"form.response.description": "Yanıt ayarlarınızı yapılandırın.",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Tepki Süresi",
|
"form.response.item.responseTime.enabled": "Tepki Süresi",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Değer",
|
||||||
"form.response.name": "Cevap",
|
"form.response.name": "Cevap",
|
||||||
"form.security.description": "Güvenlik ayarlarınızı yapılandırın.",
|
"form.security.description": "Güvenlik ayarlarınızı yapılandırın.",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -47,6 +47,8 @@
|
|||||||
"form.response.description": "配置您的响应设置。",
|
"form.response.description": "配置您的响应设置。",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "Response Time",
|
"form.response.item.responseTime.enabled": "Response Time",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "Value",
|
||||||
"form.response.name": "Response",
|
"form.response.name": "Response",
|
||||||
"form.security.description": "配置安全设置。",
|
"form.security.description": "配置安全设置。",
|
||||||
"form.security.item.cors": "Cors",
|
"form.security.item.cors": "Cors",
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
"form.response.description": "調整回應設定",
|
"form.response.description": "調整回應設定",
|
||||||
"form.response.item.gzip.enabled": "Gzip",
|
"form.response.item.gzip.enabled": "Gzip",
|
||||||
"form.response.item.responseTime.enabled": "回應時間",
|
"form.response.item.responseTime.enabled": "回應時間",
|
||||||
|
"form.response.item.poweredBy.enabled": "Powered by",
|
||||||
|
"form.response.item.poweredBy.value": "值",
|
||||||
"form.response.name": "回應",
|
"form.response.name": "回應",
|
||||||
"form.security.description": "調整安全性設定",
|
"form.security.description": "調整安全性設定",
|
||||||
"form.security.item.cors": "跨域資源共享 (Cors)",
|
"form.security.item.cors": "跨域資源共享 (Cors)",
|
||||||
|
@ -198,7 +198,12 @@ module.exports = {
|
|||||||
validations: {
|
validations: {
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
items: [
|
||||||
{
|
{
|
||||||
name: 'form.response.item.responseTime.enabled',
|
name: 'form.response.item.responseTime.enabled',
|
||||||
target: 'response.responseTime.enabled',
|
target: 'response.responseTime.enabled',
|
||||||
@ -209,6 +214,28 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
name: 'form.response.item.poweredBy.enabled',
|
||||||
|
target: 'response.poweredBy.enabled',
|
||||||
|
type: 'boolean',
|
||||||
|
value: _.get(strapi.config, `environments.${env}.response.poweredBy.enabled`, null),
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
name: 'form.response.item.poweredBy.value',
|
||||||
|
target: 'response.poweredBy.value',
|
||||||
|
type: 'string',
|
||||||
|
value: _.get(strapi.config, `environments.${env}.response.poweredBy.value`, null),
|
||||||
|
validations : {
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
|
@ -40,6 +40,7 @@ module.exports = {
|
|||||||
'cn-north-1',
|
'cn-north-1',
|
||||||
'cn-northwest-1',
|
'cn-northwest-1',
|
||||||
'eu-central-1',
|
'eu-central-1',
|
||||||
|
'eu-north-1',
|
||||||
'eu-west-1',
|
'eu-west-1',
|
||||||
'eu-west-2',
|
'eu-west-2',
|
||||||
'eu-west-3',
|
'eu-west-3',
|
||||||
|
@ -61,6 +61,7 @@ module.exports = function (name, cliArguments) {
|
|||||||
settings: {
|
settings: {
|
||||||
client: cliArguments.dbclient,
|
client: cliArguments.dbclient,
|
||||||
host: cliArguments.dbhost,
|
host: cliArguments.dbhost,
|
||||||
|
srv: cliArguments.dbsrv,
|
||||||
port: cliArguments.dbport,
|
port: cliArguments.dbport,
|
||||||
database: cliArguments.dbname,
|
database: cliArguments.dbname,
|
||||||
username: cliArguments.dbusername,
|
username: cliArguments.dbusername,
|
||||||
|
@ -56,6 +56,7 @@ program
|
|||||||
.option('--debug', 'Display database connection error')
|
.option('--debug', 'Display database connection error')
|
||||||
.option('--dbclient <dbclient>', 'Database client')
|
.option('--dbclient <dbclient>', 'Database client')
|
||||||
.option('--dbhost <dbhost>', 'Database host')
|
.option('--dbhost <dbhost>', 'Database host')
|
||||||
|
.option('--dbsrv <dbsrv>', 'Database srv')
|
||||||
.option('--dbport <dbport>', 'Database port')
|
.option('--dbport <dbport>', 'Database port')
|
||||||
.option('--dbname <dbname>', 'Database name')
|
.option('--dbname <dbname>', 'Database name')
|
||||||
.option('--dbusername <dbusername>', 'Database username')
|
.option('--dbusername <dbusername>', 'Database username')
|
||||||
|
@ -22,8 +22,8 @@ module.exports = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set X-Powered-By header.
|
// Set X-Powered-By header.
|
||||||
if (_.get(strapi.config, 'X-Powered-By.enabled', true)) {
|
if (_.get(strapi.config.currentEnvironment.response, 'poweredBy.enabled')) {
|
||||||
ctx.set('X-Powered-By', 'Strapi <strapi.io>');
|
ctx.set('X-Powered-By', _.get(strapi.config.currentEnvironment.response, 'poweredBy.value', 'Strapi <strapi.io>'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
cb();
|
cb();
|
||||||
|
21
packages/strapi/lib/utils/success.js
Normal file
21
packages/strapi/lib/utils/success.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Node.js core.
|
||||||
|
const fetch = require('node-fetch');
|
||||||
|
|
||||||
|
if (process.env.npm_config_global === 'true') {
|
||||||
|
fetch('https://analytics.strapi.io/track', {
|
||||||
|
method: 'POST',
|
||||||
|
body: JSON.stringify({ event: 'didInstallStrapi' }),
|
||||||
|
headers: { 'Content-Type': 'application/json' }
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -71,6 +71,9 @@
|
|||||||
"strapi-generate-service": "3.0.0-alpha.21",
|
"strapi-generate-service": "3.0.0-alpha.21",
|
||||||
"strapi-utils": "3.0.0-alpha.21"
|
"strapi-utils": "3.0.0-alpha.21"
|
||||||
},
|
},
|
||||||
|
"scripts": {
|
||||||
|
"postinstall": "node lib/utils/success.js"
|
||||||
|
},
|
||||||
"author": {
|
"author": {
|
||||||
"email": "hi@strapi.io",
|
"email": "hi@strapi.io",
|
||||||
"name": "Strapi team",
|
"name": "Strapi team",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user