@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.
- package/.eslintrc.cjs +42 -42
- package/.gitlab-ci.yml +18 -0
- package/Changelog.md +352 -351
- package/cron/funcs/addCron.js +132 -132
- package/crud/controllers/deleteCrud.js +36 -31
- package/crud/controllers/insert.js +71 -70
- package/crud/controllers/update.js +76 -73
- package/crud/funcs/dataDelete.js +19 -19
- package/crud/funcs/dataInsert.js +30 -30
- package/crud/funcs/dataUpdate.js +48 -48
- package/crud/funcs/getAccess.js +46 -56
- package/crud/funcs/getOpt.js +10 -10
- package/crud/funcs/setOpt.js +16 -16
- package/crud/funcs/setToken.js +2 -2
- package/crud/funcs/utils/getFolder.js +9 -9
- package/crud/funcs/utils/logChanges.js +62 -62
- package/crud/index.js +36 -36
- package/docs/.vitepress/abbr.mjs +26 -26
- package/docs/.vitepress/config.mjs +127 -127
- package/docs/.vitepress/navigation.mjs +82 -82
- package/docs/.vitepress/theme/Layout.vue +17 -17
- package/docs/.vitepress/theme/components/NavigationLinks.vue +102 -102
- package/docs/.vitepress/theme/components/Panzoom.vue +169 -169
- package/docs/.vitepress/theme/index.mjs +15 -15
- package/docs/.vitepress/theme/style.scss +163 -163
- package/docs/abbr.json +4 -4
- package/docs/api/cron/cronApi.md +56 -56
- package/docs/api/crud/deleteCrud.md +58 -58
- package/docs/api/crud/insert.md +82 -82
- package/docs/api/crud/update.md +85 -85
- package/docs/api/index.md +47 -47
- package/docs/api/notification/testEmail.md +91 -91
- package/docs/api/table/card.md +73 -73
- package/docs/api/table/data.md +134 -134
- package/docs/api/table/export.md +60 -60
- package/docs/api/table/filter.md +104 -104
- package/docs/api/table/form.md +126 -126
- package/docs/api/table/search.md +123 -123
- package/docs/api/table/suggest.md +156 -156
- package/docs/api/table/table.md +107 -107
- package/docs/api/user/user.cls.id.md +77 -77
- package/docs/api/user/user.cls.md +49 -49
- package/docs/api/user/user.cls.post.md +62 -62
- package/docs/api/user/user.info.md +37 -37
- package/docs/api/utils/logger.file.md +60 -60
- package/docs/api/utils/next.id.md +34 -34
- package/docs/api/utils/properties.add.md +127 -127
- package/docs/api/utils/properties.get.md +73 -73
- package/docs/api/utils/status.monitor.md +36 -36
- package/docs/api/widget/widget.del.md +76 -76
- package/docs/api/widget/widget.get.md +233 -233
- package/docs/api/widget/widget.set.md +88 -88
- package/docs/db/admin.md +947 -947
- package/docs/db/crm.md +564 -564
- package/docs/db/index.md +9 -9
- package/docs/db/log.md +204 -204
- package/docs/hook/card/afterCard.md +20 -20
- package/docs/hook/card/preCard.md +25 -25
- package/docs/hook/data/afterData.md +26 -26
- package/docs/hook/data/preData.md +26 -26
- package/docs/hook/deleteCrud/afterDelete.md +21 -21
- package/docs/hook/deleteCrud/preDelete.md +26 -26
- package/docs/hook/form/afterForm.md +19 -19
- package/docs/hook/form/preForm.md +26 -26
- package/docs/hook/getTemplate/afterTemplate.md +24 -24
- package/docs/hook/getTemplate/preTemplate.md +29 -29
- package/docs/hook/index.md +45 -45
- package/docs/hook/insert/afterInsert.md +41 -41
- package/docs/hook/insert/preInsert.md +25 -25
- package/docs/hook/table/afterTable.md +20 -20
- package/docs/hook/table/preTable.md +25 -25
- package/docs/hook/update/afterUpdate.md +41 -41
- package/docs/hook/update/preUpdate.md +25 -25
- package/docs/index.md +42 -42
- package/docs/public/fastify-dark.svg +3 -3
- package/docs/public/logo-short-dark.svg +11 -11
- package/docs/public/logo-short.svg +10 -10
- package/docs/public/logo.svg +19 -19
- package/docs/readme/index.md +121 -121
- package/docs/templates/card.md +83 -83
- package/docs/templates/cls.md +29 -29
- package/docs/templates/filters.md +91 -91
- package/docs/templates/forms.md +139 -139
- package/docs/templates/index.md +28 -28
- package/docs/templates/select.md +90 -90
- package/docs/templates/table.md +162 -162
- package/docs/utils/cron/addCron.md +29 -29
- package/docs/utils/crud/dataInsert.md +51 -51
- package/docs/utils/crud/dataUpdate.md +52 -52
- package/docs/utils/crud/getOpt.md +33 -33
- package/docs/utils/crud/isFileExists.md +37 -37
- package/docs/utils/crud/setOpt.md +37 -37
- package/docs/utils/hook/addHook.md +74 -74
- package/docs/utils/hook/applyHook.md +64 -64
- package/docs/utils/index.md +47 -47
- package/docs/utils/notification/addNotification.md +28 -28
- package/docs/utils/notification/notification.md +41 -41
- package/docs/utils/pg/autoIndex.md +22 -22
- package/docs/utils/pg/getMeta.md +58 -58
- package/docs/utils/pg/getPG.md +34 -34
- package/docs/utils/pg/init.md +29 -29
- package/docs/utils/pg/pg.md +70 -70
- package/docs/utils/redis/getRedis.md +36 -36
- package/docs/utils/redis/rclient.md +74 -74
- package/docs/utils/table/getForm.md +68 -68
- package/docs/utils/table/getMeta.md +55 -55
- package/docs/utils/table/getSelect.md +38 -38
- package/docs/utils/table/getSelectMeta.md +46 -46
- package/docs/utils/table/getTable.md +77 -77
- package/helper.js +30 -30
- package/index.js +105 -105
- package/migration/exec.migrations.js +79 -79
- package/module/core/select/core.user_mentioned.sql +1 -1
- package/module/test/cls/itree.composition.json +25 -25
- package/module/test/table/test.rest_zone.table.json +265 -265
- package/notification/controllers/readNotifications.js +30 -30
- package/notification/controllers/testEmail.js +50 -50
- package/notification/controllers/userNotifications.js +64 -64
- package/notification/funcs/addNotification.js +21 -21
- package/notification/funcs/sendNotification.js +112 -112
- package/package.json +42 -41
- package/pg/funcs/getMeta.js +29 -29
- package/pg/funcs/getPG.js +30 -30
- package/pg/pgClients.js +20 -20
- package/policy/funcs/checkPolicy.js +92 -92
- package/policy/funcs/sqlInjection.js +33 -33
- package/policy/index.js +14 -14
- package/redis/client.js +8 -8
- package/redis/funcs/redisClients.js +2 -2
- package/redis/index.js +19 -19
- package/server/migrations/0.sql +78 -78
- package/server/migrations/cls.sql +39 -39
- package/server/migrations/properties.sql +144 -144
- package/server/migrations/roles.sql +172 -166
- package/server/migrations/users.sql +168 -168
- package/server.js +26 -26
- package/table/controllers/data.js +150 -134
- package/table/controllers/filter.js +50 -50
- package/table/controllers/form.js +42 -42
- package/table/controllers/search.js +80 -80
- package/table/controllers/suggest.js +79 -79
- package/table/controllers/table.js +83 -79
- package/table/controllers/utils/addTemplateDir.js +8 -8
- package/table/controllers/utils/getSelect.js +19 -19
- package/table/controllers/utils/getSelectMeta.js +66 -66
- package/table/controllers/utils/getTemplate_old.js +28 -28
- package/table/controllers/utils/getTemplates.js +18 -18
- package/table/controllers/utils/gisIRColumn.js +67 -67
- package/table/controllers/utils/loadTemplate.js +1 -1
- package/table/controllers/utils/loadTemplatePath.js +1 -1
- package/table/controllers/utils/userTemplateDir.js +1 -1
- package/table/funcs/getFilterSQL/index.js +94 -94
- package/table/funcs/getFilterSQL/util/formatValue.js +170 -170
- package/table/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
- package/table/funcs/getFilterSQL/util/getFilterQuery.js +66 -66
- package/table/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
- package/table/funcs/getFilterSQL/util/getTableSql.js +34 -34
- package/table/funcs/metaFormat/getSelectVal.js +21 -21
- package/table/funcs/metaFormat/index.js +28 -28
- package/table/index.js +37 -84
- package/table/schema.js +54 -0
- package/test/api/applyHook.test.js +95 -95
- package/test/api/crud.test.js +89 -89
- package/test/api/crud.xss.test.js +80 -80
- package/test/api/suggest.test.js +66 -66
- package/test/api/table.test.js +134 -134
- package/test/api/user.test.js +85 -85
- package/test/api/widget.test.js +117 -117
- package/test/helper/formatDate.test.js +62 -62
- package/test/templates/select/test.storage.data.json +3 -3
- package/test/templates/select/test.suggest.ato_new.json +3 -3
- package/test/templates/select/test.suggest.ato_new.sql +25 -25
- package/test/templates/select/test.suggest.data.json +4 -4
- package/test/templates/select/test.suggest.parent.sql +1 -1
- package/user/controllers/user.cls.id.js +14 -14
- package/user/controllers/user.cls.js +75 -75
- package/user/controllers/user.cls.post.js +55 -55
- package/user/controllers/user.info.js +21 -21
- package/util/controllers/logger.file.js +91 -91
- package/util/controllers/properties.add.js +60 -60
- package/util/controllers/status.monitor.js +8 -8
- package/util/controllers/utils/checkUserAccess.js +17 -17
- package/util/controllers/utils/getRootDir.js +25 -25
- package/utils.js +104 -104
- package/widget/controllers/utils/historyFormat.js +76 -76
- package/widget/controllers/utils/obj2db.js +13 -13
- package/widget/controllers/widget.del.js +44 -44
- package/widget/controllers/widget.get.js +102 -102
- package/widget/controllers/widget.set.js +79 -79
- 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 | Дані сесії користувача |
|