aloux-iam 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.gitattributes CHANGED
@@ -1,2 +1,2 @@
1
- # Auto detect text files and perform LF normalization
2
- * text=auto
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
package/CONTRIBUTING.md CHANGED
@@ -1 +1 @@
1
- # How to contribute
1
+ # How to contribute
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2023 Aloux
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Aloux
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,273 +1,271 @@
1
- # Aloux IAM
2
-
3
- Uso de esta librearía para administración de menus, privilegios, funciones, usuarios y envio de notificaciones por medio de correos y mensajes de texto
4
-
5
- ## Installation
6
-
7
- ```bash
8
- $ npm install aloux-iam --save
9
- ```
10
-
11
-
12
- ## Usage
13
- En archivo `init.js`
14
-
15
- ```js
16
- // Require
17
- const { IAMRouter, IAMSwagger } = require('aloux-iam')
18
-
19
-
20
- app.use(IAMRouter)
21
-
22
- // swagger
23
- app.use(
24
- "/aloux-iam",
25
- swaggerUI.serveFiles(IAMswagger, {}),
26
- swaggerUI.setup(IAMswagger)
27
- )
28
-
29
- // URL Swagger
30
- // [BASE_URL]/docs-iam/#/default/
31
-
32
- ```
33
-
34
-
35
- En archivo `router.js`
36
-
37
- ```js
38
- // Require
39
- const { IAMAuth } = require('aloux-iam')
40
-
41
- // Example
42
- router.post('/customer', IAMAuth, customer.create)
43
- ```
44
-
45
- ## Variables de entorno
46
-
47
- Requiere las siguientes variables de entorno (.env)
48
-
49
- | Variable | Description |
50
- | ----------------------|---------------|
51
- | AUTH_SECRET | Required, para cifrar la contraseña |
52
- | AWS_SECRET_ACCESS_KEY | Required, para acceso a S3 y SES AWS. |
53
- | AWS_ACCESS_KEY_ID | Required, para acceso a S3 y SES AWS. |
54
- | AWS_REGION | Required, para acceso a S3 y SES AWS. |
55
- | AWS_BUCKET | Required, para guardar la foto de perfil en AWS. |
56
- | AWS_EMAIL_SENDER | Required, para mandar el correo de recuperación de contraseña |
57
- | DEBUG | Required, para validar si el ambiente es dev o PROD |
58
- | MASTER_PWD | Optional, para utilizar contraseña maestra de usuarios en desarrollo |
59
- | BASE_URL | Optional, para swagger |
60
-
61
-
62
- ## Endpoints disponibles
63
-
64
- Endpoints user self (no auth)
65
-
66
- | Method | Endpoint | Description |
67
- | --------- | --------------------------|---------------|
68
- | POST | iam/auth/email | Validar correo |
69
- | POST | iam/auth/login | Iniciar sesión |
70
- | POST | iam/auth/forgot/password | Enviar código a correo |
71
- | POST | iam/auth/validate/code | Verificar código |
72
- | POST | iam/auth/verify/mail | Verificar correo |
73
- | GET | iam/auth/verify/mail/token/:token | Valida correo (Manda correo de bienvenida) |
74
- | POST | iam/auth/reset/password | Reestablecer contraseña |
75
- | POST | iam/auth/signup | Registrarse |
76
-
77
-
78
- Endpoints user self
79
-
80
- | Method | Endpoint | Description |
81
- | --------- | --------------------------|---------------|
82
- | GET | iam/auth/me | Obtener información de usuario autenticado |
83
- | PUT | iam/auth/profile | Actualizar perfil |
84
- | PUT | iam/auth/profile/pictura | Actualizar solo la foto de perfil |
85
- | PUT | iam/auth/reset/password | Actualizar contraseña |
86
- | POST | iam/auth/send/verify/phone | Enviar código al teléfono de la cuenta para verificarla |
87
- | POST | iam/auth/verify/phone | Valida teléfono del usuario de la cuenta |
88
- | POST | iam/auth/logout | Cerrar sesión |
89
-
90
-
91
- Endpoints user
92
-
93
- | Method | Endpoint | Description |
94
- | --------- | ------------------------------|----------------|
95
- | POST | iam/user | Crear usuario |
96
- | GET | iam/user | Obtener todos los usuario |
97
- | GET | iam/user/:USER_ID | Obtener detalle de usuario |
98
- | PUT | iam/user/:USER_ID | Actualizar usuario |
99
- | PUT | iam/user/:USER_ID/status | Activar o desactivar usuario |
100
- | PUT | iam/user/password/:USER_ID | Actualizar la constraseña de un usuario |
101
- | DELETE | iam/user/:USER_ID | Eliminar usuario |
102
- | GET | iam/user/count/all | Obtiene el número de usuarios |
103
-
104
-
105
- Endpoints funtions
106
-
107
- | Method | Endpoint | Description |
108
- | --------- | --------------------------------------|----------------|
109
- | POST | iam/functions | Crear función |
110
- | PUT | iam/functions/:FUNCTION_ID | Actualizar función |
111
- | PUT | iam/functions/:FUNCTION_ID/status | Activar o desactivar función |
112
- | GET | iam/functions | Obtener todas las funciones |
113
- | GET | iam/functions/:FUNCTION_ID | Obtener detalle de la función |
114
- | DELETE | iam/functions/:FUNCTION_ID | Eliminar función |
115
- | GET | iam/functions/count/all | Obtiene el número de funciones |
116
-
117
-
118
- Endpoints permission
119
-
120
- | Method | Endpoint | Description |
121
- | --------- | ------------------------------------------|---------------|
122
- | POST | iam/permission | Crear permiso
123
- | PUT | iam/permission/:PERMISSION_ID | Actualizar permiso |
124
- | PUT | iam/permission/:PERMISSION_ID/status | Activar o desactivar permiso |
125
- | GET | iam/permission | Obtener todas los permisos |
126
- | GET | iam/permission/:PERMISSION_ID | Obtener detalle de la permiso |
127
- | DELETE | iam/permission/:PERMISSION_ID | Eliminar permiso |
128
- | GET | iam/permission/count/all | Obtiene el número de permisos |
129
-
130
-
131
- Endpoints menu
132
-
133
- | Method | Endpoint | Description |
134
- | --------- | --------------------------|---------------|
135
- | POST | /iam/menu | Crea un elemento de menú |
136
- | PUT | /iam/menu/:MENU_ID | Actualiza un elemento de menú |
137
- | PUT | /iam/menu/:MENU_ID/status | Activa o desactiva un menú |
138
- | GET | /iam/menu | Obtiene todos los elementos de menú |
139
- | GET | /iam/menu/:MENU_ID | Obtiene el detalle de un elemento de menú |
140
- | DELETE | /iam/menu/:MENU_ID | Elimina un elemento de menú |
141
- | POST | /iam/menu/order | Ordena los elementos de menú |
142
- | GET | iam/menu/count | Obtiene el número de menús |
143
-
144
-
145
- ## Aloux-AWS
146
-
147
- ### Usage for files
148
- #### Aggregate file
149
- ```js
150
- // Require
151
- const { AlouxAWS } = require('aloux-iam')
152
-
153
-
154
- // variables
155
- /*
156
- * AWS_REGION
157
- * AWS_BUCKET
158
- */
159
-
160
- /**
161
- * pathFile = folder/file_name-file_id
162
- * file = req.files.property
163
- */
164
- // a constant is created to save the new element
165
- const result = await AlouxAWS.upload('folder/file_name', req.files.data)
166
-
167
- ```
168
-
169
- #### Eliminate many files
170
- ```js
171
- // Require
172
- const { AlouxAWS } = require('aloux-iam')
173
-
174
-
175
- // variables
176
- /*
177
- * AWS_REGION
178
- * AWS_BUCKET
179
- */
180
-
181
- /**
182
- * files = [{key: 'folder/file1'},{key: 'folder/file1'}]
183
- */
184
- // delete selected files
185
- const files = [{key: 'folder/file1.png'},{key: 'folder/file1.png'}]
186
- const deleteImages = await AlouxAWS.deleteMany(files)
187
-
188
- ```
189
-
190
- #### Eliminate file
191
- ```js
192
- // Require
193
- const { AlouxAWS } = require('aloux-iam')
194
-
195
-
196
- // variables
197
- /*
198
- * AWS_REGION
199
- * AWS_BUCKET
200
- */
201
-
202
- /**
203
- * file = folder/file_name
204
- */
205
- // delete the file
206
- const file = 'folder/file_name.png'
207
- const deleteImg = await AlouxAWS.delete(file)
208
-
209
- ```
210
-
211
- ### Usage for emails
212
- #### Send email
213
- ```js
214
- // Require
215
- const { AlouxAWS } = require('aloux-iam')
216
-
217
-
218
- // variables
219
- /*
220
- * AWS_REGION
221
- * AWS_EMAIL_SENDER
222
- */
223
-
224
- /**
225
- * email: Destination email
226
- * message: Mail body
227
- * subject: Mail subject
228
- */
229
- // a constant is created to request the data from the req.body.
230
- const { email, message, subject } = req.body
231
- const sendEmail = await AlouxAWS.sendCustom(email, message, subject)
232
-
233
- // example of the messages variable
234
- // this variable must be sent as a string if you want to send modified HTML
235
- /*
236
-
237
- message: "<!DOCTYPE html><html lang='en'><head><meta charset='UTF-8'><meta name='viewport' content='width=device-width, initial-scale=1.0'><title>Document</title></head><body><h1>Information</h1></body></html>"
238
-
239
- */
240
-
241
-
242
- ```
243
-
244
- ### Usage for sns
245
- #### Send sns
246
- ```js
247
- // Require
248
- const { AlouxAWS } = require('aloux-iam')
249
-
250
-
251
- // variables
252
- /*
253
- * AWS_REGION
254
- */
255
-
256
- /**
257
- * phoneNumber: Destination number
258
- * message: Message body
259
- */
260
- // a constant is created to request the data from the req.body.
261
- const { phoneNumber, message } = req.body
262
- const sendSms = await AlouxAWS.sendMessagePhone(phoneNumber, message)
263
-
264
- // example of the phoneNumber variable
265
- // this variable must be sent as a string and taking into account the telephone prefix
266
-
267
- /*
268
-
269
- phoneNumber: "+52244-------"
270
-
271
- */
272
-
1
+ # Aloux IAM
2
+
3
+ Uso de esta librearía para administración de menus, privilegios, funciones, usuarios y envio de notificaciones por medio de correos y mensajes de texto
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ $ npm install aloux-iam --save
9
+ ```
10
+
11
+
12
+ ## Usage
13
+ En archivo `init.js`
14
+
15
+ ```js
16
+ // Require
17
+ const { IAMRouter, IAMSwagger } = require('aloux-iam')
18
+
19
+
20
+ app.use(IAMRouter)
21
+
22
+ // swagger
23
+ app.use(
24
+ "/aloux-iam",
25
+ swaggerUI.serveFiles(IAMswagger, {}),
26
+ swaggerUI.setup(IAMswagger)
27
+ )
28
+
29
+ // URL Swagger
30
+ // [BASE_URL]/docs-iam/#/default/
31
+
32
+ ```
33
+
34
+
35
+ En archivo `router.js`
36
+
37
+ ```js
38
+ // Require
39
+ const { IAMAuth } = require('aloux-iam')
40
+
41
+ // Example
42
+ router.post('/customer', IAMAuth, customer.create)
43
+ ```
44
+
45
+ ## Variables de entorno
46
+
47
+ Requiere las siguientes variables de entorno (.env)
48
+
49
+ | Variable | Description |
50
+ | ----------------------|---------------|
51
+ | AUTH_SECRET | Required, para cifrar la contraseña |
52
+ | AWS_SECRET_ACCESS_KEY | Required, para acceso a S3 y SES AWS. |
53
+ | AWS_ACCESS_KEY_ID | Required, para acceso a S3 y SES AWS. |
54
+ | AWS_REGION | Required, para acceso a S3 y SES AWS. |
55
+ | AWS_BUCKET | Required, para guardar la foto de perfil en AWS. |
56
+ | AWS_EMAIL_SENDER | Required, para mandar el correo de recuperación de contraseña |
57
+ | DEBUG | Required, para validar si el ambiente es dev o PROD |
58
+ | MASTER_PWD | Optional, para utilizar contraseña maestra de usuarios en desarrollo |
59
+ | BASE_URL | Optional, para swagger |
60
+
61
+
62
+ ## Endpoints disponibles
63
+
64
+ ### Endpoints user self (no auth)
65
+
66
+ | Method | Endpoint | Description |
67
+ | --------- | --------------------------|---------------|
68
+ | POST | iam/auth/email | Validar correo |
69
+ | POST | iam/auth/login | Iniciar sesión |
70
+ | POST | iam/auth/forgot/password | Enviar código a correo |
71
+ | POST | iam/auth/validate/code | Verificar código |
72
+ | POST | iam/auth/verify/mail | Verificar correo |
73
+ | GET | iam/auth/verify/mail/token/:token | Valida correo (Manda correo de bienvenida) |
74
+ | POST | iam/auth/reset/password | Reestablecer contraseña |
75
+ | POST | iam/auth/signup | Registrarse |
76
+
77
+
78
+ ### Endpoints user self
79
+
80
+ | Method | Endpoint | Description |
81
+ | --------- | --------------------------|---------------|
82
+ | GET | iam/auth/me | Obtener información de usuario autenticado |
83
+ | PUT | iam/auth/profile | Actualizar perfil |
84
+ | PUT | iam/auth/profile/pictura | Actualizar solo la foto de perfil |
85
+ | PUT | iam/auth/reset/password | Actualizar contraseña |
86
+ | POST | iam/auth/send/verify/phone | Enviar código al teléfono de la cuenta para verificarla |
87
+ | POST | iam/auth/verify/phone | Valida teléfono del usuario de la cuenta |
88
+ | POST | iam/auth/logout | Cerrar sesión |
89
+
90
+
91
+ ### Endpoints user
92
+
93
+ | Method | Endpoint | Description |
94
+ | --------- | ------------------------------|----------------|
95
+ | POST | iam/user | Crear usuario |
96
+ | GET | iam/user | Obtener todos los usuario |
97
+ | GET | iam/user/:USER_ID | Obtener detalle de usuario |
98
+ | PUT | iam/user/:USER_ID | Actualizar usuario |
99
+ | PUT | iam/user/:USER_ID/status | Activar o desactivar usuario |
100
+ | PUT | iam/user/password/:USER_ID | Actualizar la constraseña de un usuario |
101
+ | DELETE | iam/user/:USER_ID | Eliminar usuario |
102
+ | GET | iam/user/count/all | Obtiene el número de usuarios |
103
+
104
+
105
+ ### Endpoints funtions
106
+
107
+ | Method | Endpoint | Description |
108
+ | --------- | --------------------------------------|----------------|
109
+ | POST | iam/functions | Crear función |
110
+ | PUT | iam/functions/:FUNCTION_ID | Actualizar función |
111
+ | PUT | iam/functions/:FUNCTION_ID/status | Activar o desactivar función |
112
+ | GET | iam/functions | Obtener todas las funciones |
113
+ | GET | iam/functions/:FUNCTION_ID | Obtener detalle de la función |
114
+ | DELETE | iam/functions/:FUNCTION_ID | Eliminar función |
115
+ | GET | iam/functions/count/all | Obtiene el número de funciones |
116
+
117
+
118
+ ### Endpoints permission
119
+
120
+ | Method | Endpoint | Description |
121
+ | --------- | ------------------------------------------|---------------|
122
+ | POST | iam/permission | Crear permiso
123
+ | PUT | iam/permission/:PERMISSION_ID | Actualizar permiso |
124
+ | PUT | iam/permission/:PERMISSION_ID/status | Activar o desactivar permiso |
125
+ | GET | iam/permission | Obtener todas los permisos |
126
+ | GET | iam/permission/:PERMISSION_ID | Obtener detalle de la permiso |
127
+ | DELETE | iam/permission/:PERMISSION_ID | Eliminar permiso |
128
+ | GET | iam/permission/count/all | Obtiene el número de permisos |
129
+
130
+
131
+ ### Endpoints menu
132
+
133
+ | Method | Endpoint | Description |
134
+ | --------- | --------------------------|---------------|
135
+ | POST | /iam/menu | Crea un elemento de menú |
136
+ | PUT | /iam/menu/:MENU_ID | Actualiza un elemento de menú |
137
+ | PUT | /iam/menu/:MENU_ID/status | Activa o desactiva un menú |
138
+ | GET | /iam/menu | Obtiene todos los elementos de menú |
139
+ | GET | /iam/menu/:MENU_ID | Obtiene el detalle de un elemento de menú |
140
+ | DELETE | /iam/menu/:MENU_ID | Elimina un elemento de menú |
141
+ | POST | /iam/menu/order | Ordena los elementos de menú |
142
+ | GET | iam/menu/count | Obtiene el número de menús |
143
+
144
+
145
+ ## Aloux-AWS
146
+ #### Aggregate file
147
+ ```js
148
+ // Require
149
+ const { AlouxAWS } = require('aloux-iam')
150
+
151
+
152
+ // variables
153
+ /*
154
+ * AWS_REGION
155
+ * AWS_BUCKET
156
+ */
157
+
158
+ /**
159
+ * pathFile = folder/file_name-file_id
160
+ * file = req.files.property
161
+ */
162
+ // a constant is created to save the new element
163
+ const result = await AlouxAWS.upload('folder/file_name', req.files.data)
164
+
165
+ ```
166
+
167
+ #### Eliminate many files
168
+ ```js
169
+ // Require
170
+ const { AlouxAWS } = require('aloux-iam')
171
+
172
+
173
+ // variables
174
+ /*
175
+ * AWS_REGION
176
+ * AWS_BUCKET
177
+ */
178
+
179
+ /**
180
+ * files = [{key: 'folder/file1'},{key: 'folder/file1'}]
181
+ */
182
+ // delete selected files
183
+ const files = [{key: 'folder/file1.png'},{key: 'folder/file1.png'}]
184
+ const deleteFiles = await AlouxAWS.deleteMany(files)
185
+
186
+ ```
187
+
188
+ #### Eliminate file
189
+ ```js
190
+ // Require
191
+ const { AlouxAWS } = require('aloux-iam')
192
+
193
+
194
+ // variables
195
+ /*
196
+ * AWS_REGION
197
+ * AWS_BUCKET
198
+ */
199
+
200
+ /**
201
+ * file = folder/file_name
202
+ */
203
+ // delete the file
204
+ const file = 'folder/file_name.png'
205
+ const deleteFile = await AlouxAWS.delete(file)
206
+
207
+ ```
208
+
209
+ ### Usage for emails
210
+ #### Send email
211
+ ```js
212
+ // Require
213
+ const { AlouxAWS } = require('aloux-iam')
214
+
215
+
216
+ // variables
217
+ /*
218
+ * AWS_REGION
219
+ * AWS_EMAIL_SENDER
220
+ */
221
+
222
+ /**
223
+ * email: Destination email
224
+ * message: Mail body
225
+ * subject: Mail subject
226
+ */
227
+ // a constant is created to request the data from the req.body.
228
+ const { email, message, subject } = req.body
229
+ const sendEmail = await AlouxAWS.sendCustom(email, message, subject)
230
+
231
+ // example of the messages variable
232
+ // this variable must be sent as a string if you want to send modified HTML
233
+ /*
234
+
235
+ message: "<!DOCTYPE html><html lang='en'><head><meta charset='UTF-8'><meta name='viewport' content='width=device-width, initial-scale=1.0'><title>Document</title></head><body><h1>Information</h1></body></html>"
236
+
237
+ */
238
+
239
+
240
+ ```
241
+
242
+ ### Usage for sns
243
+ #### Send sns
244
+ ```js
245
+ // Require
246
+ const { AlouxAWS } = require('aloux-iam')
247
+
248
+
249
+ // variables
250
+ /*
251
+ * AWS_REGION
252
+ */
253
+
254
+ /**
255
+ * phoneNumber: Destination number
256
+ * message: Message body
257
+ */
258
+ // a constant is created to request the data from the req.body.
259
+ const { phoneNumber, message } = req.body
260
+ const sendSns = await AlouxAWS.sendMessagePhone(phoneNumber, message)
261
+
262
+ // example of the phoneNumber variable
263
+ // this variable must be sent as a string and taking into account the telephone prefix
264
+
265
+ /*
266
+
267
+ phoneNumber: "+52244-------"
268
+
269
+ */
270
+
273
271
  ```