aloux-iam 0.0.116 → 0.0.118

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,272 +1,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
- | SWAGGER_SERVER | Required, para acceder al swagger de IAM |
59
- | MASTER_PWD | Optional, para utilizar contraseña maestra de usuarios en desarrollo |
60
- | BASE_URL | Optional, para swagger |
61
-
62
-
63
- ## Endpoints disponibles
64
-
65
- ### Endpoints user self (no auth)
66
-
67
- | Method | Endpoint | Description |
68
- | --------- | --------------------------|---------------|
69
- | POST | iam/auth/email | Validar correo |
70
- | POST | iam/auth/login | Iniciar sesión |
71
- | POST | iam/auth/forgot/password | Enviar código a correo |
72
- | POST | iam/auth/validate/code | Verificar código |
73
- | POST | iam/auth/verify/mail | Verificar correo |
74
- | GET | iam/auth/verify/mail/token/:token | Valida correo (Manda correo de bienvenida) |
75
- | POST | iam/auth/reset/password | Reestablecer contraseña |
76
- | POST | iam/auth/signup | Registrarse |
77
-
78
-
79
- ### Endpoints user self
80
-
81
- | Method | Endpoint | Description |
82
- | --------- | --------------------------|---------------|
83
- | GET | iam/auth/me | Obtener información de usuario autenticado |
84
- | PUT | iam/auth/profile | Actualizar perfil |
85
- | PUT | iam/auth/profile/pictura | Actualizar solo la foto de perfil |
86
- | PUT | iam/auth/reset/password | Actualizar contraseña |
87
- | POST | iam/auth/send/verify/phone | Enviar código al teléfono de la cuenta para verificarla |
88
- | POST | iam/auth/verify/phone | Valida teléfono del usuario de la cuenta |
89
- | POST | iam/auth/logout | Cerrar sesión |
90
-
91
-
92
- ### Endpoints user
93
-
94
- | Method | Endpoint | Description |
95
- | --------- | ------------------------------|----------------|
96
- | POST | iam/user | Crear usuario |
97
- | GET | iam/user | Obtener todos los usuario |
98
- | GET | iam/user/:USER_ID | Obtener detalle de usuario |
99
- | PUT | iam/user/:USER_ID | Actualizar usuario |
100
- | PUT | iam/user/:USER_ID/status | Activar o desactivar usuario |
101
- | PUT | iam/user/password/:USER_ID | Actualizar la constraseña de un usuario |
102
- | DELETE | iam/user/:USER_ID | Eliminar usuario |
103
- | GET | iam/user/count/all | Obtiene el número de usuarios |
104
-
105
-
106
- ### Endpoints funtions
107
-
108
- | Method | Endpoint | Description |
109
- | --------- | --------------------------------------|----------------|
110
- | POST | iam/functions | Crear función |
111
- | PUT | iam/functions/:FUNCTION_ID | Actualizar función |
112
- | PUT | iam/functions/:FUNCTION_ID/status | Activar o desactivar función |
113
- | GET | iam/functions | Obtener todas las funciones |
114
- | GET | iam/functions/:FUNCTION_ID | Obtener detalle de la función |
115
- | DELETE | iam/functions/:FUNCTION_ID | Eliminar función |
116
- | GET | iam/functions/count/all | Obtiene el número de funciones |
117
-
118
-
119
- ### Endpoints permission
120
-
121
- | Method | Endpoint | Description |
122
- | --------- | ------------------------------------------|---------------|
123
- | POST | iam/permission | Crear permiso
124
- | PUT | iam/permission/:PERMISSION_ID | Actualizar permiso |
125
- | PUT | iam/permission/:PERMISSION_ID/status | Activar o desactivar permiso |
126
- | GET | iam/permission | Obtener todas los permisos |
127
- | GET | iam/permission/:PERMISSION_ID | Obtener detalle de la permiso |
128
- | DELETE | iam/permission/:PERMISSION_ID | Eliminar permiso |
129
- | GET | iam/permission/count/all | Obtiene el número de permisos |
130
-
131
-
132
- ### Endpoints menu
133
-
134
- | Method | Endpoint | Description |
135
- | --------- | --------------------------|---------------|
136
- | POST | /iam/menu | Crea un elemento de menú |
137
- | PUT | /iam/menu/:MENU_ID | Actualiza un elemento de menú |
138
- | PUT | /iam/menu/:MENU_ID/status | Activa o desactiva un menú |
139
- | GET | /iam/menu | Obtiene todos los elementos de menú |
140
- | GET | /iam/menu/:MENU_ID | Obtiene el detalle de un elemento de menú |
141
- | DELETE | /iam/menu/:MENU_ID | Elimina un elemento de menú |
142
- | POST | /iam/menu/order | Ordena los elementos de menú |
143
- | GET | iam/menu/count | Obtiene el número de menús |
144
-
145
-
146
- ## Aloux-AWS
147
- #### Aggregate file
148
- ```js
149
- // Require
150
- const { AlouxAWS } = require('aloux-iam')
151
-
152
-
153
- // variables
154
- /*
155
- * AWS_REGION
156
- * AWS_BUCKET
157
- */
158
-
159
- /**
160
- * pathFile = folder/file_name-file_id
161
- * file = req.files.property
162
- */
163
- // a constant is created to save the new element
164
- const result = await AlouxAWS.upload('folder/file_name', req.files.data)
165
-
166
- ```
167
-
168
- #### Eliminate many files
169
- ```js
170
- // Require
171
- const { AlouxAWS } = require('aloux-iam')
172
-
173
-
174
- // variables
175
- /*
176
- * AWS_REGION
177
- * AWS_BUCKET
178
- */
179
-
180
- /**
181
- * files = [{key: 'folder/file1'},{key: 'folder/file1'}]
182
- */
183
- // delete selected files
184
- const files = [{key: 'folder/file1.png'},{key: 'folder/file1.png'}]
185
- const deleteFiles = await AlouxAWS.deleteMany(files)
186
-
187
- ```
188
-
189
- #### Eliminate file
190
- ```js
191
- // Require
192
- const { AlouxAWS } = require('aloux-iam')
193
-
194
-
195
- // variables
196
- /*
197
- * AWS_REGION
198
- * AWS_BUCKET
199
- */
200
-
201
- /**
202
- * file = folder/file_name
203
- */
204
- // delete the file
205
- const file = 'folder/file_name.png'
206
- const deleteFile = await AlouxAWS.delete(file)
207
-
208
- ```
209
-
210
- ### Usage for emails
211
- #### Send email
212
- ```js
213
- // Require
214
- const { AlouxAWS } = require('aloux-iam')
215
-
216
-
217
- // variables
218
- /*
219
- * AWS_REGION
220
- * AWS_EMAIL_SENDER
221
- */
222
-
223
- /**
224
- * email: Destination email
225
- * message: Mail body
226
- * subject: Mail subject
227
- */
228
- // a constant is created to request the data from the req.body.
229
- const { email, message, subject } = req.body
230
- const sendEmail = await AlouxAWS.sendCustom(email, message, subject)
231
-
232
- // example of the messages variable
233
- // this variable must be sent as a string if you want to send modified HTML
234
- /*
235
-
236
- 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>"
237
-
238
- */
239
-
240
-
241
- ```
242
-
243
- ### Usage for sns
244
- #### Send sns
245
- ```js
246
- // Require
247
- const { AlouxAWS } = require('aloux-iam')
248
-
249
-
250
- // variables
251
- /*
252
- * AWS_REGION
253
- */
254
-
255
- /**
256
- * phoneNumber: Destination number
257
- * message: Message body
258
- */
259
- // a constant is created to request the data from the req.body.
260
- const { phoneNumber, message } = req.body
261
- const sendSns = await AlouxAWS.sendMessagePhone(phoneNumber, message)
262
-
263
- // example of the phoneNumber variable
264
- // this variable must be sent as a string and taking into account the telephone prefix
265
-
266
- /*
267
-
268
- phoneNumber: "+52244-------"
269
-
270
- */
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
+ | SWAGGER_SERVER | Required, para acceder al swagger de IAM |
59
+ | MASTER_PWD | Optional, para utilizar contraseña maestra de usuarios en desarrollo |
60
+ | BASE_URL | Optional, para swagger |
61
+
62
+
63
+ ## Endpoints disponibles
64
+
65
+ ### Endpoints user self (no auth)
66
+
67
+ | Method | Endpoint | Description |
68
+ | --------- | --------------------------|---------------|
69
+ | POST | iam/auth/email | Validar correo |
70
+ | POST | iam/auth/login | Iniciar sesión |
71
+ | POST | iam/auth/forgot/password | Enviar código a correo |
72
+ | POST | iam/auth/validate/code | Verificar código |
73
+ | POST | iam/auth/verify/mail | Verificar correo |
74
+ | GET | iam/auth/verify/mail/token/:token | Valida correo (Manda correo de bienvenida) |
75
+ | POST | iam/auth/reset/password | Reestablecer contraseña |
76
+ | POST | iam/auth/signup | Registrarse |
77
+
78
+
79
+ ### Endpoints user self
80
+
81
+ | Method | Endpoint | Description |
82
+ | --------- | --------------------------|---------------|
83
+ | GET | iam/auth/me | Obtener información de usuario autenticado |
84
+ | PUT | iam/auth/profile | Actualizar perfil |
85
+ | PUT | iam/auth/profile/pictura | Actualizar solo la foto de perfil |
86
+ | PUT | iam/auth/reset/password | Actualizar contraseña |
87
+ | POST | iam/auth/send/verify/phone | Enviar código al teléfono de la cuenta para verificarla |
88
+ | POST | iam/auth/verify/phone | Valida teléfono del usuario de la cuenta |
89
+ | POST | iam/auth/logout | Cerrar sesión |
90
+
91
+
92
+ ### Endpoints user
93
+
94
+ | Method | Endpoint | Description |
95
+ | --------- | ------------------------------|----------------|
96
+ | POST | iam/user | Crear usuario |
97
+ | GET | iam/user | Obtener todos los usuario |
98
+ | GET | iam/user/:USER_ID | Obtener detalle de usuario |
99
+ | PUT | iam/user/:USER_ID | Actualizar usuario |
100
+ | PUT | iam/user/:USER_ID/status | Activar o desactivar usuario |
101
+ | PUT | iam/user/password/:USER_ID | Actualizar la constraseña de un usuario |
102
+ | DELETE | iam/user/:USER_ID | Eliminar usuario |
103
+ | GET | iam/user/count/all | Obtiene el número de usuarios |
104
+
105
+
106
+ ### Endpoints funtions
107
+
108
+ | Method | Endpoint | Description |
109
+ | --------- | --------------------------------------|----------------|
110
+ | POST | iam/functions | Crear función |
111
+ | PUT | iam/functions/:FUNCTION_ID | Actualizar función |
112
+ | PUT | iam/functions/:FUNCTION_ID/status | Activar o desactivar función |
113
+ | GET | iam/functions | Obtener todas las funciones |
114
+ | GET | iam/functions/:FUNCTION_ID | Obtener detalle de la función |
115
+ | DELETE | iam/functions/:FUNCTION_ID | Eliminar función |
116
+ | GET | iam/functions/count/all | Obtiene el número de funciones |
117
+
118
+
119
+ ### Endpoints permission
120
+
121
+ | Method | Endpoint | Description |
122
+ | --------- | ------------------------------------------|---------------|
123
+ | POST | iam/permission | Crear permiso
124
+ | PUT | iam/permission/:PERMISSION_ID | Actualizar permiso |
125
+ | PUT | iam/permission/:PERMISSION_ID/status | Activar o desactivar permiso |
126
+ | GET | iam/permission | Obtener todas los permisos |
127
+ | GET | iam/permission/:PERMISSION_ID | Obtener detalle de la permiso |
128
+ | DELETE | iam/permission/:PERMISSION_ID | Eliminar permiso |
129
+ | GET | iam/permission/count/all | Obtiene el número de permisos |
130
+
131
+
132
+ ### Endpoints menu
133
+
134
+ | Method | Endpoint | Description |
135
+ | --------- | --------------------------|---------------|
136
+ | POST | /iam/menu | Crea un elemento de menú |
137
+ | PUT | /iam/menu/:MENU_ID | Actualiza un elemento de menú |
138
+ | PUT | /iam/menu/:MENU_ID/status | Activa o desactiva un menú |
139
+ | GET | /iam/menu | Obtiene todos los elementos de menú |
140
+ | GET | /iam/menu/:MENU_ID | Obtiene el detalle de un elemento de menú |
141
+ | DELETE | /iam/menu/:MENU_ID | Elimina un elemento de menú |
142
+ | POST | /iam/menu/order | Ordena los elementos de menú |
143
+ | GET | iam/menu/count | Obtiene el número de menús |
144
+
145
+
146
+ ## Aloux-AWS
147
+ #### Aggregate file
148
+ ```js
149
+ // Require
150
+ const { AlouxAWS } = require('aloux-iam')
151
+
152
+
153
+ // variables
154
+ /*
155
+ * AWS_REGION
156
+ * AWS_BUCKET
157
+ */
158
+
159
+ /**
160
+ * pathFile = folder/file_name-file_id
161
+ * file = req.files.property
162
+ */
163
+ // a constant is created to save the new element
164
+ const result = await AlouxAWS.upload('folder/file_name', req.files.data)
165
+
166
+ ```
167
+
168
+ #### Eliminate many files
169
+ ```js
170
+ // Require
171
+ const { AlouxAWS } = require('aloux-iam')
172
+
173
+
174
+ // variables
175
+ /*
176
+ * AWS_REGION
177
+ * AWS_BUCKET
178
+ */
179
+
180
+ /**
181
+ * files = [{key: 'folder/file1'},{key: 'folder/file1'}]
182
+ */
183
+ // delete selected files
184
+ const files = [{key: 'folder/file1.png'},{key: 'folder/file1.png'}]
185
+ const deleteFiles = await AlouxAWS.deleteMany(files)
186
+
187
+ ```
188
+
189
+ #### Eliminate file
190
+ ```js
191
+ // Require
192
+ const { AlouxAWS } = require('aloux-iam')
193
+
194
+
195
+ // variables
196
+ /*
197
+ * AWS_REGION
198
+ * AWS_BUCKET
199
+ */
200
+
201
+ /**
202
+ * file = folder/file_name
203
+ */
204
+ // delete the file
205
+ const file = 'folder/file_name.png'
206
+ const deleteFile = await AlouxAWS.delete(file)
207
+
208
+ ```
209
+
210
+ ### Usage for emails
211
+ #### Send email
212
+ ```js
213
+ // Require
214
+ const { AlouxAWS } = require('aloux-iam')
215
+
216
+
217
+ // variables
218
+ /*
219
+ * AWS_REGION
220
+ * AWS_EMAIL_SENDER
221
+ */
222
+
223
+ /**
224
+ * email: Destination email
225
+ * message: Mail body
226
+ * subject: Mail subject
227
+ */
228
+ // a constant is created to request the data from the req.body.
229
+ const { email, message, subject } = req.body
230
+ const sendEmail = await AlouxAWS.sendCustom(email, message, subject)
231
+
232
+ // example of the messages variable
233
+ // this variable must be sent as a string if you want to send modified HTML
234
+ /*
235
+
236
+ 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>"
237
+
238
+ */
239
+
240
+
241
+ ```
242
+
243
+ ### Usage for sns
244
+ #### Send sns
245
+ ```js
246
+ // Require
247
+ const { AlouxAWS } = require('aloux-iam')
248
+
249
+
250
+ // variables
251
+ /*
252
+ * AWS_REGION
253
+ */
254
+
255
+ /**
256
+ * phoneNumber: Destination number
257
+ * message: Message body
258
+ */
259
+ // a constant is created to request the data from the req.body.
260
+ const { phoneNumber, message } = req.body
261
+ const sendSns = await AlouxAWS.sendMessagePhone(phoneNumber, message)
262
+
263
+ // example of the phoneNumber variable
264
+ // this variable must be sent as a string and taking into account the telephone prefix
265
+
266
+ /*
267
+
268
+ phoneNumber: "+52244-------"
269
+
270
+ */
271
+
272
272
  ```