mirror of
				https://github.com/lingble/twenty.git
				synced 2025-10-31 04:37:56 +00:00 
			
		
		
		
	File token chores (#4664)
* Missing file token chores * Make whole idea folder ignored
This commit is contained in:
		
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| **/**/.env | **/**/.env | ||||||
| .DS_Store | .DS_Store | ||||||
| .idea/workspace.xml | /.idea | ||||||
| **/**/node_modules/ | **/**/node_modules/ | ||||||
|  |  | ||||||
| # yarn is the recommended package manager across the project | # yarn is the recommended package manager across the project | ||||||
| @@ -21,4 +21,4 @@ coverage | |||||||
|  |  | ||||||
| **/**/logs/** | **/**/logs/** | ||||||
|  |  | ||||||
| storybook-static | storybook-static | ||||||
|   | |||||||
| @@ -22,6 +22,7 @@ services: | |||||||
|       ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET} |       ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET} | ||||||
|       LOGIN_TOKEN_SECRET: ${LOGIN_TOKEN_SECRET} |       LOGIN_TOKEN_SECRET: ${LOGIN_TOKEN_SECRET} | ||||||
|       REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET} |       REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET} | ||||||
|  |       FILE_TOKEN_SECRET: ${FILE_TOKEN_SECRET} | ||||||
|     depends_on: |     depends_on: | ||||||
|       db: |       db: | ||||||
|         condition: service_healthy |         condition: service_healthy | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ Feel free to join our discord if you need assistance. | |||||||
| - [Azure Container Apps](#azure-container-apps) | - [Azure Container Apps](#azure-container-apps) | ||||||
| - [Others](#others) | - [Others](#others) | ||||||
|  |  | ||||||
| ## Azure Container Apps  | ## Azure Container Apps | ||||||
|  |  | ||||||
| ### About | ### About | ||||||
|  |  | ||||||
| @@ -261,6 +261,7 @@ resource "azapi_update_resource" "cors" { | |||||||
| resource "random_uuid" "access_token_secret" {} | resource "random_uuid" "access_token_secret" {} | ||||||
| resource "random_uuid" "login_token_secret" {} | resource "random_uuid" "login_token_secret" {} | ||||||
| resource "random_uuid" "refresh_token_secret" {} | resource "random_uuid" "refresh_token_secret" {} | ||||||
|  | resource "random_uuid" "file_token_secret" {} | ||||||
|  |  | ||||||
| resource "azurerm_container_app" "twenty_server" { | resource "azurerm_container_app" "twenty_server" { | ||||||
|   name                         = local.server_name |   name                         = local.server_name | ||||||
| @@ -338,6 +339,10 @@ resource "azurerm_container_app" "twenty_server" { | |||||||
|         name  = "REFRESH_TOKEN_SECRET" |         name  = "REFRESH_TOKEN_SECRET" | ||||||
|         value = random_uuid.refresh_token_secret.result |         value = random_uuid.refresh_token_secret.result | ||||||
|       } |       } | ||||||
|  |       env { | ||||||
|  |         name  = "FILE_TOKEN_SECRET" | ||||||
|  |         value = random_uuid.file_token_secret.result | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -424,4 +429,4 @@ resource "azurerm_container_app" "twenty_db" { | |||||||
|  |  | ||||||
| ## Others | ## Others | ||||||
|  |  | ||||||
| Please feel free to Open a PR to add more Cloud Provider options. | Please feel free to Open a PR to add more Cloud Provider options. | ||||||
|   | |||||||
| @@ -11,24 +11,25 @@ sidebar_custom_props: | |||||||
| 3. In your .env file, replace the three "replace_me_with_a_random_string_access" with the three random strings you just generated. | 3. In your .env file, replace the three "replace_me_with_a_random_string_access" with the three random strings you just generated. | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| ACCESS_TOKEN_SECRET=replace_me_with_a_random_string_access  | ACCESS_TOKEN_SECRET=replace_me_with_a_random_string_access | ||||||
| LOGIN_TOKEN_SECRET=replace_me_with_a_random_string_login  | LOGIN_TOKEN_SECRET=replace_me_with_a_random_string_login | ||||||
| REFRESH_TOKEN_SECRET=replace_me_with_a_random_string_refresh | REFRESH_TOKEN_SECRET=replace_me_with_a_random_string_refresh | ||||||
|  | FILE_TOKEN_SECRET=replace_me_with_a_random_string_refresh | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| 4. Create a `docker-compose.yml` file from the example below. | 4. Create a `docker-compose.yml` file from the example below. | ||||||
| 5. Run the command `docker-compose up -d` | 5. Run the command `docker-compose up -d` | ||||||
| 6. Go to http://localhost:3001 and see your docker instance. | 6. Go to http://localhost:3001 and see your docker instance. | ||||||
|  |  | ||||||
| ## Troubleshooting  | ## Troubleshooting | ||||||
|  |  | ||||||
| ### Not able to login  | ### Not able to login | ||||||
|  |  | ||||||
| If you encounter errors, (not able to log into the application after inputting an email) after the inital setup, try running `docker exec -it twenty-backend-1 yarn nx database:reset` and see if that solves your issue.  | If you encounter errors, (not able to log into the application after inputting an email) after the inital setup, try running `docker exec -it twenty-backend-1 yarn nx database:reset` and see if that solves your issue. | ||||||
|  |  | ||||||
| ### Cannot connect to server, running behind a reverse proxy | ### Cannot connect to server, running behind a reverse proxy | ||||||
|  |  | ||||||
| Complete step three and four with :  | Complete step three and four with : | ||||||
|  |  | ||||||
| 3. Add `SERVER_URL=https://<your-api-url.com>` to your `.env` | 3. Add `SERVER_URL=https://<your-api-url.com>` to your `.env` | ||||||
| 4. Uncomment `SERVER_URL=${SERVER_URL}` in your `docker-compose.yml` | 4. Uncomment `SERVER_URL=${SERVER_URL}` in your `docker-compose.yml` | ||||||
| @@ -76,6 +77,7 @@ services: | |||||||
|       - ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET} |       - ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET} | ||||||
|       - LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET} |       - LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET} | ||||||
|       - REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET} |       - REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET} | ||||||
|  |       - FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET} | ||||||
|       # Uncomment if behind a reverse proxy |       # Uncomment if behind a reverse proxy | ||||||
|       # - SERVER_URL=${SERVER_URL} |       # - SERVER_URL=${SERVER_URL} | ||||||
|     depends_on: |     depends_on: | ||||||
|   | |||||||
| @@ -59,6 +59,8 @@ import TabItem from '@theme/TabItem'; | |||||||
|     ['REFRESH_TOKEN_SECRET', '<random>', 'Secret used for the refresh tokens'], |     ['REFRESH_TOKEN_SECRET', '<random>', 'Secret used for the refresh tokens'], | ||||||
|     ['REFRESH_TOKEN_EXPIRES_IN', '90d', 'Refresh token expiration time'], |     ['REFRESH_TOKEN_EXPIRES_IN', '90d', 'Refresh token expiration time'], | ||||||
|     ['REFRESH_TOKEN_COOL_DOWN', '1m', 'Refresh token cooldown'], |     ['REFRESH_TOKEN_COOL_DOWN', '1m', 'Refresh token cooldown'], | ||||||
|  |     ['FILE_TOKEN_SECRET', '<random>', 'Secret used for the file tokens'], | ||||||
|  |     ['FILE_TOKEN_EXPIRES_IN', '1d', 'File token expiration time'], | ||||||
|     ['API_TOKEN_EXPIRES_IN', '1000y', 'Api token expiration time'], |     ['API_TOKEN_EXPIRES_IN', '1000y', 'Api token expiration time'], | ||||||
|     ]}></OptionTable> |     ]}></OptionTable> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -18,8 +18,9 @@ SIGN_IN_PREFILLED=true | |||||||
| # ACCESS_TOKEN_EXPIRES_IN=30m | # ACCESS_TOKEN_EXPIRES_IN=30m | ||||||
| # LOGIN_TOKEN_EXPIRES_IN=15m | # LOGIN_TOKEN_EXPIRES_IN=15m | ||||||
| # API_TOKEN_EXPIRES_IN=1000y | # API_TOKEN_EXPIRES_IN=1000y | ||||||
| # REFRESH_TOKEN_EXPIRES_IN=90d  | # REFRESH_TOKEN_EXPIRES_IN=90d | ||||||
| # FRONT_AUTH_CALLBACK_URL=http://localhost:3001/verify  | # FILE_TOKEN_EXPIRES_IN=1d | ||||||
|  | # FRONT_AUTH_CALLBACK_URL=http://localhost:3001/verify | ||||||
| # AUTH_GOOGLE_ENABLED=false | # AUTH_GOOGLE_ENABLED=false | ||||||
| # MESSAGING_PROVIDER_GMAIL_ENABLED=false | # MESSAGING_PROVIDER_GMAIL_ENABLED=false | ||||||
| # CALENDAR_PROVIDER_GOOGLE_ENABLED=false | # CALENDAR_PROVIDER_GOOGLE_ENABLED=false | ||||||
|   | |||||||
| @@ -9,15 +9,16 @@ FRONT_BASE_URL=http://localhost:3001 | |||||||
| ACCESS_TOKEN_SECRET=secret_jwt | ACCESS_TOKEN_SECRET=secret_jwt | ||||||
| LOGIN_TOKEN_SECRET=secret_login_tokens | LOGIN_TOKEN_SECRET=secret_login_tokens | ||||||
| REFRESH_TOKEN_SECRET=secret_refresh_token | REFRESH_TOKEN_SECRET=secret_refresh_token | ||||||
| FILE_TOKEN_SECRET=replace_me_with_a_random_string_refresh | FILE_TOKEN_SECRET=secret_file_token | ||||||
|  |  | ||||||
| # ———————— Optional ———————— | # ———————— Optional ———————— | ||||||
| # DEBUG_MODE=false | # DEBUG_MODE=false | ||||||
| # SIGN_IN_PREFILLED=false | # SIGN_IN_PREFILLED=false | ||||||
| # ACCESS_TOKEN_EXPIRES_IN=30m | # ACCESS_TOKEN_EXPIRES_IN=30m | ||||||
| # LOGIN_TOKEN_EXPIRES_IN=15m | # LOGIN_TOKEN_EXPIRES_IN=15m | ||||||
| # REFRESH_TOKEN_EXPIRES_IN=90d  | # REFRESH_TOKEN_EXPIRES_IN=90d | ||||||
| # FRONT_AUTH_CALLBACK_URL=http://localhost:3001/verify  | # FILE_TOKEN_EXPIRES_IN=1d | ||||||
|  | # FRONT_AUTH_CALLBACK_URL=http://localhost:3001/verify | ||||||
| # AUTH_GOOGLE_ENABLED=false | # AUTH_GOOGLE_ENABLED=false | ||||||
| # MESSAGING_PROVIDER_GMAIL_ENABLED=false | # MESSAGING_PROVIDER_GMAIL_ENABLED=false | ||||||
| # STORAGE_TYPE=local | # STORAGE_TYPE=local | ||||||
|   | |||||||
| @@ -32,6 +32,8 @@ services: | |||||||
|       generateValue: true |       generateValue: true | ||||||
|     - key: REFRESH_TOKEN_SECRET |     - key: REFRESH_TOKEN_SECRET | ||||||
|       generateValue: true |       generateValue: true | ||||||
|  |     - key: FILE_TOKEN_SECRET | ||||||
|  |       generateValue: true | ||||||
|     - key: PG_DATABASE_HOST |     - key: PG_DATABASE_HOST | ||||||
|       fromService: |       fromService: | ||||||
|         name: twenty_postgres |         name: twenty_postgres | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Darek Desu
					Darek Desu