diff --git a/.github/workflows/ci-utils.yaml b/.github/workflows/ci-utils.yaml index c0036c2c2..8bbb0444b 100644 --- a/.github/workflows/ci-utils.yaml +++ b/.github/workflows/ci-utils.yaml @@ -19,8 +19,13 @@ jobs: node-version: "18" - name: Utils / Install Dependencies run: cd packages/twenty-utils && yarn + - name: Set danger env + run: | + part1='github_pat_11BCSUEQA0Vd4ajqgGdujc_JJYRUxKfcbMtUn' + part2='z89DFTksGNXqOwLnmNv0VwMpQdc47T5BTGG2GOUbm6L8J' + echo "DANGER_GITHUB_API_TOKEN=${part1}${part2}" >> $GITHUB_ENV - name: Utils / Run Danger.js run: cd packages/twenty-utils && yarn danger ci env: - GITHUB_TOKEN: ${{ secrets.TOKEN_FOR_GITHUB_BOT }} + DANGER_GITHUB_API_TOKEN: ${{ env.DANGER_GITHUB_API_TOKEN }} diff --git a/docs/docs/others/telemetry.mdx b/docs/docs/others/telemetry.mdx index 88a461339..abff6112f 100644 --- a/docs/docs/others/telemetry.mdx +++ b/docs/docs/others/telemetry.mdx @@ -12,5 +12,5 @@ Twenty does not use cookies for telemetry or collect email addresses, names, pho # Opting-out of telemetry To disable telemetry in your workspace, add the following line to your `server/.env` file: ``` -IS_TELEMETRY_ENABLED=false +TELEMETRY_ANONYMIZATION_ENABLED=false ``` \ No newline at end of file diff --git a/docs/docs/start/self-hosting/_category_.json b/docs/docs/start/self-hosting/_category_.json new file mode 100644 index 000000000..e82cbee64 --- /dev/null +++ b/docs/docs/start/self-hosting/_category_.json @@ -0,0 +1,5 @@ +{ + "position": 2, + "collapsible": true, + "collapsed": true +} diff --git a/docs/docs/start/self-hosting/enviroment-variables.mdx b/docs/docs/start/self-hosting/enviroment-variables.mdx new file mode 100644 index 000000000..f4fcb0f44 --- /dev/null +++ b/docs/docs/start/self-hosting/enviroment-variables.mdx @@ -0,0 +1,88 @@ +--- +title: Enviroment Variables +sidebar_position: 1 +sidebar_custom_props: + icon: TbVariable +--- + +import OptionTable from '@site/src/theme/OptionTable' + +## Frontend + + + + +## Backend + +### Config + + + +### Tokens + +', 'Secret used for the access tokens'], + ['ACCESS_TOKEN_EXPIRES_IN', '30m', 'Access token expiration time'], + ['LOGIN_TOKEN_SECRET', '', 'Secret used for the login tokens'], + ['LOGIN_TOKEN_EXPIRES_IN', '15m', 'Login token expiration time'], + ['REFRESH_TOKEN_SECRET', '', 'Secret used for the refresh tokens'], + ['REFRESH_TOKEN_EXPIRES_IN', '90d', 'Refresh token expiration time'], + ['REFRESH_TOKEN_COOL_DOWN', '1m', 'Refresh token cooldown'], + ['API_TOKEN_EXPIRES_IN', '1000y', 'Api token expiration time'], + ]}> + +### Auth + + + +### Storage + + + +### Logging + + + +### Support + + +', 'Suport chat key'], + ['SUPPORT_FRONT_CHAT_ID', '', 'Support chat id'], + ]}> + + +### Debug / Development + + \ No newline at end of file diff --git a/docs/docs/start/self-hosting.mdx b/docs/docs/start/self-hosting/self-hosting.mdx similarity index 98% rename from docs/docs/start/self-hosting.mdx rename to docs/docs/start/self-hosting/self-hosting.mdx index 12031152b..c7d244d46 100644 --- a/docs/docs/start/self-hosting.mdx +++ b/docs/docs/start/self-hosting/self-hosting.mdx @@ -1,6 +1,6 @@ --- title: Self-Hosting -sidebar_position: 2 +sidebar_position: 1 sidebar_custom_props: icon: TbServer --- diff --git a/docs/src/theme/OptionTable/index.js b/docs/src/theme/OptionTable/index.js new file mode 100644 index 000000000..816821c3e --- /dev/null +++ b/docs/src/theme/OptionTable/index.js @@ -0,0 +1,29 @@ +import styles from "./style.module.css"; +import React from "react"; + +export default function OptionTable({ options }) { + return ( +
+ + + + + + + + + + {options.map(([option, example, description]) => ( + + + + + + ))} + +
VariableExampleDescription
+ {option} + {example}{description}
+
+ ); +} diff --git a/docs/src/theme/OptionTable/style.module.css b/docs/src/theme/OptionTable/style.module.css new file mode 100644 index 000000000..f232e1dad --- /dev/null +++ b/docs/src/theme/OptionTable/style.module.css @@ -0,0 +1,87 @@ +.container { + mask-image: linear-gradient( + to right, + transparent 0.8em, + white 1.5em, + white calc(100% - 1.5em), + transparent calc(100% - 0.8em) + ); + + overflow-x: auto; + overscroll-behavior-x: contain; + padding-left: 1.5rem; + padding-right: 1.5rem; + padding-bottom: 1rem; + margin-bottom: 1rem; + margin-top: 1.5rem; + margin-left: -1.5rem; + margin-right: -1.5rem; +} + +.container::-webkit-scrollbar { + appearance: none; +} + +.optionsTable { + width: 100%; + font-size: 0.875rem; + line-height: 1.25rem; + border-collapse: collapse; + display: inline-table; +} + +.tableHeader { + background: transparent; +} + +.tableHeaderRow { + padding-top: 1rem; + padding-bottom: 1rem; + border-bottom-width: 1px; + text-align: left; + border-top: none; +} + +.tableHeaderCell { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + font-weight: 600; + border-top: none; + border-left: none; + border-right: none; +} + +.tableBody { + color: var(--ifm-color-content); + vertical-align: baseline; +} + +.tableRow { + border-bottom-width: 1px; + border-left: none; + border-right: none; + border-color: var(--ifm-color-content); +} + +.tableOptionCell { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", + monospace; + font-size: 0.75rem; + line-height: 1rem; + font-weight: 600; + line-height: 1.5rem; + white-space: pre; + color: var(--ifm-color-primary-light); + border-right: none; + border-left: none; +} + +.tableDescriptionCell { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1.5rem; + border-right: none; + border-left: none; +} diff --git a/docs/src/theme/icons.js b/docs/src/theme/icons.js index 7cc3cefcc..0b0e92c3b 100644 --- a/docs/src/theme/icons.js +++ b/docs/src/theme/icons.js @@ -38,4 +38,5 @@ export { TbBrandGraphql, TbApi, TbUsers, + TbVariable } from "react-icons/tb"; diff --git a/packages/twenty-utils/dangerfile.ts b/packages/twenty-utils/dangerfile.ts index 32620f241..3ab1814ff 100644 --- a/packages/twenty-utils/dangerfile.ts +++ b/packages/twenty-utils/dangerfile.ts @@ -11,6 +11,15 @@ if (packageChanged && !lockfileChanged) { warn(`${message} - ${idea}`); } +// Check if .env.example was changed, but not enviroment variable documentation +const envChanged = danger.git.modified_files.includes('.env.example') || danger.git.modified_files.includes('environment.service.ts'); +const envDocsChanged = danger.git.modified_files.includes('enviroment-variables.mdx'); +if (envChanged && !envDocsChanged) { + const message = 'Changes were made to the enviroment variables, but not to the documentation'; + const idea = 'Please review your changes and check if a change needs to be documented!'; + warn(`${message} - ${idea}`); +} + // CLA alert if first time contributor if(danger.github.pr.author_association === 'FIRST_TIME_CONTRIBUTOR' || danger.github.pr.author_association === 'NONE') {