letopis 1.4.2 → 3.0.0
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/AGENT-CHEATSHEET.md +516 -398
- package/CHANGELOG.md +739 -0
- package/LICENSE +75 -21
- package/LICENSE-COMMERCIAL.md +49 -0
- package/README.md +1312 -1190
- package/api-contract.json +381 -0
- package/dist/acl.d.ts +81 -1
- package/dist/acl.js +281 -13
- package/dist/admin.d.ts +11 -141
- package/dist/admin.js +28 -186
- package/dist/auth.d.ts +20 -5
- package/dist/auth.js +80 -21
- package/dist/cache.d.ts +8 -1
- package/dist/cache.js +30 -8
- package/dist/chain.d.ts +46 -48
- package/dist/chain.js +556 -223
- package/dist/cli.js +73 -96
- package/dist/demo/booking.d.ts +352 -36
- package/dist/describe.d.ts +47 -0
- package/dist/describe.js +195 -0
- package/dist/errors.d.ts +77 -13
- package/dist/errors.js +231 -30
- package/dist/index.d.ts +62 -74
- package/dist/index.js +312 -155
- package/dist/internal.d.ts +7 -0
- package/dist/jsonschema.js +18 -17
- package/dist/load.d.ts +29 -17
- package/dist/load.js +235 -190
- package/dist/log.d.ts +121 -0
- package/dist/log.js +633 -0
- package/dist/mcp.d.ts +5 -7
- package/dist/mcp.js +194 -225
- package/dist/messages/access.d.ts +90 -0
- package/dist/messages/access.js +113 -0
- package/dist/messages/api.d.ts +237 -0
- package/dist/messages/api.js +304 -0
- package/dist/messages/boot.d.ts +201 -0
- package/dist/messages/boot.js +256 -0
- package/dist/messages/codes.d.ts +172 -0
- package/dist/messages/codes.js +173 -0
- package/dist/messages/index.d.ts +98 -0
- package/dist/messages/index.js +121 -0
- package/dist/messages/log.d.ts +229 -0
- package/dist/messages/log.js +102 -0
- package/dist/messages/mcp.d.ts +306 -0
- package/dist/messages/mcp.js +387 -0
- package/dist/messages/model.d.ts +256 -0
- package/dist/messages/model.js +314 -0
- package/dist/messages/query.d.ts +141 -0
- package/dist/messages/query.js +171 -0
- package/dist/messages/sql-access.d.ts +70 -0
- package/dist/messages/sql-access.js +87 -0
- package/dist/messages/sql-core.d.ts +164 -0
- package/dist/messages/sql-core.js +198 -0
- package/dist/messages/sql-time.d.ts +86 -0
- package/dist/messages/sql-time.js +111 -0
- package/dist/messages/sql-write.d.ts +246 -0
- package/dist/messages/sql-write.js +270 -0
- package/dist/messages/time.d.ts +23 -0
- package/dist/messages/time.js +29 -0
- package/dist/messages/types.d.ts +27 -0
- package/dist/messages/types.js +5 -0
- package/dist/messages/write.d.ts +452 -0
- package/dist/messages/write.js +572 -0
- package/dist/model.d.ts +77 -60
- package/dist/model.js +43 -34
- package/dist/ops.d.ts +35 -0
- package/dist/ops.js +101 -0
- package/dist/pglite.d.ts +0 -9
- package/dist/pglite.js +3 -1
- package/dist/registry.d.ts +3 -19
- package/dist/registry.js +3 -16
- package/dist/signals.d.ts +1 -5
- package/dist/signals.js +1 -5
- package/dist/sql.d.ts +9 -1
- package/dist/sql.js +175 -107
- package/dist/sync.d.ts +10 -4
- package/dist/sync.js +90 -17
- package/dist/tx.d.ts +21 -2
- package/dist/tx.js +76 -13
- package/dist/typed.d.ts +252 -53
- package/dist/types.d.ts +93 -90
- package/dist/types.js +17 -14
- package/dist/up.d.ts +56 -35
- package/dist/up.js +229 -83
- package/dist/uuid.d.ts +8 -0
- package/dist/uuid.js +14 -6
- package/dist/validate.d.ts +13 -1
- package/dist/validate.js +82 -33
- package/dist/watch.d.ts +10 -16
- package/dist/watch.js +36 -77
- package/dist/write.d.ts +87 -17
- package/dist/write.js +441 -206
- package/llms.txt +48 -31
- package/package.json +13 -14
- package/sql/10-core.sql +7 -50
- package/sql/15-errors.sql +64 -10
- package/sql/20-context.sql +18 -9
- package/sql/30-validate.sql +79 -30
- package/sql/40-class.sql +41 -115
- package/sql/50-acl.sql +8 -13
- package/sql/60-write.sql +220 -676
- package/sql/70-read.sql +11 -13
- package/sql/80-auth.sql +109 -42
- package/sql/90-time.sql +108 -947
- package/sql/95-seed.system.sql +7 -14
- package/sql/99-revision.sql +6 -1
- package/sql/README.md +32 -24
- package/sql/migrate/0009-restore-rev.tenants-name.sql +10 -0
- package/sql/migrate/0010-impersonation-no-account.sql +5 -0
- package/sql/migrate/0011-key-lock.otp-enabled.sql +7 -0
- package/sql/migrate/README.md +18 -0
- package/AGENT-CHEATSHEET.en.md +0 -488
- package/MIGRATION.md +0 -190
- package/README.en.md +0 -2910
- package/dist/import.d.ts +0 -185
- package/dist/import.js +0 -820
- package/dist/project.d.ts +0 -359
- package/dist/project.js +0 -1258
- package/sql/75-history.sql +0 -436
- package/sql/88-derived.sql +0 -1236
- package/sql/migrate/0006-changed-paths.sql +0 -3
- package/sql/migrate/0007-secret-account-fk.sql +0 -12
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export declare const access: {
|
|
2
|
+
'access.switch_not_root': {
|
|
3
|
+
code: "invalid_query";
|
|
4
|
+
ru: string;
|
|
5
|
+
hint: string;
|
|
6
|
+
};
|
|
7
|
+
'access.role_not_string': {
|
|
8
|
+
code: "invalid_data";
|
|
9
|
+
ru: string;
|
|
10
|
+
hint: string;
|
|
11
|
+
};
|
|
12
|
+
'access.bad_role_name': {
|
|
13
|
+
code: "invalid_data";
|
|
14
|
+
ru: string;
|
|
15
|
+
hint: string;
|
|
16
|
+
};
|
|
17
|
+
'access.bad_condition_column': {
|
|
18
|
+
code: "invalid_data";
|
|
19
|
+
ru: string;
|
|
20
|
+
hint: string;
|
|
21
|
+
};
|
|
22
|
+
'access.bad_rule_target': {
|
|
23
|
+
code: "invalid_data";
|
|
24
|
+
ru: string;
|
|
25
|
+
hint: string;
|
|
26
|
+
};
|
|
27
|
+
'access.bad_endpoint_mask': {
|
|
28
|
+
code: "invalid_data";
|
|
29
|
+
ru: string;
|
|
30
|
+
hint: string;
|
|
31
|
+
};
|
|
32
|
+
'access.rule_spec_not_object': {
|
|
33
|
+
code: "invalid_data";
|
|
34
|
+
ru: string;
|
|
35
|
+
hint: string;
|
|
36
|
+
};
|
|
37
|
+
'access.unknown_rule_field': {
|
|
38
|
+
code: "invalid_data";
|
|
39
|
+
ru: string;
|
|
40
|
+
hint: string;
|
|
41
|
+
};
|
|
42
|
+
'access.bad_rule_weight': {
|
|
43
|
+
code: "invalid_data";
|
|
44
|
+
ru: string;
|
|
45
|
+
hint: string;
|
|
46
|
+
};
|
|
47
|
+
'access.rule_who': {
|
|
48
|
+
code: "invalid_data";
|
|
49
|
+
ru: string;
|
|
50
|
+
hint: string;
|
|
51
|
+
};
|
|
52
|
+
'access.no_rule_operations': {
|
|
53
|
+
code: "invalid_data";
|
|
54
|
+
ru: string;
|
|
55
|
+
hint: string;
|
|
56
|
+
};
|
|
57
|
+
'access.no_facade': {
|
|
58
|
+
code: "invalid_query";
|
|
59
|
+
ru: string;
|
|
60
|
+
};
|
|
61
|
+
'access.bad_account': {
|
|
62
|
+
code: "invalid_data";
|
|
63
|
+
ru: string;
|
|
64
|
+
hint: string;
|
|
65
|
+
};
|
|
66
|
+
'access.no_session_tenant': {
|
|
67
|
+
code: "no_session";
|
|
68
|
+
ru: string;
|
|
69
|
+
};
|
|
70
|
+
'access.roles_not_array': {
|
|
71
|
+
code: "invalid_data";
|
|
72
|
+
ru: string;
|
|
73
|
+
hint: string;
|
|
74
|
+
};
|
|
75
|
+
'access.duplicate_roles': {
|
|
76
|
+
code: "invalid_data";
|
|
77
|
+
ru: string;
|
|
78
|
+
hint: string;
|
|
79
|
+
};
|
|
80
|
+
'access.bad_scrypt_params': {
|
|
81
|
+
code: "invalid_data";
|
|
82
|
+
ru: string;
|
|
83
|
+
hint: string;
|
|
84
|
+
};
|
|
85
|
+
'access.bad_totp_secret': {
|
|
86
|
+
code: "invalid_data";
|
|
87
|
+
ru: string;
|
|
88
|
+
hint: string;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Подсказка неверного вызова db.acl: общая подсказка invalid_data — про issues, а у этих ошибок их нет. Параметр what в
|
|
3
|
+
* записях db.acl — метод (grant, deny, revoke, roles), с которого начинается текст.
|
|
4
|
+
*/
|
|
5
|
+
const ACL_CALL = 'исправить аргумент по тексту ошибки; вызовы db.acl — README, «Выдать право»';
|
|
6
|
+
export const access = {
|
|
7
|
+
// auth.ts, switch(): фасад db.as() арендатора не меняет
|
|
8
|
+
'access.switch_not_root': {
|
|
9
|
+
code: 'invalid_query',
|
|
10
|
+
ru: 'auth.switch() — от корня подключения: при имперсонации арендатора задаёт db.as(…, { tenant })',
|
|
11
|
+
hint: 'сменить арендатора корня — db.auth.switch(); фасаду db.as() арендатора задают при создании: db.as(аккаунт, { tenant })',
|
|
12
|
+
},
|
|
13
|
+
// acl.ts, roleName: роль в grant, deny, revoke или в списке db.acl.roles — не строка; type — её тип
|
|
14
|
+
'access.role_not_string': {
|
|
15
|
+
code: 'invalid_data',
|
|
16
|
+
ru: 'db.acl.{what}: role — строка, а не {type}',
|
|
17
|
+
hint: ACL_CALL,
|
|
18
|
+
},
|
|
19
|
+
// acl.ts, roleName: имя роли пустое, с запятой или фигурной скобкой, с «!» в начале или с пробелом по краям
|
|
20
|
+
'access.bad_role_name': {
|
|
21
|
+
code: 'invalid_data',
|
|
22
|
+
ru: 'db.acl.{what}: роль {role} — непустая строка без запятых и фигурных скобок, без «!» в начале и пробелов по краям',
|
|
23
|
+
hint: ACL_CALL,
|
|
24
|
+
},
|
|
25
|
+
// acl.ts, classItem: условие цели правила — на колонку не из списка
|
|
26
|
+
'access.bad_condition_column': {
|
|
27
|
+
code: 'invalid_data',
|
|
28
|
+
ru: 'db.acl.{what}: условие на колонку {column} — условие ставят на {columns}',
|
|
29
|
+
hint: ACL_CALL,
|
|
30
|
+
},
|
|
31
|
+
// acl.ts, classItem: цель read, write или delete — не имя класса, не звёздочка и не объект с полем class
|
|
32
|
+
'access.bad_rule_target': {
|
|
33
|
+
code: 'invalid_data',
|
|
34
|
+
ru: "db.acl.{what}: цель {target} — имя класса, '*' (все классы) или { class, …условие на строки }",
|
|
35
|
+
hint: ACL_CALL,
|
|
36
|
+
},
|
|
37
|
+
// acl.ts, apiItem: цель api — не маска эндпоинта
|
|
38
|
+
'access.bad_endpoint_mask': {
|
|
39
|
+
code: 'invalid_data',
|
|
40
|
+
ru: 'db.acl.{what}: api {endpoint} — маска эндпоинта: сегменты через «.», {a,b} — любой из, * — хвост',
|
|
41
|
+
hint: ACL_CALL,
|
|
42
|
+
},
|
|
43
|
+
// acl.ts, parse: описание правила grant, deny или revoke — не объект
|
|
44
|
+
'access.rule_spec_not_object': {
|
|
45
|
+
code: 'invalid_data',
|
|
46
|
+
ru: 'db.acl.{what}: нужен объект { role, read | write | delete | api }',
|
|
47
|
+
hint: ACL_CALL,
|
|
48
|
+
},
|
|
49
|
+
// acl.ts, parse: лишнее поле в описании правила (у revoke нет и weight)
|
|
50
|
+
'access.unknown_rule_field': {
|
|
51
|
+
code: 'invalid_data',
|
|
52
|
+
ru: 'db.acl.{what}: поле {field} — допустимы {fields}',
|
|
53
|
+
hint: ACL_CALL,
|
|
54
|
+
},
|
|
55
|
+
// acl.ts, parse: weight — не целое от 1 до 999
|
|
56
|
+
'access.bad_rule_weight': {
|
|
57
|
+
code: 'invalid_data',
|
|
58
|
+
ru: 'db.acl.{what}: weight — целое от 1 до 999: вес правила арендатора (от 1000 — административный слой System)',
|
|
59
|
+
hint: ACL_CALL,
|
|
60
|
+
},
|
|
61
|
+
// acl.ts, parse: кому правило — нет ни role, ни everyone, есть оба или everyone не true
|
|
62
|
+
'access.rule_who': {
|
|
63
|
+
code: 'invalid_data',
|
|
64
|
+
ru: 'db.acl.{what}: кому правило — ровно одно из role (роль членства) и everyone: true (все аккаунты арендатора)',
|
|
65
|
+
hint: ACL_CALL,
|
|
66
|
+
},
|
|
67
|
+
// acl.ts, parse: в описании правила нет ни read, ни write, ни delete, ни api
|
|
68
|
+
'access.no_rule_operations': {
|
|
69
|
+
code: 'invalid_data',
|
|
70
|
+
ru: 'db.acl.{what}: нужна хотя бы одна операция: read, write, delete или api',
|
|
71
|
+
hint: ACL_CALL,
|
|
72
|
+
},
|
|
73
|
+
// acl.ts, makeAcl: db.acl без фасада подключения, а grant, deny, revoke, roles и list идут его цепочками
|
|
74
|
+
'access.no_facade': {
|
|
75
|
+
code: 'invalid_query',
|
|
76
|
+
ru: 'db.acl: запись правил — от фасада подключения',
|
|
77
|
+
},
|
|
78
|
+
// acl.ts, roles(): аккаунт — не id и не строка с полем id
|
|
79
|
+
'access.bad_account': {
|
|
80
|
+
code: 'invalid_data',
|
|
81
|
+
ru: 'db.acl.roles: аккаунт — id или строка с полем id',
|
|
82
|
+
hint: ACL_CALL,
|
|
83
|
+
},
|
|
84
|
+
// acl.ts, roles() и list(): у фасада нет рабочего арендатора — подключение без сессии; what — метод
|
|
85
|
+
'access.no_session_tenant': {
|
|
86
|
+
code: 'no_session',
|
|
87
|
+
ru: 'db.acl.{what}: нет арендатора сессии',
|
|
88
|
+
},
|
|
89
|
+
// acl.ts, roles(): роли — не массив и не null
|
|
90
|
+
'access.roles_not_array': {
|
|
91
|
+
code: 'invalid_data',
|
|
92
|
+
ru: 'db.acl.roles: роли — массив строк или null (снять членство)',
|
|
93
|
+
hint: ACL_CALL,
|
|
94
|
+
},
|
|
95
|
+
// acl.ts, roles(): роль в списке повторяется
|
|
96
|
+
'access.duplicate_roles': {
|
|
97
|
+
code: 'invalid_data',
|
|
98
|
+
ru: 'db.acl.roles: роли повторяются',
|
|
99
|
+
hint: ACL_CALL,
|
|
100
|
+
},
|
|
101
|
+
// auth.ts, verifyHash: scrypt отверг N, r, p из строки хэша — недопустимы или требуют больше 64 МБ памяти
|
|
102
|
+
'access.bad_scrypt_params': {
|
|
103
|
+
code: 'invalid_data',
|
|
104
|
+
ru: 'хэш пароля: параметры scrypt N={N}, r={r}, p={p} недопустимы или требуют больше 64 МБ памяти',
|
|
105
|
+
hint: 'хэш с такими параметрами не проверить: задать пароль заново — auth.setPassword()',
|
|
106
|
+
},
|
|
107
|
+
// auth.ts, base32Decode: в секрете TOTP (totpCode) знак не из алфавита base32
|
|
108
|
+
'access.bad_totp_secret': {
|
|
109
|
+
code: 'invalid_data',
|
|
110
|
+
ru: 'секрет TOTP — не base32',
|
|
111
|
+
hint: 'передать секрет из auth.enrollTotp() — строку base32 (A–Z, 2–7)',
|
|
112
|
+
},
|
|
113
|
+
};
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
export declare const api: {
|
|
2
|
+
'api.validation_failed': {
|
|
3
|
+
code: "invalid_data";
|
|
4
|
+
ru: string;
|
|
5
|
+
};
|
|
6
|
+
'api.unknown_step': {
|
|
7
|
+
code: "invalid_class";
|
|
8
|
+
ru: string;
|
|
9
|
+
hint: string;
|
|
10
|
+
};
|
|
11
|
+
'api.token_not_active': {
|
|
12
|
+
code: "no_session";
|
|
13
|
+
ru: string;
|
|
14
|
+
hint: string;
|
|
15
|
+
};
|
|
16
|
+
'api.unknown_step_no_classes': {
|
|
17
|
+
code: "invalid_class";
|
|
18
|
+
ru: string;
|
|
19
|
+
hint: string;
|
|
20
|
+
};
|
|
21
|
+
'api.chain_not_rows': {
|
|
22
|
+
code: "invalid_query";
|
|
23
|
+
ru: string;
|
|
24
|
+
hint: string;
|
|
25
|
+
};
|
|
26
|
+
'api.step_undefined_filter': {
|
|
27
|
+
code: "invalid_query";
|
|
28
|
+
ru: string;
|
|
29
|
+
};
|
|
30
|
+
'api.sort_not_last': {
|
|
31
|
+
code: "invalid_query";
|
|
32
|
+
ru: string;
|
|
33
|
+
};
|
|
34
|
+
'api.with_deleted_step': {
|
|
35
|
+
code: "invalid_query";
|
|
36
|
+
ru: string;
|
|
37
|
+
};
|
|
38
|
+
'api.db_bad_value': {
|
|
39
|
+
code: "invalid_query";
|
|
40
|
+
ru: string;
|
|
41
|
+
hint: string;
|
|
42
|
+
};
|
|
43
|
+
'api.validation_issue': {
|
|
44
|
+
code: "invalid_data";
|
|
45
|
+
ru: string;
|
|
46
|
+
};
|
|
47
|
+
'api.validation_root': {
|
|
48
|
+
code: "invalid_data";
|
|
49
|
+
ru: string;
|
|
50
|
+
};
|
|
51
|
+
'api.validation_more': {
|
|
52
|
+
code: "invalid_data";
|
|
53
|
+
ru: string;
|
|
54
|
+
};
|
|
55
|
+
'api.connect_schema': {
|
|
56
|
+
code: "invalid_data";
|
|
57
|
+
ru: string;
|
|
58
|
+
hint: string;
|
|
59
|
+
};
|
|
60
|
+
'api.unknown_option': {
|
|
61
|
+
code: "invalid_data";
|
|
62
|
+
ru: string;
|
|
63
|
+
hint: string;
|
|
64
|
+
};
|
|
65
|
+
'api.row_check_denied': {
|
|
66
|
+
code: "acl_denied";
|
|
67
|
+
ru: string;
|
|
68
|
+
};
|
|
69
|
+
'api.no_history': {
|
|
70
|
+
code: "invalid_query";
|
|
71
|
+
ru: string;
|
|
72
|
+
};
|
|
73
|
+
'api.slow_query': {
|
|
74
|
+
code: "invalid_query";
|
|
75
|
+
ru: string;
|
|
76
|
+
};
|
|
77
|
+
'api.batch_queued': {
|
|
78
|
+
code: "invalid_query";
|
|
79
|
+
ru: string;
|
|
80
|
+
};
|
|
81
|
+
'api.mod_after_verb': {
|
|
82
|
+
code: "invalid_query";
|
|
83
|
+
ru: string;
|
|
84
|
+
};
|
|
85
|
+
'api.after_not_paged': {
|
|
86
|
+
code: "invalid_query";
|
|
87
|
+
ru: string;
|
|
88
|
+
hint: string;
|
|
89
|
+
};
|
|
90
|
+
'api.for_update_outside_tx': {
|
|
91
|
+
code: "tx_required";
|
|
92
|
+
ru: string;
|
|
93
|
+
};
|
|
94
|
+
'api.for_update_unsupported': {
|
|
95
|
+
code: "lock_unsupported";
|
|
96
|
+
ru: string;
|
|
97
|
+
hint: string;
|
|
98
|
+
};
|
|
99
|
+
'api.lock_denied': {
|
|
100
|
+
code: "acl_denied";
|
|
101
|
+
ru: string;
|
|
102
|
+
};
|
|
103
|
+
'api.slot_value': {
|
|
104
|
+
code: "invalid_query";
|
|
105
|
+
ru: string;
|
|
106
|
+
};
|
|
107
|
+
'api.slot_without_write': {
|
|
108
|
+
code: "invalid_query";
|
|
109
|
+
ru: string;
|
|
110
|
+
};
|
|
111
|
+
'api.slot_single': {
|
|
112
|
+
code: "invalid_query";
|
|
113
|
+
ru: string;
|
|
114
|
+
};
|
|
115
|
+
'api.slot_required': {
|
|
116
|
+
code: "invalid_query";
|
|
117
|
+
ru: string;
|
|
118
|
+
};
|
|
119
|
+
'api.slot_twice': {
|
|
120
|
+
code: "invalid_query";
|
|
121
|
+
ru: string;
|
|
122
|
+
};
|
|
123
|
+
'api.step_mod_after_verb': {
|
|
124
|
+
code: "invalid_query";
|
|
125
|
+
ru: string;
|
|
126
|
+
};
|
|
127
|
+
'api.verb_without_step': {
|
|
128
|
+
code: "invalid_query";
|
|
129
|
+
ru: string;
|
|
130
|
+
};
|
|
131
|
+
'api.entity_with_verbs': {
|
|
132
|
+
code: "invalid_query";
|
|
133
|
+
ru: string;
|
|
134
|
+
};
|
|
135
|
+
'api.entity_arg': {
|
|
136
|
+
code: "invalid_query";
|
|
137
|
+
ru: string;
|
|
138
|
+
};
|
|
139
|
+
'api.slot_method': {
|
|
140
|
+
code: "invalid_query";
|
|
141
|
+
ru: string;
|
|
142
|
+
};
|
|
143
|
+
'api.cache_ttl': {
|
|
144
|
+
code: "invalid_query";
|
|
145
|
+
ru: string;
|
|
146
|
+
};
|
|
147
|
+
'api.tx_only': {
|
|
148
|
+
code: "tx_required";
|
|
149
|
+
ru: string;
|
|
150
|
+
};
|
|
151
|
+
'api.id_of_no_tenant': {
|
|
152
|
+
code: "no_session";
|
|
153
|
+
ru: string;
|
|
154
|
+
};
|
|
155
|
+
'api.as_in_tx': {
|
|
156
|
+
code: "invalid_query";
|
|
157
|
+
ru: string;
|
|
158
|
+
};
|
|
159
|
+
'api.as_no_session': {
|
|
160
|
+
code: "no_session";
|
|
161
|
+
ru: string;
|
|
162
|
+
};
|
|
163
|
+
'api.as_context_changing': {
|
|
164
|
+
code: "no_session";
|
|
165
|
+
ru: string;
|
|
166
|
+
hint: string;
|
|
167
|
+
};
|
|
168
|
+
'api.begin_arg': {
|
|
169
|
+
code: "invalid_query";
|
|
170
|
+
ru: string;
|
|
171
|
+
hint: string;
|
|
172
|
+
};
|
|
173
|
+
'api.nested_begin': {
|
|
174
|
+
code: "invalid_query";
|
|
175
|
+
ru: string;
|
|
176
|
+
};
|
|
177
|
+
'api.load_in_tx': {
|
|
178
|
+
code: "invalid_query";
|
|
179
|
+
ru: string;
|
|
180
|
+
};
|
|
181
|
+
'api.connect_no_dsn': {
|
|
182
|
+
code: "invalid_data";
|
|
183
|
+
ru: string;
|
|
184
|
+
hint: string;
|
|
185
|
+
};
|
|
186
|
+
'api.connect_empty_credential': {
|
|
187
|
+
code: "invalid_data";
|
|
188
|
+
ru: string;
|
|
189
|
+
hint: string;
|
|
190
|
+
};
|
|
191
|
+
'api.connect_admin_type': {
|
|
192
|
+
code: "invalid_data";
|
|
193
|
+
ru: string;
|
|
194
|
+
hint: string;
|
|
195
|
+
};
|
|
196
|
+
'api.connect_admin_role': {
|
|
197
|
+
code: "admin_required";
|
|
198
|
+
ru: string;
|
|
199
|
+
hint: string;
|
|
200
|
+
};
|
|
201
|
+
'api.connect_no_owner': {
|
|
202
|
+
code: "invalid_data";
|
|
203
|
+
ru: string;
|
|
204
|
+
hint: string;
|
|
205
|
+
};
|
|
206
|
+
'api.connect_bypass_rls': {
|
|
207
|
+
code: "bypass_rls";
|
|
208
|
+
ru: string;
|
|
209
|
+
};
|
|
210
|
+
'api.admin_connection': {
|
|
211
|
+
code: "bypass_rls";
|
|
212
|
+
ru: string;
|
|
213
|
+
};
|
|
214
|
+
'api.connect_no_schema': {
|
|
215
|
+
code: "invalid_data";
|
|
216
|
+
ru: string;
|
|
217
|
+
hint: string;
|
|
218
|
+
};
|
|
219
|
+
'api.schema_older': {
|
|
220
|
+
code: "invalid_data";
|
|
221
|
+
ru: string;
|
|
222
|
+
};
|
|
223
|
+
'api.schema_newer': {
|
|
224
|
+
code: "invalid_data";
|
|
225
|
+
ru: string;
|
|
226
|
+
};
|
|
227
|
+
'api.create_tenant_admin': {
|
|
228
|
+
code: "invalid_query";
|
|
229
|
+
ru: string;
|
|
230
|
+
hint: string;
|
|
231
|
+
};
|
|
232
|
+
'api.versions_terminal': {
|
|
233
|
+
code: "invalid_query";
|
|
234
|
+
ru: string;
|
|
235
|
+
hint: string;
|
|
236
|
+
};
|
|
237
|
+
};
|