diff --git a/examples/getstarted/config/admin.js b/examples/getstarted/config/admin.js index 4a06dfd54e..d4b41c024f 100644 --- a/examples/getstarted/config/admin.js +++ b/examples/getstarted/config/admin.js @@ -14,6 +14,9 @@ module.exports = ({ env }) => ({ salt: env('TRANSFER_TOKEN_SALT', 'example-salt'), }, }, + secrets: { + encryptionKey: env('ENCRYPTION_KEY', 'example-key'), + }, flags: { nps: env.bool('FLAG_NPS', true), promoteEE: env.bool('FLAG_PROMOTE_EE', true), diff --git a/packages/cli/create-strapi-app/src/utils/dot-env.ts b/packages/cli/create-strapi-app/src/utils/dot-env.ts index 9cb28bb17e..be5f926f40 100644 --- a/packages/cli/create-strapi-app/src/utils/dot-env.ts +++ b/packages/cli/create-strapi-app/src/utils/dot-env.ts @@ -15,6 +15,7 @@ APP_KEYS=<%= appKeys %> API_TOKEN_SALT=<%= apiTokenSalt %> ADMIN_JWT_SECRET=<%= adminJwtToken %> TRANSFER_TOKEN_SALT=<%= transferTokenSalt %> +ENCRYPTION_KEY=<%= encryptionKey %> # Database DATABASE_CLIENT=<%= database.client %> @@ -35,6 +36,7 @@ export function generateDotEnv(scope: Scope) { apiTokenSalt: generateASecret(), transferTokenSalt: generateASecret(), adminJwtToken: generateASecret(), + encryptionKey: generateASecret(), database: { client: scope.database.client, connection: { diff --git a/packages/cli/create-strapi-app/templates/example-js/.env.example b/packages/cli/create-strapi-app/templates/example-js/.env.example index ebfc96a356..78c956ee80 100644 --- a/packages/cli/create-strapi-app/templates/example-js/.env.example +++ b/packages/cli/create-strapi-app/templates/example-js/.env.example @@ -5,3 +5,4 @@ API_TOKEN_SALT=tobemodified ADMIN_JWT_SECRET=tobemodified TRANSFER_TOKEN_SALT=tobemodified JWT_SECRET=tobemodified +ENCRYPTION_KEY=tobemodified diff --git a/packages/cli/create-strapi-app/templates/example-js/config/admin.js b/packages/cli/create-strapi-app/templates/example-js/config/admin.js index fa188514ce..ac6293a10c 100644 --- a/packages/cli/create-strapi-app/templates/example-js/config/admin.js +++ b/packages/cli/create-strapi-app/templates/example-js/config/admin.js @@ -10,6 +10,9 @@ module.exports = ({ env }) => ({ salt: env('TRANSFER_TOKEN_SALT'), }, }, + secrets: { + encryptionKey: env('ENCRYPTION_KEY'), + }, flags: { nps: env.bool('FLAG_NPS', true), promoteEE: env.bool('FLAG_PROMOTE_EE', true), diff --git a/packages/cli/create-strapi-app/templates/example/.env.example b/packages/cli/create-strapi-app/templates/example/.env.example index ebfc96a356..78c956ee80 100644 --- a/packages/cli/create-strapi-app/templates/example/.env.example +++ b/packages/cli/create-strapi-app/templates/example/.env.example @@ -5,3 +5,4 @@ API_TOKEN_SALT=tobemodified ADMIN_JWT_SECRET=tobemodified TRANSFER_TOKEN_SALT=tobemodified JWT_SECRET=tobemodified +ENCRYPTION_KEY=tobemodified diff --git a/packages/cli/create-strapi-app/templates/example/config/admin.ts b/packages/cli/create-strapi-app/templates/example/config/admin.ts index f1799fa394..fd21d06b18 100644 --- a/packages/cli/create-strapi-app/templates/example/config/admin.ts +++ b/packages/cli/create-strapi-app/templates/example/config/admin.ts @@ -10,6 +10,9 @@ export default ({ env }) => ({ salt: env('TRANSFER_TOKEN_SALT'), }, }, + secrets: { + encryptionKey: env('ENCRYPTION_KEY'), + }, flags: { nps: env.bool('FLAG_NPS', true), promoteEE: env.bool('FLAG_PROMOTE_EE', true), diff --git a/packages/cli/create-strapi-app/templates/vanilla-js/.env.example b/packages/cli/create-strapi-app/templates/vanilla-js/.env.example index ebfc96a356..78c956ee80 100644 --- a/packages/cli/create-strapi-app/templates/vanilla-js/.env.example +++ b/packages/cli/create-strapi-app/templates/vanilla-js/.env.example @@ -5,3 +5,4 @@ API_TOKEN_SALT=tobemodified ADMIN_JWT_SECRET=tobemodified TRANSFER_TOKEN_SALT=tobemodified JWT_SECRET=tobemodified +ENCRYPTION_KEY=tobemodified diff --git a/packages/cli/create-strapi-app/templates/vanilla/.env.example b/packages/cli/create-strapi-app/templates/vanilla/.env.example index ebfc96a356..78c956ee80 100644 --- a/packages/cli/create-strapi-app/templates/vanilla/.env.example +++ b/packages/cli/create-strapi-app/templates/vanilla/.env.example @@ -5,3 +5,4 @@ API_TOKEN_SALT=tobemodified ADMIN_JWT_SECRET=tobemodified TRANSFER_TOKEN_SALT=tobemodified JWT_SECRET=tobemodified +ENCRYPTION_KEY=tobemodified diff --git a/packages/cli/create-strapi-app/templates/vanilla/config/admin.ts b/packages/cli/create-strapi-app/templates/vanilla/config/admin.ts index f1799fa394..fd21d06b18 100644 --- a/packages/cli/create-strapi-app/templates/vanilla/config/admin.ts +++ b/packages/cli/create-strapi-app/templates/vanilla/config/admin.ts @@ -10,6 +10,9 @@ export default ({ env }) => ({ salt: env('TRANSFER_TOKEN_SALT'), }, }, + secrets: { + encryptionKey: env('ENCRYPTION_KEY'), + }, flags: { nps: env.bool('FLAG_NPS', true), promoteEE: env.bool('FLAG_PROMOTE_EE', true), diff --git a/packages/core/admin/admin/src/pages/Settings/components/Tokens/FormHead.tsx b/packages/core/admin/admin/src/pages/Settings/components/Tokens/FormHead.tsx index 1e775112fe..7736a31fe2 100644 --- a/packages/core/admin/admin/src/pages/Settings/components/Tokens/FormHead.tsx +++ b/packages/core/admin/admin/src/pages/Settings/components/Tokens/FormHead.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; -import { Button, Dialog, Flex } from '@strapi/design-system'; -import { Check, ArrowClockwise } from '@strapi/icons'; +import { Button, Dialog, Flex, Tooltip } from '@strapi/design-system'; +import { Check, ArrowClockwise, Eye, EyeStriked } from '@strapi/icons'; import { MessageDescriptor, useIntl } from 'react-intl'; import { ConfirmDialog } from '../../../../components/ConfirmDialog'; @@ -117,7 +117,10 @@ interface FormHeadProps { token: TToken; canEditInputs: boolean; canRegenerate: boolean; + canShowToken?: boolean; setToken: (token: TToken) => void; + toggleToken?: () => void; + showToken?: boolean; isSubmitting: boolean; regenerateUrl: string; } @@ -126,6 +129,9 @@ export const FormHead = ({ title, token, setToken, + toggleToken, + showToken, + canShowToken, canEditInputs, canRegenerate, isSubmitting, @@ -137,6 +143,7 @@ export const FormHead = ({ ...token, accessKey: newKey, }); + toggleToken?.(); }; return ( @@ -151,6 +158,31 @@ export const FormHead = ({ url={`${regenerateUrl}${token?.id ?? ''}`} /> )} + {token?.id && toggleToken && ( + + + + )}