@opengis/fastify-table 1.1.49 → 1.1.51

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.
Files changed (190) hide show
  1. package/.eslintrc.cjs +42 -42
  2. package/.gitlab-ci.yml +18 -0
  3. package/Changelog.md +352 -351
  4. package/cron/funcs/addCron.js +132 -132
  5. package/crud/controllers/deleteCrud.js +36 -31
  6. package/crud/controllers/insert.js +71 -70
  7. package/crud/controllers/update.js +76 -73
  8. package/crud/funcs/dataDelete.js +19 -19
  9. package/crud/funcs/dataInsert.js +30 -30
  10. package/crud/funcs/dataUpdate.js +48 -48
  11. package/crud/funcs/getAccess.js +46 -56
  12. package/crud/funcs/getOpt.js +10 -10
  13. package/crud/funcs/setOpt.js +16 -16
  14. package/crud/funcs/setToken.js +2 -2
  15. package/crud/funcs/utils/getFolder.js +9 -9
  16. package/crud/funcs/utils/logChanges.js +62 -62
  17. package/crud/index.js +36 -36
  18. package/docs/.vitepress/abbr.mjs +26 -26
  19. package/docs/.vitepress/config.mjs +127 -127
  20. package/docs/.vitepress/navigation.mjs +82 -82
  21. package/docs/.vitepress/theme/Layout.vue +17 -17
  22. package/docs/.vitepress/theme/components/NavigationLinks.vue +102 -102
  23. package/docs/.vitepress/theme/components/Panzoom.vue +169 -169
  24. package/docs/.vitepress/theme/index.mjs +15 -15
  25. package/docs/.vitepress/theme/style.scss +163 -163
  26. package/docs/abbr.json +4 -4
  27. package/docs/api/cron/cronApi.md +56 -56
  28. package/docs/api/crud/deleteCrud.md +58 -58
  29. package/docs/api/crud/insert.md +82 -82
  30. package/docs/api/crud/update.md +85 -85
  31. package/docs/api/index.md +47 -47
  32. package/docs/api/notification/testEmail.md +91 -91
  33. package/docs/api/table/card.md +73 -73
  34. package/docs/api/table/data.md +134 -134
  35. package/docs/api/table/export.md +60 -60
  36. package/docs/api/table/filter.md +104 -104
  37. package/docs/api/table/form.md +126 -126
  38. package/docs/api/table/search.md +123 -123
  39. package/docs/api/table/suggest.md +156 -156
  40. package/docs/api/table/table.md +107 -107
  41. package/docs/api/user/user.cls.id.md +77 -77
  42. package/docs/api/user/user.cls.md +49 -49
  43. package/docs/api/user/user.cls.post.md +62 -62
  44. package/docs/api/user/user.info.md +37 -37
  45. package/docs/api/utils/logger.file.md +60 -60
  46. package/docs/api/utils/next.id.md +34 -34
  47. package/docs/api/utils/properties.add.md +127 -127
  48. package/docs/api/utils/properties.get.md +73 -73
  49. package/docs/api/utils/status.monitor.md +36 -36
  50. package/docs/api/widget/widget.del.md +76 -76
  51. package/docs/api/widget/widget.get.md +233 -233
  52. package/docs/api/widget/widget.set.md +88 -88
  53. package/docs/db/admin.md +947 -947
  54. package/docs/db/crm.md +564 -564
  55. package/docs/db/index.md +9 -9
  56. package/docs/db/log.md +204 -204
  57. package/docs/hook/card/afterCard.md +20 -20
  58. package/docs/hook/card/preCard.md +25 -25
  59. package/docs/hook/data/afterData.md +26 -26
  60. package/docs/hook/data/preData.md +26 -26
  61. package/docs/hook/deleteCrud/afterDelete.md +21 -21
  62. package/docs/hook/deleteCrud/preDelete.md +26 -26
  63. package/docs/hook/form/afterForm.md +19 -19
  64. package/docs/hook/form/preForm.md +26 -26
  65. package/docs/hook/getTemplate/afterTemplate.md +24 -24
  66. package/docs/hook/getTemplate/preTemplate.md +29 -29
  67. package/docs/hook/index.md +45 -45
  68. package/docs/hook/insert/afterInsert.md +41 -41
  69. package/docs/hook/insert/preInsert.md +25 -25
  70. package/docs/hook/table/afterTable.md +20 -20
  71. package/docs/hook/table/preTable.md +25 -25
  72. package/docs/hook/update/afterUpdate.md +41 -41
  73. package/docs/hook/update/preUpdate.md +25 -25
  74. package/docs/index.md +42 -42
  75. package/docs/public/fastify-dark.svg +3 -3
  76. package/docs/public/logo-short-dark.svg +11 -11
  77. package/docs/public/logo-short.svg +10 -10
  78. package/docs/public/logo.svg +19 -19
  79. package/docs/readme/index.md +121 -121
  80. package/docs/templates/card.md +83 -83
  81. package/docs/templates/cls.md +29 -29
  82. package/docs/templates/filters.md +91 -91
  83. package/docs/templates/forms.md +139 -139
  84. package/docs/templates/index.md +28 -28
  85. package/docs/templates/select.md +90 -90
  86. package/docs/templates/table.md +162 -162
  87. package/docs/utils/cron/addCron.md +29 -29
  88. package/docs/utils/crud/dataInsert.md +51 -51
  89. package/docs/utils/crud/dataUpdate.md +52 -52
  90. package/docs/utils/crud/getOpt.md +33 -33
  91. package/docs/utils/crud/isFileExists.md +37 -37
  92. package/docs/utils/crud/setOpt.md +37 -37
  93. package/docs/utils/hook/addHook.md +74 -74
  94. package/docs/utils/hook/applyHook.md +64 -64
  95. package/docs/utils/index.md +47 -47
  96. package/docs/utils/notification/addNotification.md +28 -28
  97. package/docs/utils/notification/notification.md +41 -41
  98. package/docs/utils/pg/autoIndex.md +22 -22
  99. package/docs/utils/pg/getMeta.md +58 -58
  100. package/docs/utils/pg/getPG.md +34 -34
  101. package/docs/utils/pg/init.md +29 -29
  102. package/docs/utils/pg/pg.md +70 -70
  103. package/docs/utils/redis/getRedis.md +36 -36
  104. package/docs/utils/redis/rclient.md +74 -74
  105. package/docs/utils/table/getForm.md +68 -68
  106. package/docs/utils/table/getMeta.md +55 -55
  107. package/docs/utils/table/getSelect.md +38 -38
  108. package/docs/utils/table/getSelectMeta.md +46 -46
  109. package/docs/utils/table/getTable.md +77 -77
  110. package/helper.js +30 -30
  111. package/index.js +105 -105
  112. package/migration/exec.migrations.js +79 -79
  113. package/module/core/select/core.user_mentioned.sql +1 -1
  114. package/module/test/cls/itree.composition.json +25 -25
  115. package/module/test/table/test.rest_zone.table.json +265 -265
  116. package/notification/controllers/readNotifications.js +30 -30
  117. package/notification/controllers/testEmail.js +50 -50
  118. package/notification/controllers/userNotifications.js +64 -64
  119. package/notification/funcs/addNotification.js +21 -21
  120. package/notification/funcs/sendNotification.js +112 -112
  121. package/package.json +42 -41
  122. package/pg/funcs/getMeta.js +29 -29
  123. package/pg/funcs/getPG.js +30 -30
  124. package/pg/pgClients.js +20 -20
  125. package/policy/funcs/checkPolicy.js +92 -92
  126. package/policy/funcs/sqlInjection.js +33 -33
  127. package/policy/index.js +14 -14
  128. package/redis/client.js +8 -8
  129. package/redis/funcs/redisClients.js +2 -2
  130. package/redis/index.js +19 -19
  131. package/server/migrations/0.sql +78 -78
  132. package/server/migrations/cls.sql +39 -39
  133. package/server/migrations/properties.sql +144 -144
  134. package/server/migrations/roles.sql +172 -166
  135. package/server/migrations/users.sql +168 -168
  136. package/server.js +26 -26
  137. package/table/controllers/data.js +150 -134
  138. package/table/controllers/filter.js +50 -50
  139. package/table/controllers/form.js +42 -42
  140. package/table/controllers/search.js +80 -80
  141. package/table/controllers/suggest.js +79 -79
  142. package/table/controllers/table.js +83 -79
  143. package/table/controllers/utils/addTemplateDir.js +8 -8
  144. package/table/controllers/utils/getSelect.js +19 -19
  145. package/table/controllers/utils/getSelectMeta.js +66 -66
  146. package/table/controllers/utils/getTemplate_old.js +28 -28
  147. package/table/controllers/utils/getTemplates.js +18 -18
  148. package/table/controllers/utils/gisIRColumn.js +67 -67
  149. package/table/controllers/utils/loadTemplate.js +1 -1
  150. package/table/controllers/utils/loadTemplatePath.js +1 -1
  151. package/table/controllers/utils/userTemplateDir.js +1 -1
  152. package/table/funcs/getFilterSQL/index.js +94 -94
  153. package/table/funcs/getFilterSQL/util/formatValue.js +170 -170
  154. package/table/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  155. package/table/funcs/getFilterSQL/util/getFilterQuery.js +66 -66
  156. package/table/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
  157. package/table/funcs/getFilterSQL/util/getTableSql.js +34 -34
  158. package/table/funcs/metaFormat/getSelectVal.js +21 -21
  159. package/table/funcs/metaFormat/index.js +28 -28
  160. package/table/index.js +37 -84
  161. package/table/schema.js +54 -0
  162. package/test/api/applyHook.test.js +95 -95
  163. package/test/api/crud.test.js +89 -89
  164. package/test/api/crud.xss.test.js +80 -80
  165. package/test/api/suggest.test.js +66 -66
  166. package/test/api/table.test.js +134 -134
  167. package/test/api/user.test.js +85 -85
  168. package/test/api/widget.test.js +117 -117
  169. package/test/helper/formatDate.test.js +62 -62
  170. package/test/templates/select/test.storage.data.json +3 -3
  171. package/test/templates/select/test.suggest.ato_new.json +3 -3
  172. package/test/templates/select/test.suggest.ato_new.sql +25 -25
  173. package/test/templates/select/test.suggest.data.json +4 -4
  174. package/test/templates/select/test.suggest.parent.sql +1 -1
  175. package/user/controllers/user.cls.id.js +14 -14
  176. package/user/controllers/user.cls.js +75 -75
  177. package/user/controllers/user.cls.post.js +55 -55
  178. package/user/controllers/user.info.js +21 -21
  179. package/util/controllers/logger.file.js +91 -91
  180. package/util/controllers/properties.add.js +60 -60
  181. package/util/controllers/status.monitor.js +8 -8
  182. package/util/controllers/utils/checkUserAccess.js +17 -17
  183. package/util/controllers/utils/getRootDir.js +25 -25
  184. package/utils.js +104 -104
  185. package/widget/controllers/utils/historyFormat.js +76 -76
  186. package/widget/controllers/utils/obj2db.js +13 -13
  187. package/widget/controllers/widget.del.js +44 -44
  188. package/widget/controllers/widget.get.js +102 -102
  189. package/widget/controllers/widget.set.js +79 -79
  190. package/widget/index.js +40 -40
package/docs/db/index.md CHANGED
@@ -1,9 +1,9 @@
1
- ---
2
- order: 0
3
- ---
4
-
5
- # Список Scheme
6
-
7
- - **[admin](admin.md)**
8
- - **[crm](crm.md)**
9
- - **[log](log.md)**
1
+ ---
2
+ order: 0
3
+ ---
4
+
5
+ # Список Scheme
6
+
7
+ - **[admin](admin.md)**
8
+ - **[crm](crm.md)**
9
+ - **[log](log.md)**
package/docs/db/log.md CHANGED
@@ -1,204 +1,204 @@
1
-
2
-
3
- # log
4
-
5
- ## Схема
6
-
7
- ``` mermaid
8
- erDiagram
9
- "table_changes - Логи подій змін в БД" {
10
- entity_type text "Таблиця, до якої вносяться зміни"
11
- entity_id text "ID строки, до якої вносяться зміни"
12
- change_type text "Тип події (insert / update / delete)"
13
- change_key text "-"
14
- change_date date "Дата внесення змін до БД"
15
- uid text "ідентифікатор автора запису в БД"
16
- cdate timestamp_without_time_zone "Дата створення запису в БД"
17
- editor_id text "Ідентифікатор автора, який останій вніс зміни в запис"
18
- editor_date timestamp_without_time_zone "Час останії зміни в записі"
19
- change_id text PK "-"
20
- change_user_id text "Ініціатор внесення змін"
21
- }
22
- "table_changes_data - Логи змін в таблицях БД" {
23
- change_data_id text PK "-"
24
- change_id text FK "ID події зміни в БД"
25
- entity_key text "Колонка таблиці, до якої вносяться зміни"
26
- value_old text "Старе значення"
27
- value_new text "Нове значення"
28
- uid text "ідентифікатор автора запису в БД"
29
- cdate timestamp_without_time_zone "Дата створення запису в БД"
30
- editor_id text "Ідентифікатор автора, який останій вніс зміни в запис"
31
- editor_date timestamp_without_time_zone "Час останії зміни в записі"
32
- }
33
- "user_auth - Логи авторизації" {
34
- user_auth_id text PK "-"
35
- user_id text "ID користувача"
36
- user_auth_date timestamp_without_time_zone "-"
37
- user_auth_type text "-"
38
- uid text "ідентифікатор автора запису в БД"
39
- cdate timestamp_without_time_zone "Дата створення запису в БД"
40
- editor_id text "Ідентифікатор автора, який останій вніс зміни в запис"
41
- editor_date timestamp_without_time_zone "Час останії зміни в записі"
42
- auth_date timestamp_without_time_zone "Дата авторизації"
43
- auth_type text "Тип авторизації"
44
- }
45
- "log.table_changes_data - " ||--|{ "log.table_changes - " : ""
46
- ```
47
-
48
- **Ключі**
49
-
50
- ``` mermaid
51
- erDiagram
52
- "table_changes - Логи подій змін в БД" {
53
- change_id PRIMARY_KEY
54
- }
55
- "table_changes_data - Логи змін в таблицях БД" {
56
- change_data_id PRIMARY_KEY
57
- change_id FOREIGN_KEY
58
- }
59
- "user_auth - Логи авторизації" {
60
- user_auth_id PRIMARY_KEY
61
- }
62
- "log.table_changes_data - " ||--|{ "log.table_changes - " : ""
63
- ```
64
-
65
-
66
-
67
- ## log.table_changes
68
-
69
- Логи подій змін в БД
70
-
71
- :::tabs
72
-
73
- ==table
74
-
75
- | Назва колонки | Тип | Ключ | Опис |
76
- | ---------------------- | ------------------------- | --- | ---------- |
77
- | entity_type | `text` | | Таблиця, до якої вносяться зміни |
78
- | entity_id | `text` | | ID строки, до якої вносяться зміни |
79
- | change_type | `text` | | Тип події (insert / update / delete) |
80
- | change_key | `text` | | - |
81
- | change_date | `date` | | Дата внесення змін до БД |
82
- | uid | `text` | | ідентифікатор автора запису в БД |
83
- | cdate | `timestamp without time zone` | | Дата створення запису в БД |
84
- | editor_id | `text` | | Ідентифікатор автора, який останій вніс зміни в запис |
85
- | editor_date | `timestamp without time zone` | | Час останії зміни в записі |
86
- | change_id | `text` | PK | - |
87
- | change_user_id | `text` | | Ініціатор внесення змін |
88
-
89
- ==sql
90
-
91
- ```sql
92
-
93
- CREATE TABLE log.table_changes
94
- (
95
- entity_type text , -- Таблиця, до якої вносяться зміни
96
- entity_id text , -- ID строки, до якої вносяться зміни
97
- change_type text , -- Тип події (insert / update / delete)
98
- change_key text , -- -
99
- change_date date , -- Дата внесення змін до БД
100
- uid text , -- ідентифікатор автора запису в БД
101
- cdate timestamp without time zone DEFAULT (now())::timestamp without time zone, -- Дата створення запису в БД
102
- editor_id text , -- Ідентифікатор автора, який останій вніс зміни в запис
103
- editor_date timestamp without time zone , -- Час останії зміни в записі
104
- change_id text DEFAULT next_id(), -- -
105
- change_user_id text -- Ініціатор внесення змін
106
- ,
107
- CONSTRAINT log_table_changes_pkey PRIMARY KEY (change_id)
108
- );
109
-
110
- ```
111
-
112
- :::
113
-
114
-
115
- ## log.table_changes_data
116
-
117
- Логи змін в таблицях БД
118
-
119
- :::tabs
120
-
121
- ==table
122
-
123
- | Назва колонки | Тип | Ключ | Опис |
124
- | ---------------------- | ------------------------- | --- | ---------- |
125
- | change_data_id | `text` | PK | - |
126
- | change_id | `text` | FK | ID події зміни в БД |
127
- | entity_key | `text` | | Колонка таблиці, до якої вносяться зміни |
128
- | value_old | `text` | | Старе значення |
129
- | value_new | `text` | | Нове значення |
130
- | uid | `text` | | ідентифікатор автора запису в БД |
131
- | cdate | `timestamp without time zone` | | Дата створення запису в БД |
132
- | editor_id | `text` | | Ідентифікатор автора, який останій вніс зміни в запис |
133
- | editor_date | `timestamp without time zone` | | Час останії зміни в записі |
134
-
135
- ==sql
136
-
137
- ```sql
138
-
139
- CREATE TABLE log.table_changes_data
140
- (
141
- change_data_id text DEFAULT next_id(), -- -
142
- change_id text , -- ID події зміни в БД
143
- entity_key text , -- Колонка таблиці, до якої вносяться зміни
144
- value_old text , -- Старе значення
145
- value_new text , -- Нове значення
146
- uid text , -- ідентифікатор автора запису в БД
147
- cdate timestamp without time zone DEFAULT (now())::timestamp without time zone, -- Дата створення запису в БД
148
- editor_id text , -- Ідентифікатор автора, який останій вніс зміни в запис
149
- editor_date timestamp without time zone -- Час останії зміни в записі
150
- ,
151
- CONSTRAINT log_table_changes_data_change_id_fkey FOREIGN KEY (change_id) REFERENCES log.table_changes (change_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION,
152
- CONSTRAINT log_table_changes_data_pkey PRIMARY KEY (change_data_id)
153
- );
154
-
155
- ```
156
-
157
- :::
158
-
159
-
160
- ## log.user_auth
161
-
162
- Логи авторизації
163
-
164
- :::tabs
165
-
166
- ==table
167
-
168
- | Назва колонки | Тип | Ключ | Опис |
169
- | ---------------------- | ------------------------- | --- | ---------- |
170
- | user_auth_id | `text` | PK | - |
171
- | user_id | `text` | | ID користувача |
172
- | user_auth_date | `timestamp without time zone` | | - |
173
- | user_auth_type | `text` | | - |
174
- | uid | `text` | | ідентифікатор автора запису в БД |
175
- | cdate | `timestamp without time zone` | | Дата створення запису в БД |
176
- | editor_id | `text` | | Ідентифікатор автора, який останій вніс зміни в запис |
177
- | editor_date | `timestamp without time zone` | | Час останії зміни в записі |
178
- | auth_date | `timestamp without time zone` | | Дата авторизації |
179
- | auth_type | `text` | | Тип авторизації |
180
-
181
- ==sql
182
-
183
- ```sql
184
-
185
- CREATE TABLE log.user_auth
186
- (
187
- user_auth_id text DEFAULT next_id(), -- -
188
- user_id text , -- ID користувача
189
- user_auth_date timestamp without time zone , -- -
190
- user_auth_type text , -- -
191
- uid text , -- ідентифікатор автора запису в БД
192
- cdate timestamp without time zone DEFAULT (now())::timestamp without time zone, -- Дата створення запису в БД
193
- editor_id text , -- Ідентифікатор автора, який останій вніс зміни в запис
194
- editor_date timestamp without time zone , -- Час останії зміни в записі
195
- auth_date timestamp without time zone , -- Дата авторизації
196
- auth_type text -- Тип авторизації
197
- ,
198
- CONSTRAINT log_user_auth_pkey PRIMARY KEY (user_auth_id)
199
- );
200
-
201
- ```
202
-
203
- :::
204
-
1
+
2
+
3
+ # log
4
+
5
+ ## Схема
6
+
7
+ ``` mermaid
8
+ erDiagram
9
+ "table_changes - Логи подій змін в БД" {
10
+ entity_type text "Таблиця, до якої вносяться зміни"
11
+ entity_id text "ID строки, до якої вносяться зміни"
12
+ change_type text "Тип події (insert / update / delete)"
13
+ change_key text "-"
14
+ change_date date "Дата внесення змін до БД"
15
+ uid text "ідентифікатор автора запису в БД"
16
+ cdate timestamp_without_time_zone "Дата створення запису в БД"
17
+ editor_id text "Ідентифікатор автора, який останій вніс зміни в запис"
18
+ editor_date timestamp_without_time_zone "Час останії зміни в записі"
19
+ change_id text PK "-"
20
+ change_user_id text "Ініціатор внесення змін"
21
+ }
22
+ "table_changes_data - Логи змін в таблицях БД" {
23
+ change_data_id text PK "-"
24
+ change_id text FK "ID події зміни в БД"
25
+ entity_key text "Колонка таблиці, до якої вносяться зміни"
26
+ value_old text "Старе значення"
27
+ value_new text "Нове значення"
28
+ uid text "ідентифікатор автора запису в БД"
29
+ cdate timestamp_without_time_zone "Дата створення запису в БД"
30
+ editor_id text "Ідентифікатор автора, який останій вніс зміни в запис"
31
+ editor_date timestamp_without_time_zone "Час останії зміни в записі"
32
+ }
33
+ "user_auth - Логи авторизації" {
34
+ user_auth_id text PK "-"
35
+ user_id text "ID користувача"
36
+ user_auth_date timestamp_without_time_zone "-"
37
+ user_auth_type text "-"
38
+ uid text "ідентифікатор автора запису в БД"
39
+ cdate timestamp_without_time_zone "Дата створення запису в БД"
40
+ editor_id text "Ідентифікатор автора, який останій вніс зміни в запис"
41
+ editor_date timestamp_without_time_zone "Час останії зміни в записі"
42
+ auth_date timestamp_without_time_zone "Дата авторизації"
43
+ auth_type text "Тип авторизації"
44
+ }
45
+ "log.table_changes_data - " ||--|{ "log.table_changes - " : ""
46
+ ```
47
+
48
+ **Ключі**
49
+
50
+ ``` mermaid
51
+ erDiagram
52
+ "table_changes - Логи подій змін в БД" {
53
+ change_id PRIMARY_KEY
54
+ }
55
+ "table_changes_data - Логи змін в таблицях БД" {
56
+ change_data_id PRIMARY_KEY
57
+ change_id FOREIGN_KEY
58
+ }
59
+ "user_auth - Логи авторизації" {
60
+ user_auth_id PRIMARY_KEY
61
+ }
62
+ "log.table_changes_data - " ||--|{ "log.table_changes - " : ""
63
+ ```
64
+
65
+
66
+
67
+ ## log.table_changes
68
+
69
+ Логи подій змін в БД
70
+
71
+ :::tabs
72
+
73
+ ==table
74
+
75
+ | Назва колонки | Тип | Ключ | Опис |
76
+ | ---------------------- | ------------------------- | --- | ---------- |
77
+ | entity_type | `text` | | Таблиця, до якої вносяться зміни |
78
+ | entity_id | `text` | | ID строки, до якої вносяться зміни |
79
+ | change_type | `text` | | Тип події (insert / update / delete) |
80
+ | change_key | `text` | | - |
81
+ | change_date | `date` | | Дата внесення змін до БД |
82
+ | uid | `text` | | ідентифікатор автора запису в БД |
83
+ | cdate | `timestamp without time zone` | | Дата створення запису в БД |
84
+ | editor_id | `text` | | Ідентифікатор автора, який останій вніс зміни в запис |
85
+ | editor_date | `timestamp without time zone` | | Час останії зміни в записі |
86
+ | change_id | `text` | PK | - |
87
+ | change_user_id | `text` | | Ініціатор внесення змін |
88
+
89
+ ==sql
90
+
91
+ ```sql
92
+
93
+ CREATE TABLE log.table_changes
94
+ (
95
+ entity_type text , -- Таблиця, до якої вносяться зміни
96
+ entity_id text , -- ID строки, до якої вносяться зміни
97
+ change_type text , -- Тип події (insert / update / delete)
98
+ change_key text , -- -
99
+ change_date date , -- Дата внесення змін до БД
100
+ uid text , -- ідентифікатор автора запису в БД
101
+ cdate timestamp without time zone DEFAULT (now())::timestamp without time zone, -- Дата створення запису в БД
102
+ editor_id text , -- Ідентифікатор автора, який останій вніс зміни в запис
103
+ editor_date timestamp without time zone , -- Час останії зміни в записі
104
+ change_id text DEFAULT next_id(), -- -
105
+ change_user_id text -- Ініціатор внесення змін
106
+ ,
107
+ CONSTRAINT log_table_changes_pkey PRIMARY KEY (change_id)
108
+ );
109
+
110
+ ```
111
+
112
+ :::
113
+
114
+
115
+ ## log.table_changes_data
116
+
117
+ Логи змін в таблицях БД
118
+
119
+ :::tabs
120
+
121
+ ==table
122
+
123
+ | Назва колонки | Тип | Ключ | Опис |
124
+ | ---------------------- | ------------------------- | --- | ---------- |
125
+ | change_data_id | `text` | PK | - |
126
+ | change_id | `text` | FK | ID події зміни в БД |
127
+ | entity_key | `text` | | Колонка таблиці, до якої вносяться зміни |
128
+ | value_old | `text` | | Старе значення |
129
+ | value_new | `text` | | Нове значення |
130
+ | uid | `text` | | ідентифікатор автора запису в БД |
131
+ | cdate | `timestamp without time zone` | | Дата створення запису в БД |
132
+ | editor_id | `text` | | Ідентифікатор автора, який останій вніс зміни в запис |
133
+ | editor_date | `timestamp without time zone` | | Час останії зміни в записі |
134
+
135
+ ==sql
136
+
137
+ ```sql
138
+
139
+ CREATE TABLE log.table_changes_data
140
+ (
141
+ change_data_id text DEFAULT next_id(), -- -
142
+ change_id text , -- ID події зміни в БД
143
+ entity_key text , -- Колонка таблиці, до якої вносяться зміни
144
+ value_old text , -- Старе значення
145
+ value_new text , -- Нове значення
146
+ uid text , -- ідентифікатор автора запису в БД
147
+ cdate timestamp without time zone DEFAULT (now())::timestamp without time zone, -- Дата створення запису в БД
148
+ editor_id text , -- Ідентифікатор автора, який останій вніс зміни в запис
149
+ editor_date timestamp without time zone -- Час останії зміни в записі
150
+ ,
151
+ CONSTRAINT log_table_changes_data_change_id_fkey FOREIGN KEY (change_id) REFERENCES log.table_changes (change_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION,
152
+ CONSTRAINT log_table_changes_data_pkey PRIMARY KEY (change_data_id)
153
+ );
154
+
155
+ ```
156
+
157
+ :::
158
+
159
+
160
+ ## log.user_auth
161
+
162
+ Логи авторизації
163
+
164
+ :::tabs
165
+
166
+ ==table
167
+
168
+ | Назва колонки | Тип | Ключ | Опис |
169
+ | ---------------------- | ------------------------- | --- | ---------- |
170
+ | user_auth_id | `text` | PK | - |
171
+ | user_id | `text` | | ID користувача |
172
+ | user_auth_date | `timestamp without time zone` | | - |
173
+ | user_auth_type | `text` | | - |
174
+ | uid | `text` | | ідентифікатор автора запису в БД |
175
+ | cdate | `timestamp without time zone` | | Дата створення запису в БД |
176
+ | editor_id | `text` | | Ідентифікатор автора, який останій вніс зміни в запис |
177
+ | editor_date | `timestamp without time zone` | | Час останії зміни в записі |
178
+ | auth_date | `timestamp without time zone` | | Дата авторизації |
179
+ | auth_type | `text` | | Тип авторизації |
180
+
181
+ ==sql
182
+
183
+ ```sql
184
+
185
+ CREATE TABLE log.user_auth
186
+ (
187
+ user_auth_id text DEFAULT next_id(), -- -
188
+ user_id text , -- ID користувача
189
+ user_auth_date timestamp without time zone , -- -
190
+ user_auth_type text , -- -
191
+ uid text , -- ідентифікатор автора запису в БД
192
+ cdate timestamp without time zone DEFAULT (now())::timestamp without time zone, -- Дата створення запису в БД
193
+ editor_id text , -- Ідентифікатор автора, який останій вніс зміни в запис
194
+ editor_date timestamp without time zone , -- Час останії зміни в записі
195
+ auth_date timestamp without time zone , -- Дата авторизації
196
+ auth_type text -- Тип авторизації
197
+ ,
198
+ CONSTRAINT log_user_auth_pkey PRIMARY KEY (user_auth_id)
199
+ );
200
+
201
+ ```
202
+
203
+ :::
204
+
@@ -1,20 +1,20 @@
1
- # afterCard
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику GET API [`/card/:token`](../../api/table/card.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('afterCard', async ({ table, id, user = {} }) => {
13
- // do something;
14
- });
15
- ```
16
-
17
- | Назва | Тип | Опис |
18
- | ------- | ------ | ---------------------- |
19
- | table | String | Таблиця / Токен |
20
- | user | Object | Дані сесії користувача |
1
+ # afterCard
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику GET API [`/card/:token`](../../api/table/card.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('afterCard', async ({ table, id, user = {} }) => {
13
+ // do something;
14
+ });
15
+ ```
16
+
17
+ | Назва | Тип | Опис |
18
+ | ------- | ------ | ---------------------- |
19
+ | table | String | Таблиця / Токен |
20
+ | user | Object | Дані сесії користувача |
@@ -1,25 +1,25 @@
1
- # preCard
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити попередню валідацію запиту до GET API [`/card/:token`](../../api/table/card.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { config, getToken, addHook, pgClients } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('preCard', async ({ table, id, user = {} }) => {
13
- const { client: pg } = pgClients || {};
14
- const { uid } = config?.auth?.disable ? { uid: '1' } : user;
15
- const opt = await getToken({
16
- uid, token: table, mode: 'w', json: 1,
17
- });
18
- return opt;
19
- });
20
- ```
21
-
22
- | Назва | Тип | Опис |
23
- | ------- | ------ | ---------------------- |
24
- | table | String | Таблиця / Токен |
25
- | user | Object | Дані сесії користувача |
1
+ # preCard
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити попередню валідацію запиту до GET API [`/card/:token`](../../api/table/card.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { config, getToken, addHook, pgClients } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('preCard', async ({ table, id, user = {} }) => {
13
+ const { client: pg } = pgClients || {};
14
+ const { uid } = config?.auth?.disable ? { uid: '1' } : user;
15
+ const opt = await getToken({
16
+ uid, token: table, mode: 'w', json: 1,
17
+ });
18
+ return opt;
19
+ });
20
+ ```
21
+
22
+ | Назва | Тип | Опис |
23
+ | ------- | ------ | ---------------------- |
24
+ | table | String | Таблиця / Токен |
25
+ | user | Object | Дані сесії користувача |
@@ -1,26 +1,26 @@
1
- # afterData
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику API [`/data/:table`](../../api/table/data.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook, pgClients } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('afterData', async ({
13
- table, payload = {}, user,
14
- }) => {
15
- if (!payload.rows?.length) return;
16
- const { client: pg } = pgClients || {};
17
- const result = await pg.query(`select $1=$1 as check from ${table} where 1=1`, ['1']).then((res) => res.rows?.[0] || {});
18
- Object.assign(payload.rows[0], { ...result });
19
- });
20
- ```
21
-
22
- | Назва | Тип | Опис |
23
- | ------- | ------ | ---------------------- |
24
- | table | String | Таблиця |
25
- | payload | Object | Відповідь від API |
26
- | user | Object | Дані сесії користувача |
1
+ # afterData
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити додаткові операції та внести зміни до payload, що отримується при виклику API [`/data/:table`](../../api/table/data.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook, pgClients } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('afterData', async ({
13
+ table, payload = {}, user,
14
+ }) => {
15
+ if (!payload.rows?.length) return;
16
+ const { client: pg } = pgClients || {};
17
+ const result = await pg.query(`select $1=$1 as check from ${table} where 1=1`, ['1']).then((res) => res.rows?.[0] || {});
18
+ Object.assign(payload.rows[0], { ...result });
19
+ });
20
+ ```
21
+
22
+ | Назва | Тип | Опис |
23
+ | ------- | ------ | ---------------------- |
24
+ | table | String | Таблиця |
25
+ | payload | Object | Відповідь від API |
26
+ | user | Object | Дані сесії користувача |
@@ -1,26 +1,26 @@
1
- # preData
2
-
3
- ## Опис
4
-
5
- Дозволяє здійснити попередню валідацію запиту до API [`/data/:table`](../../api/table/data.md)
6
-
7
- ## Параметри
8
-
9
- ```js
10
- import { addHook, config } from '@opengis/fastify-table/utils.js';
11
-
12
- addHook('preData', async ({ table, id, user }) => {
13
- const { uid } = config?.auth?.disable ? { uid: '1' } : user || {};
14
- if (!uid && !config?.local) {
15
- return { message: 'access restricted: edit', status: 403 };
16
- }
17
- const opt = await getToken({ mode: 'w', token: table, uid, json: 1 });
18
- return opt;
19
- });
20
- ```
21
-
22
- | Назва | Тип | Опис |
23
- | ------- | ------ | ---------------------- |
24
- | table | String | Таблиця / Токен |
25
- | id | String | ID об'єкту |
26
- | user | Object | Дані сесії користувача |
1
+ # preData
2
+
3
+ ## Опис
4
+
5
+ Дозволяє здійснити попередню валідацію запиту до API [`/data/:table`](../../api/table/data.md)
6
+
7
+ ## Параметри
8
+
9
+ ```js
10
+ import { addHook, config } from '@opengis/fastify-table/utils.js';
11
+
12
+ addHook('preData', async ({ table, id, user }) => {
13
+ const { uid } = config?.auth?.disable ? { uid: '1' } : user || {};
14
+ if (!uid && !config?.local) {
15
+ return { message: 'access restricted: edit', status: 403 };
16
+ }
17
+ const opt = await getToken({ mode: 'w', token: table, uid, json: 1 });
18
+ return opt;
19
+ });
20
+ ```
21
+
22
+ | Назва | Тип | Опис |
23
+ | ------- | ------ | ---------------------- |
24
+ | table | String | Таблиця / Токен |
25
+ | id | String | ID об'єкту |
26
+ | user | Object | Дані сесії користувача |