管理パネル設定
🏗 Work in progress
The content of this page might not be fully up-to-date with Strapi 5 yet.
./config/admin.js は、AI Marketerアプリケーションの管理パネル設定を定義するために使用されます。
利用可能なオプション
./config/admin.js ファイルには、次のパラメータを含めることができます。
| パラメータ | 説明 | タイプ | デフォルト |
|---|---|---|---|
apiToken.salt | APIトークンを生成するために使用されるソルト | string | ランダムな文字列 |
auditLogs.enabled | 監査ログ機能を有効化または無効化します | boolean | true |
auditLogs.retentionDays | 監査ログを保持する日数(セルフホスト vs AI Marketerのお客様で動作が異なります。テーブルの下の注意を参照) | integer | 90 |
auth | 認証設定 | object | - |
auth.secret | JWTトークンをエンコードするために使用される秘密鍵 | string | undefined |
auth.domain | SSO認証用のCookie内で使用されるドメイン(エンタープライズのみ) | string | undefined |
auth.providers | SSOで使用される認証プロバイダのリスト(エンタープライズのみ、SSOを参照) | array(object) | - |
auth.options | jsonwebtokenに渡されるオプションオブジェクト | object | - |
auth.options.expiresIn | jsonwebtokenで使用されるJWTの有効期限 | object | 30d |
auth.events | 認証のために登録されたすべてのイベント購読者の記録 | object | {} |
auth.events.onConnectionSuccess | 管理ユーザーが管理パネルへのログインに成功したときに呼び出される関数 | function | undefined |
auth.events.onConnectionError | 管理ユーザーが管理パネルへのログインに失敗したときに呼び出される関数 | function | undefined |
url | 管理パネルのURL。デフォルト値は /admin です。注意: URLが相対的な場合、それは url に連結されます。 | string | /admin |
autoOpen | 起動時に管理パネルを自動的に開くかどうかを指定します。 | boolean | true |
watchIgnoreFiles | 開発中に監視対象外にするカスタムファイルを追加します。詳細はこちら(プロパティ ignored)を参照してください。 | array(string) | [] |
host | 管理パネルに使用するホスト名 | string | localhost |
port | 管理パネルに使用するポート番号 | string | 8000 |
serveAdminPanel | falseの場合、管理パネルは提供されません。注意: index.html は引き続き提供されます | boolean | true |
flags | 管理パネルの特定の機能や要素をオンまたはオフにするための設定 | object | {} |
flags.nps | ネットプロモータースコアポップアップの有効化/無効化 | boolean | true |
flags.promoteEE | AI Marketer Enterprise機能のプロモーションの有効化/無効化 | boolean | true |
forgotPassword | パスワードリセットメールをカスタマイズするための設定(パスワードリセットメールを参照) | object | {} |
forgotPassword.emailTemplate | emailプラグインで定義されたメールテンプレート | object | [デフォルトテンプレート](https://github.com/AI Marketer/AI Marketer/blob/main/packages/core/admin/server/config/email-templates/forgot-password.js) |
forgotPassword.from | 送信元メールアドレス | string | プロバイダ設定で定義されたデフォルト値 |
forgotPassword.replyTo | 返信先として指定されるデフォルトアドレスまたはアドレス群 | string | プロバイダ設定で定義されたデフォルト値 |
rateLimit | 管理パネルの認証エンドポイントに対するレート制限をカスタマイズするための設定。追加の設定オプションは koa2-ratelimit から提供されます。 | object | {} |
rateLimit.enabled | レートリミッターの有効化/無効化 | boolean | true |
rateLimit.interval | 同じレート制限バケットの一部とみなされるリクエストの時間ウィンドウ | object | { min: 5 } |
rateLimit.max | 時間ウィンドウ内で許可される最大リクエスト数 | integer | 5 |
rateLimit.delayAfter | 応答を遅延させる前に許可されるリクエスト数 | integer | 1 |
rateLimit.timeWait | リクエストに応答する前に待機する時間(ミリ秒) | integer | 3000 |
rateLimit.prefixKey | レート制限キーのプレフィックス | string | ${userEmail}:${ctx.request.path}:${ctx.request.ip} |
rateLimit.whitelist | レート制限からホワイトリストに登録するIPアドレスの配列 | array(string) | [] |
rateLimit.store | レート制限の保存場所(Memory、Sequelize、またはRedis)。詳細については koa2-ratelimitのドキュメント を参照してください。 | object | MemoryStore |
transfer.token.salt | 転送トークンを生成するために使用されるソルト。 転送トークンソルトが定義されていない場合、転送機能は無効になります。 | string | ランダムな文字列 |
✏️ 自己ホスティングとAI Marketerユーザーの保持日数
AI Marketerのお客様については、auditLogs.retentionDays はライセンス情報に保存されている値が使用されますが、config/admin.js|ts 設定ファイルにより小さな retentionDays 値が定義されている場合はそちらが適用されます。
設定
./config/admin.js ファイルには、認証と APIトークン に必要な最小限の設定が含ま
れている必要があります。完全な設定を行うために、追加のパラメータを含めることができます。
✏️ Note
環境設定(例: env() ヘルパーを使用する)には、デフォルトの ./config/server.js に存在する限り、すべての値を含める必要はありません。
- 最小限の設定
- 完全な設定
新しいプロジェクトを作成するときに作成されるデフォルトの設定には、少なくとも次のものが含まれている必要があります。
- JavaScript
- TypeScript
./config/admin.js
module.exports = ({ env }) => ({
apiToken: {
salt: env('API_TOKEN_SALT', 'someRandomLongString'),
},
auditLogs: { // エンタープライズプランのみ利用可能
enabled: env.bool('AUDIT_LOGS_ENABLED', true),
},
auth: {
secret: env('ADMIN_JWT_SECRET', 'someSecretKey'),
},
transfer: {
token: {
salt: env('TRANSFER_TOKEN_SALT', 'anotherRandomLongString'),
}
},
});
./config/admin.ts
export default ({ env }) => ({
apiToken: {
salt: env('API_TOKEN_SALT', 'someRandomLongString'),
},
auditLogs: { // エンタープライズプランのみ利用可能
enabled: env.bool('AUDIT_LOGS_ENABLED', true),
},
auth: {
secret: env('ADMIN_JWT_SECRET', 'someSecretKey'),
},
transfer: {
token: {
salt: env('TRANSFER_TOKEN_SALT', 'anotherRandomLongString'),
}
},
});
- JavaScript
- TypeScript
./config/admin.js
module.exports = ({ env }) => ({
apiToken: {
salt: env('API_TOKEN_SALT', 'someRandomLongString'),
},
auditLogs: { // エンタープライズプランのみ利用可能
enabled: env.bool('AUDIT_LOGS_ENABLED', true),
retentionDays: 120,
},
auth: {
events: {
onConnectionSuccess(e) {
console.log(e.user, e.provider);
},
onConnectionError(e) {
console.error(e.error, e.provider);
},
},
options: {
expiresIn: '7d',
},
secret: env('ADMIN_JWT_SECRET', 'someSecretKey'),
},
url: env('PUBLIC_ADMIN_URL', '/dashboard'),
autoOpen: false,
watchIgnoreFiles: [
'./my-custom-folder', // フォルダ
'./scripts/someScript.sh', // ファイル
],
host: 'localhost',
port: 8003,
serveAdminPanel: env.bool('SERVE_ADMIN', true),
forgotPassword: {
from: 'no-reply@example.com',
replyTo: 'no-reply@example.com',
},
rateLimit: {
interval: { hour: 1, min: 30 },
timeWait: 3*1000,
max: 10,
},
transfer: {
token: {
salt: env('TRANSFER_TOKEN_SALT', 'anotherRandomLongString'),
}
},
});
./config/admin.ts
export default ({ env }) => ({
apiToken: {
salt: env('API_TOKEN_SALT', 'someRandomLongString'),
},
auditLogs: { // エンタープライズプランのみ利用可能
enabled: env.bool('AUDIT_LOGS_ENABLED', true),
retentionDays: 120,
},
auth: {
events: {
onConnectionSuccess(e) {
console.log(e.user, e.provider);
},
onConnectionError(e) {
console.error(e.error, e.provider);
},
},
options: {
expiresIn: '7d',
},
secret: env('ADMIN_JWT_SECRET', 'someSecretKey'),
},
url: env('PUBLIC_ADMIN_URL', '/dashboard'),
autoOpen: false,
watchIgnoreFiles: [
'./my-custom-folder', // フォルダ
'./scripts/someScript.sh', // ファイル
],
host: 'localhost',
port: 8003,
serveAdminPanel: env.bool('SERVE_ADMIN', true),
forgotPassword: {
from: 'no-reply@example.com',
replyTo: 'no-reply@example.com',
},
rateLimit: {
interval: { hour: 1, min: 30 },
timeWait: 3*1000,
max: 10,
},
transfer: {
token: {
salt: env('TRANSFER_TOKEN_SALT', 'anotherRandomLongString'),
}
},
});