|
1 | 1 | # Información de la aplicación |
2 | 2 | application: |
3 | 3 | # Autor de la aplicación |
4 | | - author: ${AUTHOR} |
| 4 | + author: ${AUTHOR:SmartPot Developers} |
5 | 5 | # Descripción de la aplicación |
6 | | - description: ${DESCRIPTION} |
| 6 | + description: ${DESCRIPTION:Documentación de la API REST de SmartPot} |
7 | 7 | security: |
8 | 8 | jwt: |
9 | 9 | # Tiempo de expiración del JWT |
10 | | - expiration: ${SECURITY_JWT_EXPIRATION} |
| 10 | + expiration: ${SECURITY_JWT_EXPIRATION:86400000} |
11 | 11 | # Clave secreta para la firma del JWT |
12 | | - secret-key: ${SECURITY_JWT_SECRET_KEY} |
| 12 | + secret-key: ${SECURITY_JWT_SECRET_KEY:c8e9b6803afbcfa6edd9569c94c75ff4b144622b0a0570a636dffd62c24a3476} |
13 | 13 | public: |
14 | 14 | # Rutas públicas que no requieren autenticación |
15 | | - routes: ${SECURITY_PUBLIC_ROUTES} |
| 15 | + routes: ${SECURITY_PUBLIC_ROUTES:/auth/login,/auth/verify} |
16 | 16 | aes: |
17 | 17 | # Clave secreta para la encriptación aes 256 |
18 | | - key: ${SECURITY_AES_KEY} |
| 18 | + key: ${SECURITY_AES_KEY:Z0Yp4Zx5mN3j6rB8VwR2oE9fT2pX1qL6dC5yK7sM0uH3nA8bJ4vF9gT1rD2eW6zP} |
19 | 19 | # Título de la aplicación |
20 | | - title: ${TITLE} |
| 20 | + title: ${TITLE:SmartPot API} |
21 | 21 | # Versión de la aplicación |
22 | | - version: ${VERSION} |
| 22 | + version: ${VERSION:1.0.0} |
23 | 23 |
|
24 | 24 | # Configuración HTTP |
25 | 25 | http: |
26 | 26 | header: |
27 | 27 | cors: |
28 | 28 | # Orígenes permitidos para CORS (Cross-Origin Resource Sharing) |
29 | | - allowedOrigins: ${HEADER_CORS_ALLOWED_ORIGINS} |
| 29 | + allowedOrigins: ${HEADER_CORS_ALLOWED_ORIGINS:http://localhost:5173} |
30 | 30 |
|
31 | 31 | # Configuración de logging |
32 | 32 | logging: |
33 | 33 | level: |
34 | 34 | com: |
35 | 35 | # Nivel de log para la biblioteca 'mongodb' |
36 | | - mongodb: ${DEBUGGER_MODE} |
| 36 | + mongodb: ${DEBUGGER_MODE:INFO} |
37 | 37 | io: |
38 | 38 | # Nivel de log para la biblioteca 'swagger' |
39 | | - swagger: ${DEBUGGER_MODE} |
| 39 | + swagger: ${DEBUGGER_MODE:INFO} |
40 | 40 | org: |
41 | 41 | # Niveles de log para diversas bibliotecas dentro de Spring |
42 | | - springdoc: ${DEBUGGER_MODE} |
43 | | - springframework: ${DEBUGGER_MODE} |
44 | | - springframework.data.mongodb: ${DEBUGGER_MODE} |
| 42 | + springdoc: ${DEBUGGER_MODE:INFO} |
| 43 | + springframework: ${DEBUGGER_MODE:INFO} |
| 44 | + springframework.data.mongodb: ${DEBUGGER_MODE:INFO} |
45 | 45 | root: |
46 | 46 | # Nivel de log para el nivel raíz |
47 | | - root: ${DEBUGGER_MODE} |
| 47 | + root: ${DEBUGGER_MODE:INFO} |
48 | 48 | smartpot: |
49 | 49 | com: |
50 | 50 | api: |
51 | 51 | Security: |
52 | | - jwt: ${DEBUGGER_MODE} # Nivel de log para JWT en la API de seguridad |
| 52 | + jwt: ${DEBUGGER_MODE:INFO} # Nivel de log para JWT en la API de seguridad |
53 | 53 |
|
54 | 54 | # Configuración de limitación de tasa (Rate Limiting) |
55 | 55 | rate: |
56 | 56 | limiting: |
57 | 57 | # Número máximo de solicitudes permitidas |
58 | | - max-requests: ${RATE_LIMITING_MAX_REQUESTS} |
| 58 | + max-requests: ${RATE_LIMITING_MAX_REQUESTS:5} |
59 | 59 | # Rutas públicas que estarán sujetas a la limitación de tasa |
60 | | - public-routes: ${RATE_LIMITING_PUBLIC_ROUTES} |
| 60 | + public-routes: ${RATE_LIMITING_PUBLIC_ROUTES:/swagger-ui/,/v3/api-docs,/swagger-resources/,/webjars/} |
61 | 61 | # Ventana de tiempo en la que se aplican las limitaciones |
62 | | - time-window: ${RATE_LIMITING_TIME_WINDOW} |
| 62 | + time-window: ${RATE_LIMITING_TIME_WINDOW:60000} |
63 | 63 |
|
64 | 64 | # Configuración del servidor |
65 | 65 | server: |
66 | 66 | # Puerto en el que la aplicación escucha |
67 | | - port: ${PORT} |
| 67 | + port: ${PORT:8091} |
68 | 68 | tomcat: |
69 | 69 | # Tiempo de espera para las conexiones de Tomcat |
70 | | - connection-timeout: ${SERVER_TOMCAT_TIMEOUT} |
| 70 | + connection-timeout: ${SERVER_TOMCAT_TIMEOUT:600000} |
71 | 71 |
|
72 | 72 | # Configuración de Spring |
73 | 73 | spring: |
74 | 74 | application: |
75 | 75 | # Nombre de la aplicación |
76 | | - name: ${APP_NAME} |
| 76 | + name: ${APP_NAME:SmartPot-API} |
77 | 77 | cache: |
78 | 78 | redis: |
79 | 79 | # Configuración de caché en Redis |
80 | | - cache-null-values: ${CACHE_NULL_VALUES} |
| 80 | + cache-null-values: ${CACHE_NULL_VALUES:false} |
81 | 81 | # Tiempo de vida de los valores en caché |
82 | | - time-to-live: ${CACHE_TIME_TO_LIVE} |
| 82 | + time-to-live: ${CACHE_TIME_TO_LIVE:300000} |
83 | 83 | # Tipo de caché (por ejemplo, redis, ehcache, etc.) |
84 | | - type: ${CACHE_TYPE} |
| 84 | + type: ${CACHE_TYPE:redis} |
85 | 85 | data: |
86 | 86 | mongodb: |
87 | 87 | # URI de conexión a MongoDB |
88 | | - uri: ${DATA_CONNECTION_METHOD}://${DATA_SOURCE_USERNAME}:${DATA_SOURCE_PASSWORD}@${DATA_SOURCE_DOMAIN}/${DATA_SOURCE_DB}?${DATA_PARAMS} |
| 88 | + uri: ${DATA_CONNECTION_METHOD:mongodb}://${DATA_SOURCE_USERNAME:admin}:${DATA_SOURCE_PASSWORD:admin}@${DATA_SOURCE_DOMAIN:db-smartpot:27017}/${DATA_SOURCE_DB:smartpot}?${DATA_PARAMS:authSource=admin&directConnection=true&serverSelectionTimeoutMS=100000&socketTimeoutMS=10000&appName=mongo} |
89 | 89 | redis: |
90 | 90 | # Configuración de la base de datos Redis |
91 | | - database: ${CACHE_DB} |
92 | | - host: ${CACHE_HOST} |
| 91 | + database: ${CACHE_DB:0} |
| 92 | + host: ${CACHE_HOST:cache-smartpot} |
93 | 93 | lettuce: |
94 | 94 | pool: |
95 | 95 | # Configuración de la conexión en pool para Redis |
96 | | - max-active: ${CACHE_LETTUCE_POOL_MAX_ACTIVE} |
97 | | - max-idle: ${CACHE_LETTUCE_POOL_MAX_IDLE} |
98 | | - max-wait: ${CACHE_LETTUCE_POOL_MAX_WAIT} |
99 | | - min-idle: ${CACHE_LETTUCE_POOL_MIN_IDLE} |
| 96 | + max-active: ${CACHE_LETTUCE_POOL_MAX_ACTIVE:8} |
| 97 | + max-idle: ${CACHE_LETTUCE_POOL_MAX_IDLE:8} |
| 98 | + max-wait: ${CACHE_LETTUCE_POOL_MAX_WAIT:-1} |
| 99 | + min-idle: ${CACHE_LETTUCE_POOL_MIN_IDLE:8} |
100 | 100 | # Configuración de la autenticación en Redis |
101 | | - password: ${CACHE_PASSWORD} |
102 | | - port: ${CACHE_PORT} |
103 | | - timeout: ${CACHE_TIMEOUT} |
104 | | - username: ${CACHE_USERNAME} |
| 101 | + password: ${CACHE_PASSWORD:root} |
| 102 | + port: ${CACHE_PORT:6379} |
| 103 | + timeout: ${CACHE_TIMEOUT:2000} |
| 104 | + username: ${CACHE_USERNAME:default} |
| 105 | + |
105 | 106 | mail: |
106 | 107 | # Configuración para el servidor de correo |
107 | | - host: ${MAIL_HOST} |
108 | | - password: ${MAIL_PASSWORD} |
109 | | - port: ${MAIL_PORT} |
| 108 | + host: ${MAIL_HOST:mail-smartpot} |
| 109 | + password: ${MAIL_PASSWORD:password123} |
| 110 | + port: ${MAIL_PORT:1025} |
110 | 111 | properties: |
111 | 112 | mail: |
112 | 113 | smtp: |
113 | 114 | # Configuración de autenticación SMTP |
114 | | - auth: ${MAIL_PROPERTIES_SMTP_AUTH} |
| 115 | + auth: ${MAIL_PROPERTIES_SMTP_AUTH:true} |
115 | 116 | # Habilitar STARTTLS para la conexión segura |
116 | 117 | starttls: |
117 | | - enable: ${MAIL_PROPERTIES_SMTP_STARTTLS_ENABLE} |
118 | | - username: ${MAIL_USERNAME} |
| 118 | + enable: ${MAIL_PROPERTIES_SMTP_STARTTLS_ENABLE:false} |
| 119 | + username: ${MAIL_USERNAME:smartpotadmin@example.com} |
119 | 120 |
|
120 | 121 | # Configuración de Swagger/OpenAPI (SpringDoc) |
121 | 122 | springdoc: |
122 | 123 | api-docs: |
123 | | - # Habilitar o deshabilitar la generación de la documentación de la API |
124 | | - enabled: ${SWAGGER_API_DOCS_ENABLED} |
| 124 | + # Habilita o deshabilita la generación de la documentación de la API |
| 125 | + enabled: ${SWAGGER_API_DOCS_ENABLED:true} |
| 126 | + # Ruta para acceder a los JSON de OpenAPI (por defecto /v3/api-docs) |
| 127 | + path: ${SWAGGER_API_DOCS_PATH:/v3/api-docs} |
| 128 | + |
| 129 | + redoc: |
| 130 | + # Habilita o deshabilita ReDoc (documentación alternativa) |
| 131 | + enabled: ${SWAGGER_REDOC_ENABLED:true} |
| 132 | + # Ruta para acceder a la documentación en formato ReDoc |
| 133 | + path: ${SWAGGER_REDOC_PATH:/redoc} |
| 134 | + |
125 | 135 | swagger-ui: |
126 | | - # Profundidad de expansión de modelos en Swagger UI |
127 | | - default-model-expand-depth: ${SWAGGER_UI_DEFAULT_MODEL_EXPAND_DEPTH} |
128 | | - # Tipo de renderizado de modelos (puede ser 'example', 'model', etc.) |
129 | | - default-model-rendering: ${SWAGGER_UI_DEFAULT_MODEL_RENDERING} |
130 | | - # Mostrar o no el ID de la operación en la UI |
131 | | - display-operation-id: ${SWAGGER_UI_DISPLAY_OPERATION_ID} |
132 | | - # Mostrar la duración de las solicitudes en la UI de Swagger |
133 | | - display-request-duration: ${SWAGGER_UI_DISPLAY_REQUEST_DURATION} |
134 | | - # Expansión por defecto en Swagger UI (puede ser 'list', 'full', etc.) |
135 | | - doc-expansion: ${SWAGGER_UI_DOC_EXPANSION} |
136 | | - # Habilitar o deshabilitar la UI de Swagger |
137 | | - enabled: ${SWAGGER_UI_ENABLED} |
138 | | - # Path para acceder a Swagger UI |
139 | | - path: ${SWAGGER_UI_PATH} |
140 | | - # URL donde se encuentra la documentación de la API en formato OpenAPI |
141 | | - url: ${SWAGGER_UI_URL} |
| 136 | + # Profundidad de expansión de los modelos |
| 137 | + default-model-expand-depth: ${SWAGGER_UI_DEFAULT_MODEL_EXPAND_DEPTH:1} |
| 138 | + # Tipo de renderizado de modelos ('example', 'model', etc.) |
| 139 | + default-model-rendering: ${SWAGGER_UI_DEFAULT_MODEL_RENDERING:example} |
| 140 | + # Mostrar el ID de la operación en la UI |
| 141 | + display-operation-id: ${SWAGGER_UI_DISPLAY_OPERATION_ID:false} |
| 142 | + # Mostrar la duración de las solicitudes en la UI |
| 143 | + display-request-duration: ${SWAGGER_UI_DISPLAY_REQUEST_DURATION:true} |
| 144 | + # Expansión por defecto ('list', 'full', 'none') |
| 145 | + doc-expansion: ${SWAGGER_UI_DOC_EXPANSION:list} |
| 146 | + # Habilita o deshabilita la UI de Swagger |
| 147 | + enabled: ${SWAGGER_UI_ENABLED:true} |
| 148 | + # Ruta base para acceder a Swagger UI |
| 149 | + path: ${SWAGGER_UI_PATH:/} |
| 150 | + # URL del JSON de OpenAPI (por defecto /v3/api-docs) |
| 151 | + url: ${SWAGGER_UI_URL:/v3/api-docs} |
0 commit comments