@opengis/fastify-table 1.1.134 → 1.1.136
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/package.json
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
CREATE SCHEMA IF NOT EXISTS admin;
|
|
2
|
+
|
|
1
3
|
CREATE TABLE IF NOT EXISTS admin.rules();
|
|
2
|
-
ALTER TABLE admin.rules
|
|
4
|
+
ALTER TABLE admin.rules DROP CONSTRAINT IF EXISTS admin_rules_pkey cascade;
|
|
5
|
+
ALTER TABLE admin.rules add column if not exists rule_id text NOT NULL DEFAULT next_id();
|
|
6
|
+
|
|
3
7
|
ALTER TABLE admin.rules add column if not exists rule_type text;
|
|
4
8
|
ALTER TABLE admin.rules add column if not exists rule_name text;
|
|
5
9
|
ALTER TABLE admin.rules add column if not exists attr text;
|
|
@@ -8,6 +12,7 @@ ALTER TABLE admin.rules add column if not exists uid text;
|
|
|
8
12
|
ALTER TABLE admin.rules add column if not exists cdate timestamp without time zone;
|
|
9
13
|
ALTER TABLE admin.rules add column if not exists rule_query text;
|
|
10
14
|
ALTER TABLE admin.rules add column if not exists cls text;
|
|
15
|
+
COMMENT ON TABLE admin.rules IS 'Повноваження';
|
|
11
16
|
COMMENT ON COLUMN admin.rules.rule_type IS 'Тип повноваження';
|
|
12
17
|
COMMENT ON COLUMN admin.rules.rule_name IS 'Назва';
|
|
13
18
|
COMMENT ON COLUMN admin.rules.attr IS 'Атрибут';
|
|
@@ -15,6 +20,7 @@ COMMENT ON COLUMN admin.rules.routes IS 'Роути';
|
|
|
15
20
|
COMMENT ON COLUMN admin.rules.uid IS 'Хто створив';
|
|
16
21
|
COMMENT ON COLUMN admin.rules.cdate IS 'Дата створення';
|
|
17
22
|
COMMENT ON COLUMN admin.rules.rule_query IS 'Запит';
|
|
23
|
+
COMMENT ON COLUMN admin.rules.cls IS 'Класифікатор';
|
|
18
24
|
ALTER TABLE admin.rules ALTER COLUMN attr DROP NOT NULL;
|
|
19
25
|
ALTER TABLE admin.rules ALTER COLUMN cdate DROP NOT NULL;ALTER TABLE admin.rules ALTER COLUMN cdate SET DEFAULT (now())::timestamp without time zone;
|
|
20
26
|
ALTER TABLE admin.rules ALTER COLUMN cls DROP NOT NULL;
|
|
@@ -24,14 +30,20 @@ ALTER TABLE admin.rules ALTER COLUMN rule_name DROP NOT NULL;
|
|
|
24
30
|
ALTER TABLE admin.rules ALTER COLUMN rule_query DROP NOT NULL;
|
|
25
31
|
ALTER TABLE admin.rules ALTER COLUMN rule_type DROP NOT NULL;
|
|
26
32
|
ALTER TABLE admin.rules ALTER COLUMN uid DROP NOT NULL;
|
|
33
|
+
ALTER TABLE admin.rules add CONSTRAINT admin_rules_pkey PRIMARY KEY (rule_id);
|
|
34
|
+
|
|
35
|
+
CREATE INDEX if not exists admin_rules_id_idx ON admin.rules USING btree (rule_id COLLATE pg_catalog."default");
|
|
27
36
|
|
|
28
37
|
|
|
29
38
|
CREATE TABLE IF NOT EXISTS admin.accounts();
|
|
30
|
-
ALTER TABLE admin.accounts
|
|
39
|
+
ALTER TABLE admin.accounts DROP CONSTRAINT IF EXISTS admin_accounts_pkey cascade;
|
|
40
|
+
ALTER TABLE admin.accounts add column if not exists account_id text NOT NULL DEFAULT next_id();
|
|
41
|
+
|
|
31
42
|
ALTER TABLE admin.accounts add column if not exists account_name text;
|
|
32
43
|
ALTER TABLE admin.accounts add column if not exists description text;
|
|
33
44
|
ALTER TABLE admin.accounts add column if not exists uid text;
|
|
34
45
|
ALTER TABLE admin.accounts add column if not exists cdate timestamp without time zone;
|
|
46
|
+
COMMENT ON TABLE admin.accounts IS 'Організації';
|
|
35
47
|
COMMENT ON COLUMN admin.accounts.account_name IS 'Назва';
|
|
36
48
|
COMMENT ON COLUMN admin.accounts.description IS 'Опис';
|
|
37
49
|
COMMENT ON COLUMN admin.accounts.uid IS 'Хто створив';
|
|
@@ -41,14 +53,22 @@ ALTER TABLE admin.accounts ALTER COLUMN account_name DROP NOT NULL;
|
|
|
41
53
|
ALTER TABLE admin.accounts ALTER COLUMN cdate DROP NOT NULL;ALTER TABLE admin.accounts ALTER COLUMN cdate SET DEFAULT (now())::timestamp without time zone;
|
|
42
54
|
ALTER TABLE admin.accounts ALTER COLUMN description DROP NOT NULL;
|
|
43
55
|
ALTER TABLE admin.accounts ALTER COLUMN uid DROP NOT NULL;
|
|
56
|
+
ALTER TABLE admin.accounts add CONSTRAINT admin_accounts_pkey PRIMARY KEY (account_id);
|
|
57
|
+
|
|
58
|
+
CREATE INDEX if not exists admin_accounts_id_idx ON admin.accounts USING btree (account_id COLLATE pg_catalog."default");
|
|
44
59
|
|
|
45
60
|
|
|
46
61
|
CREATE TABLE IF NOT EXISTS admin.account_users();
|
|
47
|
-
ALTER TABLE admin.account_users
|
|
62
|
+
ALTER TABLE admin.account_users DROP CONSTRAINT IF EXISTS admin_account_users_pkey;
|
|
63
|
+
ALTER TABLE admin.account_users DROP CONSTRAINT IF EXISTS admin_au_account_fkey;
|
|
64
|
+
ALTER TABLE admin.account_users DROP CONSTRAINT IF EXISTS admin_au_user_fkey;
|
|
65
|
+
ALTER TABLE admin.account_users add column if not exists au_id text NOT NULL DEFAULT next_id();
|
|
66
|
+
|
|
48
67
|
ALTER TABLE admin.account_users add column if not exists account_id text;
|
|
49
68
|
ALTER TABLE admin.account_users add column if not exists user_uid text;
|
|
50
69
|
ALTER TABLE admin.account_users add column if not exists uid text;
|
|
51
70
|
ALTER TABLE admin.account_users add column if not exists cdate timestamp without time zone;
|
|
71
|
+
COMMENT ON TABLE admin.account_users IS 'Організації - Користувачі';
|
|
52
72
|
COMMENT ON COLUMN admin.account_users.account_id IS 'id Організації';
|
|
53
73
|
COMMENT ON COLUMN admin.account_users.user_uid IS 'id Користувача';
|
|
54
74
|
COMMENT ON COLUMN admin.account_users.uid IS 'Хто створив';
|
|
@@ -58,10 +78,21 @@ ALTER TABLE admin.account_users ALTER COLUMN au_id SET NOT NULL;ALTER TABLE admi
|
|
|
58
78
|
ALTER TABLE admin.account_users ALTER COLUMN cdate DROP NOT NULL;ALTER TABLE admin.account_users ALTER COLUMN cdate SET DEFAULT (now())::timestamp without time zone;
|
|
59
79
|
ALTER TABLE admin.account_users ALTER COLUMN uid DROP NOT NULL;
|
|
60
80
|
ALTER TABLE admin.account_users ALTER COLUMN user_uid DROP NOT NULL;
|
|
81
|
+
ALTER TABLE admin.account_users add CONSTRAINT admin_account_users_pkey PRIMARY KEY (au_id);
|
|
82
|
+
ALTER TABLE admin.account_users ADD CONSTRAINT admin_au_account_fkey FOREIGN KEY (account_id) REFERENCES admin.accounts (account_id) MATCH SIMPLE;
|
|
83
|
+
ALTER TABLE admin.account_users ADD CONSTRAINT admin_au_user_fkey FOREIGN KEY (user_uid) REFERENCES admin.users (uid) MATCH SIMPLE;
|
|
84
|
+
|
|
85
|
+
CREATE INDEX if not exists admin_account_users_id_idx ON admin.account_users USING btree (au_id COLLATE pg_catalog."default");
|
|
86
|
+
CREATE INDEX if not exists admin_au_account_id_idx ON admin.account_users USING btree (account_id COLLATE pg_catalog."default");
|
|
87
|
+
CREATE INDEX if not exists admin_au_user_uid_idx ON admin.account_users USING btree (user_uid COLLATE pg_catalog."default");
|
|
61
88
|
|
|
62
89
|
|
|
63
90
|
CREATE TABLE IF NOT EXISTS admin.account_grants();
|
|
64
|
-
ALTER TABLE admin.account_grants
|
|
91
|
+
ALTER TABLE admin.account_grants DROP CONSTRAINT IF EXISTS admin_account_grants_pkey;
|
|
92
|
+
ALTER TABLE admin.account_grants DROP CONSTRAINT IF EXISTS admin_ag_account_fkey;
|
|
93
|
+
ALTER TABLE admin.account_grants DROP CONSTRAINT IF EXISTS admin_ag_user_fkey;
|
|
94
|
+
ALTER TABLE admin.account_grants add column if not exists ag_id text NOT NULL DEFAULT next_id();
|
|
95
|
+
|
|
65
96
|
ALTER TABLE admin.account_grants add column if not exists account_id text;
|
|
66
97
|
ALTER TABLE admin.account_grants add column if not exists rule_id text;
|
|
67
98
|
ALTER TABLE admin.account_grants add column if not exists routes text[];
|
|
@@ -72,6 +103,7 @@ ALTER TABLE admin.account_grants add column if not exists expire_date date;
|
|
|
72
103
|
ALTER TABLE admin.account_grants add column if not exists actions text[];
|
|
73
104
|
ALTER TABLE admin.account_grants add column if not exists uid text;
|
|
74
105
|
ALTER TABLE admin.account_grants add column if not exists cdate timestamp without time zone;
|
|
106
|
+
COMMENT ON TABLE admin.account_grants IS 'Організації - Повноваження';
|
|
75
107
|
COMMENT ON COLUMN admin.account_grants.account_id IS 'id Організації';
|
|
76
108
|
COMMENT ON COLUMN admin.account_grants.rule_id IS 'id Правила';
|
|
77
109
|
COMMENT ON COLUMN admin.account_grants.routes IS 'Роути';
|
|
@@ -92,4 +124,11 @@ ALTER TABLE admin.account_grants ALTER COLUMN grants_doc_id DROP NOT NULL;
|
|
|
92
124
|
ALTER TABLE admin.account_grants ALTER COLUMN routes DROP NOT NULL;
|
|
93
125
|
ALTER TABLE admin.account_grants ALTER COLUMN rule_id DROP NOT NULL;
|
|
94
126
|
ALTER TABLE admin.account_grants ALTER COLUMN rule_values DROP NOT NULL;
|
|
95
|
-
ALTER TABLE admin.account_grants ALTER COLUMN uid DROP NOT NULL;
|
|
127
|
+
ALTER TABLE admin.account_grants ALTER COLUMN uid DROP NOT NULL;
|
|
128
|
+
ALTER TABLE admin.account_grants add CONSTRAINT admin_account_grants_pkey PRIMARY KEY (ag_id);
|
|
129
|
+
ALTER TABLE admin.account_grants ADD CONSTRAINT admin_ag_account_fkey FOREIGN KEY (account_id) REFERENCES admin.accounts (account_id) MATCH SIMPLE;
|
|
130
|
+
ALTER TABLE admin.account_grants ADD CONSTRAINT admin_ag_user_fkey FOREIGN KEY (rule_id) REFERENCES admin.rules (rule_id) MATCH SIMPLE;
|
|
131
|
+
|
|
132
|
+
CREATE INDEX if not exists admin_account_users_id_idx ON admin.account_grants USING btree (ag_id COLLATE pg_catalog."default");
|
|
133
|
+
CREATE INDEX if not exists admin_ag_account_id_idx ON admin.account_grants USING btree (account_id COLLATE pg_catalog."default");
|
|
134
|
+
CREATE INDEX if not exists admin_ag_rule_id_idx ON admin.account_grants USING btree (rule_id COLLATE pg_catalog."default");
|
|
@@ -4,15 +4,16 @@ import getTemplate from './getTemplate.js';
|
|
|
4
4
|
const loadCls = {};
|
|
5
5
|
|
|
6
6
|
const sqls = {
|
|
7
|
-
sql: 'select data from admin.cls where name=$1',
|
|
8
|
-
json:
|
|
7
|
+
sql: 'select data from admin.user_cls where name=$1 union all select data from admin.cls where name=$1',
|
|
8
|
+
json: `select json_agg(json_build_object(\'id\', code, \'text\', name, \'icon\', icon, \'color\', color)) as data from admin.user_cls where parent=$1
|
|
9
|
+
union all select json_agg(json_build_object(\'id\', code, \'text\', name, \'icon\', icon, \'color\', color)) as data from admin.cls where parent=$1`,
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
export default async function getSelect(name, pg = pgClients.client) {
|
|
12
13
|
if (loadCls[name]) return loadCls[name];
|
|
13
14
|
|
|
14
15
|
const clsDataGIT = await getTemplate(['cls', 'select'], name);
|
|
15
|
-
const { type } = !clsDataGIT && pg.pk?.['admin.
|
|
16
|
+
const { type } = !clsDataGIT && pg.pk?.['admin.user_cls'] ? await pg.query('select type from admin.user_cls where parent is null and name=$1 union all select type from admin.cls where parent is null and name=$1 limit 1', [name]).then(el => el.rows?.[0] || {}) : {};
|
|
16
17
|
const q = !clsDataGIT && type && ['sql', 'json'].includes(type) ? sqls[type] : undefined;
|
|
17
18
|
const clsDataDB = q ? await pg.query(q, [name]).then(el => el.rows?.[0]?.data) : undefined;
|
|
18
19
|
const clsData = clsDataGIT || clsDataDB;
|
|
@@ -4,7 +4,7 @@ export default function eventStream(res) {
|
|
|
4
4
|
const time = Date.now();
|
|
5
5
|
|
|
6
6
|
// eslint-disable-next-line no-underscore-dangle
|
|
7
|
-
if (!res?._headerSent) {
|
|
7
|
+
if (!res?._headerSent && !res.sent) {
|
|
8
8
|
res.raw.writeHead(200, {
|
|
9
9
|
'Content-Type': 'text/event-stream; charset=utf-8',
|
|
10
10
|
'Cache-Control': 'no-cache',
|