@aristid/leav-types 0.0.7-ffaf19e → 1.0.0-e073ed8e
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/apps/core/config/default.d.ts +12 -0
- package/apps/core/config/development.d.ts +1 -0
- package/apps/core/config/test.d.ts +1 -0
- package/apps/core/src/__tests__/e2e/api/e2eUtils.d.ts +1 -0
- package/apps/core/src/__tests__/e2e/api/getConditionPart/getConditionPart.test.d.ts +1 -0
- package/apps/core/src/__tests__/e2e/api/globalSetup.d.ts +6 -1
- package/apps/core/src/__tests__/e2e/api/joinLibraries/joinLibraries.test.d.ts +1 -0
- package/apps/core/src/__tests__/integration/globalSetup.d.ts +1 -0
- package/apps/core/src/__tests__/integration/globalSetupHook.d.ts +1 -0
- package/apps/core/src/__tests__/integration/infra/attributeAdvancedLinkRepo.test.d.ts +1 -0
- package/apps/core/src/__tests__/integration/infra/attributeAdvancedRepo.test.d.ts +1 -0
- package/apps/core/src/__tests__/integration/infra/attributeSimpleLinkRepo.test.d.ts +1 -0
- package/apps/core/src/__tests__/integration/infra/attributeSimpleRepo.test.d.ts +1 -0
- package/apps/core/src/__tests__/integration/infra/attributeTreeRepo.test.d.ts +1 -0
- package/apps/core/src/__tests__/integration/infra/integrationTestRepoUtils.d.ts +7 -0
- package/apps/core/src/__tests__/integration/infra/recordRepo.test.d.ts +1 -0
- package/apps/core/src/__tests__/integration/infra/treeRepo.test.d.ts +1 -0
- package/apps/core/src/__tests__/integration/teardown.d.ts +1 -0
- package/apps/core/src/__tests__/mockers/amqp.d.ts +1 -1
- package/apps/core/src/__tests__/mockers/logger.d.ts +4 -4
- package/apps/core/src/_types/config.d.ts +34 -1
- package/apps/core/src/_types/dbProfiler.d.ts +20 -1
- package/apps/core/src/_types/errors.d.ts +1 -0
- package/apps/core/src/_types/events.d.ts +45 -0
- package/apps/core/src/_types/forms.d.ts +4 -0
- package/apps/core/src/_types/library.d.ts +7 -0
- package/apps/core/src/_types/permissions.d.ts +3 -1
- package/apps/core/src/_types/queryInfos.d.ts +5 -0
- package/apps/core/src/_types/record.d.ts +4 -4
- package/apps/core/src/_types/tree.d.ts +1 -1
- package/apps/core/src/_types/value.d.ts +64 -5
- package/apps/core/src/_types/views.d.ts +1 -1
- package/apps/core/src/app/application/applicationApp.d.ts +3 -7
- package/apps/core/src/app/auth/authApp.d.ts +4 -5
- package/apps/core/src/app/core/actionListApp.d.ts +2 -4
- package/apps/core/src/app/core/apiKeyApp/apiKeyApp.d.ts +2 -4
- package/apps/core/src/app/core/attributeApp/attributeApp.d.ts +2 -5
- package/apps/core/src/app/core/coreApp.d.ts +2 -4
- package/apps/core/src/app/core/exportApp.d.ts +2 -4
- package/apps/core/src/app/core/filesManagerApp.d.ts +3 -5
- package/apps/core/src/app/core/formApp/formApp.d.ts +6 -5
- package/apps/core/src/app/core/globalSettingsApp.d.ts +3 -6
- package/apps/core/src/app/core/importApp.d.ts +2 -4
- package/apps/core/src/app/core/libraryApp/libraryApp.d.ts +2 -5
- package/apps/core/src/app/core/logApp.d.ts +2 -4
- package/apps/core/src/app/core/permissionApp/permissionApp.d.ts +2 -4
- package/apps/core/src/app/core/pluginsApp.d.ts +2 -3
- package/apps/core/src/app/core/recordApp/recordApp.d.ts +2 -5
- package/apps/core/src/app/core/tasksManagerApp.d.ts +2 -3
- package/apps/core/src/app/core/treeApp/treeApp.d.ts +5 -6
- package/apps/core/src/app/core/userDataApp.d.ts +2 -4
- package/apps/core/src/app/core/valueApp.d.ts +2 -4
- package/apps/core/src/app/core/versionProfileApp/versionProfileApp.d.ts +2 -4
- package/apps/core/src/app/core/viewApp.d.ts +2 -4
- package/apps/core/src/app/endpoint/endpointApp.d.ts +3 -8
- package/apps/core/src/app/graphql/graphqlApp.d.ts +8 -0
- package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.d.ts +11 -0
- package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.spec.d.ts +1 -0
- package/apps/core/src/domain/attribute/helpers/index.d.ts +1 -0
- package/apps/core/src/domain/eventsManager/eventsManagerDomain.d.ts +3 -2
- package/apps/core/src/domain/filesManager/helpers/handleFileSystemEvent/handleMoveEvent.d.ts +1 -1
- package/apps/core/src/domain/import/importDomain.d.ts +12 -2
- package/apps/core/src/domain/indexationManager/indexationManagerDomain.d.ts +4 -2
- package/apps/core/src/domain/log/logDomain.d.ts +3 -1
- package/apps/core/src/domain/permission/_types.d.ts +10 -2
- package/apps/core/src/domain/permission/helpers/globalPermission.d.ts +3 -12
- package/apps/core/src/domain/permission/helpers/permissionByUserGroups.d.ts +7 -7
- package/apps/core/src/domain/permission/helpers/treeBasedPermissions.d.ts +0 -4
- package/apps/core/src/domain/permission/permissionDomain.d.ts +1 -0
- package/apps/core/src/domain/permission/recordPermissionDomain.d.ts +4 -1
- package/apps/core/src/domain/permission/treeNodePermissionDomain.d.ts +2 -2
- package/apps/core/src/domain/record/_types.d.ts +1 -0
- package/apps/core/src/domain/record/helpers/createRecord.d.ts +22 -0
- package/apps/core/src/domain/record/helpers/deleteRecord.d.ts +19 -0
- package/apps/core/src/domain/record/helpers/getAccessPermissionFilters.d.ts +1 -1
- package/apps/core/src/domain/record/helpers/index.d.ts +2 -0
- package/apps/core/src/domain/record/recordDomain.d.ts +31 -4
- package/apps/core/src/domain/tree/treeDomain.d.ts +2 -2
- package/apps/core/src/domain/value/helpers/prepareValue.d.ts +3 -3
- package/apps/core/src/domain/value/helpers/saveOneValue.d.ts +2 -2
- package/apps/core/src/domain/value/helpers/validateValue.d.ts +3 -3
- package/apps/core/src/domain/value/valueDomain.d.ts +10 -4
- package/apps/core/src/infra/attributeTypes/attributeAdvancedLinkRepo.d.ts +5 -2
- package/apps/core/src/infra/attributeTypes/attributeAdvancedRepo.d.ts +3 -1
- package/apps/core/src/infra/attributeTypes/attributeSimpleLinkRepo.d.ts +5 -2
- package/apps/core/src/infra/attributeTypes/attributeSimpleRepo.d.ts +3 -1
- package/apps/core/src/infra/attributeTypes/attributeTreeRepo.d.ts +3 -1
- package/apps/core/src/infra/attributeTypes/attributeTypesRepo.d.ts +52 -22
- package/apps/core/src/infra/db/migrations/011-moveSkeletonApptoAppStudio.d.ts +7 -0
- package/apps/core/src/infra/record/helpers/getSearchVariableName.d.ts +1 -1
- package/apps/core/src/infra/record/recordRepo.d.ts +9 -0
- package/apps/core/src/infra/tree/treeRepo.d.ts +3 -2
- package/apps/core/src/infra/value/valueRepo.d.ts +10 -8
- package/apps/core/src/interface/server.d.ts +7 -0
- package/apps/core/src/utils/dataloader.d.ts +9 -0
- package/apps/core/src/utils/dataloader.spec.d.ts +1 -0
- package/apps/core/src/utils/helpers/getSystemQueryContext.d.ts +8 -0
- package/apps/core/src/utils/index.d.ts +1 -0
- package/package.json +6 -3
|
@@ -25,6 +25,14 @@ export declare namespace db {
|
|
|
25
25
|
export declare namespace diskCache {
|
|
26
26
|
let directory: string;
|
|
27
27
|
}
|
|
28
|
+
export declare namespace dataLoaders {
|
|
29
|
+
namespace valueRepo {
|
|
30
|
+
namespace getValues {
|
|
31
|
+
let enableCache: string | boolean;
|
|
32
|
+
let useBatch: string | boolean;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
28
36
|
export declare namespace auth {
|
|
29
37
|
let scheme: string;
|
|
30
38
|
let key: string;
|
|
@@ -43,6 +51,7 @@ export declare namespace auth {
|
|
|
43
51
|
let postLogoutRedirectUri: string;
|
|
44
52
|
let skipLogoutConfirmationPage: string | boolean;
|
|
45
53
|
let idTokenUserClaim: string;
|
|
54
|
+
let enableAutoProvisioning: string | boolean;
|
|
46
55
|
}
|
|
47
56
|
let testApiKey: string;
|
|
48
57
|
}
|
|
@@ -74,6 +83,8 @@ export declare namespace logs {
|
|
|
74
83
|
export declare namespace permissions {
|
|
75
84
|
let _default_1: boolean;
|
|
76
85
|
export { _default_1 as default };
|
|
86
|
+
let enableCache_1: string | boolean;
|
|
87
|
+
export { enableCache_1 as enableCache };
|
|
77
88
|
}
|
|
78
89
|
export declare namespace amqp {
|
|
79
90
|
namespace connOpt {
|
|
@@ -169,6 +180,7 @@ export declare namespace _import {
|
|
|
169
180
|
export let sizeLimit: string | number;
|
|
170
181
|
export let groupData: string | number;
|
|
171
182
|
export let maxStackedElements: string | number;
|
|
183
|
+
export let delayTaskExecMs: string | number;
|
|
172
184
|
}
|
|
173
185
|
export declare namespace preview {
|
|
174
186
|
let directory_3: string;
|
|
@@ -20,6 +20,7 @@ export declare function gqlSaveAttribute(params: {
|
|
|
20
20
|
multipleValues?: boolean;
|
|
21
21
|
reverseLink?: string;
|
|
22
22
|
actionsList?: ActionsListConfig;
|
|
23
|
+
required?: boolean;
|
|
23
24
|
}): Promise<any>;
|
|
24
25
|
export declare function gqlSaveTree(id: string, label: string, libraries: string[]): Promise<any>;
|
|
25
26
|
export declare function gqlCreateRecord(library: string): Promise<string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { AwilixContainer } from 'awilix';
|
|
1
2
|
import { IConfig } from '../../../_types/config';
|
|
2
|
-
|
|
3
|
+
import { IDbUtils } from 'infra/db/dbUtils';
|
|
4
|
+
export declare const init: (conf: IConfig) => Promise<{
|
|
5
|
+
coreContainer: AwilixContainer;
|
|
6
|
+
dbUtils: IDbUtils;
|
|
7
|
+
}>;
|
|
3
8
|
export declare function setup(): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function setup(): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (): Promise<any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ILibraryRepo } from 'infra/library/libraryRepo';
|
|
2
|
+
import { IRecordRepo } from 'infra/record/recordRepo';
|
|
3
|
+
import { ITreeRepo } from 'infra/tree/treeRepo';
|
|
4
|
+
export declare const getCoreDep: <T>(path: any) => T;
|
|
5
|
+
export declare const getLibraryRepo: () => ILibraryRepo;
|
|
6
|
+
export declare const getRecordRepo: () => IRecordRepo;
|
|
7
|
+
export declare const getTreeRepo: () => ITreeRepo;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (): Promise<void>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
|
-
info: jest.Mock<any, any
|
|
3
|
-
warn: jest.Mock<any, any
|
|
4
|
-
error: jest.Mock<any, any
|
|
5
|
-
debug: jest.Mock<any, any
|
|
2
|
+
info: jest.Mock<any, any>;
|
|
3
|
+
warn: jest.Mock<any, any>;
|
|
4
|
+
error: jest.Mock<any, any>;
|
|
5
|
+
debug: jest.Mock<any, any>;
|
|
6
6
|
};
|
|
7
7
|
export default _default;
|
|
@@ -5,6 +5,7 @@ export interface IConfig {
|
|
|
5
5
|
server: IServer;
|
|
6
6
|
db: IDb;
|
|
7
7
|
diskCache: IDiskCache;
|
|
8
|
+
dataLoaders: IDataLoaders;
|
|
8
9
|
auth: IAuth;
|
|
9
10
|
mailer: IMailer;
|
|
10
11
|
lang: ILang;
|
|
@@ -36,7 +37,8 @@ export declare enum CoreMode {
|
|
|
36
37
|
FILES_MANAGER = "filesManager",
|
|
37
38
|
INDEXATION_MANAGER = "indexationManager",
|
|
38
39
|
TASKS_MANAGER_MASTER = "tasksManager:master",
|
|
39
|
-
TASKS_MANAGER_WORKER = "tasksManager:worker"
|
|
40
|
+
TASKS_MANAGER_WORKER = "tasksManager:worker",
|
|
41
|
+
CLI = "cli"
|
|
40
42
|
}
|
|
41
43
|
export interface IServer {
|
|
42
44
|
host: string;
|
|
@@ -84,6 +86,7 @@ export interface IAuth {
|
|
|
84
86
|
postLogoutRedirectUri: string;
|
|
85
87
|
skipLogoutConfirmationPage?: boolean;
|
|
86
88
|
idTokenUserClaim: string;
|
|
89
|
+
enableAutoProvisioning: boolean;
|
|
87
90
|
};
|
|
88
91
|
testApiKey?: string;
|
|
89
92
|
}
|
|
@@ -107,6 +110,7 @@ export interface ILogs {
|
|
|
107
110
|
}
|
|
108
111
|
export interface IPermissions {
|
|
109
112
|
default: boolean;
|
|
113
|
+
enableCache: boolean;
|
|
110
114
|
}
|
|
111
115
|
export interface IAmqp {
|
|
112
116
|
connOpt: Options.Connect;
|
|
@@ -175,6 +179,35 @@ export interface IImport {
|
|
|
175
179
|
sizeLimit: number;
|
|
176
180
|
groupData: number;
|
|
177
181
|
maxStackedElements: number;
|
|
182
|
+
/**
|
|
183
|
+
* Hack for leav deploy on nfs which is asynchronous for file write (by default)
|
|
184
|
+
* Wait this delay before submitting import data job
|
|
185
|
+
*/
|
|
186
|
+
delayTaskExecMs: number;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Data loaders configuration for performances
|
|
190
|
+
*/
|
|
191
|
+
export interface IDataLoaders {
|
|
192
|
+
valueRepo: {
|
|
193
|
+
getValues: {
|
|
194
|
+
/**
|
|
195
|
+
* @default false
|
|
196
|
+
*
|
|
197
|
+
* Enable cache inside data loaders in the query context
|
|
198
|
+
* Before enable, ensure that it has no side effects, for instance on saveValue/deleteValue mutations
|
|
199
|
+
*/
|
|
200
|
+
enableCache: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* @default true
|
|
203
|
+
*
|
|
204
|
+
* Enable: do batch arangodb query
|
|
205
|
+
* Disable: do one arangodb query per value, as before data loader use. For rollback if issue with batch query
|
|
206
|
+
* Temporary, to be removed in future
|
|
207
|
+
*/
|
|
208
|
+
useBatch: boolean;
|
|
209
|
+
};
|
|
210
|
+
};
|
|
178
211
|
}
|
|
179
212
|
export interface IDiskCache {
|
|
180
213
|
directory: string;
|
|
@@ -2,7 +2,26 @@ import { AqlQuery } from 'arangojs/aql';
|
|
|
2
2
|
export interface IDbProfilerQuery {
|
|
3
3
|
count: number;
|
|
4
4
|
query: string | AqlQuery;
|
|
5
|
-
callers:
|
|
5
|
+
callers: Record<string, {
|
|
6
|
+
/**
|
|
7
|
+
* Stacktrace of caller
|
|
8
|
+
*/
|
|
9
|
+
stack: string;
|
|
10
|
+
count: number;
|
|
11
|
+
/**
|
|
12
|
+
* Stats for each call for that query
|
|
13
|
+
*/
|
|
14
|
+
stats: Array<{
|
|
15
|
+
/**
|
|
16
|
+
* Arangodb query execution time in ms
|
|
17
|
+
*/
|
|
18
|
+
executionTimeMs: number | null;
|
|
19
|
+
/**
|
|
20
|
+
* Time spent in nodejs to process the query in ms
|
|
21
|
+
*/
|
|
22
|
+
nodejsTimeMs: number;
|
|
23
|
+
}>;
|
|
24
|
+
}>;
|
|
6
25
|
}
|
|
7
26
|
export interface IDbProfiler {
|
|
8
27
|
totalCount: number;
|
|
@@ -63,6 +63,7 @@ export declare enum Errors {
|
|
|
63
63
|
PREVIEWS_SETTINGS_NOT_ALLOWED = "PREVIEWS_SETTINGS_NOT_ALLOWED",
|
|
64
64
|
PROTECTED_ENDPOINT = "PROTECTED_ENDPOINT",
|
|
65
65
|
READONLY_ATTRIBUTE = "READONLY_ATTRIBUTE",
|
|
66
|
+
RECORD_ACTIVATION_FAILED = "RECORD_ACTIVATION_FAILED",
|
|
66
67
|
REQUIRED_ATTRIBUTE = "REQUIRED_ATTRIBUTE",
|
|
67
68
|
REQUIRED_ATTRIBUTE_FORMAT = "REQUIRED_ATTRIBUTE_FORMAT",
|
|
68
69
|
REQUIRED_ATTRIBUTE_LABEL = "REQUIRED_ATTRIBUTE_LABEL",
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EventAction, IDbPayload } from '@leav/utils';
|
|
2
|
+
import { IApiKey } from './apiKey';
|
|
3
|
+
import { IApplication } from './application';
|
|
4
|
+
import { IAttribute } from './attribute';
|
|
5
|
+
import { IGlobalSettings } from './globalSettings';
|
|
6
|
+
import { ILibraryDbEvent } from './library';
|
|
7
|
+
import { IRecord } from './record';
|
|
8
|
+
import { IValue } from './value';
|
|
9
|
+
import { IVersionProfile } from './versionProfile';
|
|
10
|
+
import { IPermission } from './permissions';
|
|
11
|
+
import { ITree } from './tree';
|
|
12
|
+
/**
|
|
13
|
+
* Maybe move all DBPayloadData types in @leav/utils type to allow event consumers outside core to use them
|
|
14
|
+
* without having to redeclare them. For now before and after are any in @leav/utils
|
|
15
|
+
*/
|
|
16
|
+
export interface IDbPayloadInternal<DBPayloadAction extends EventAction> extends IDbPayload {
|
|
17
|
+
action: DBPayloadAction;
|
|
18
|
+
before?: IDBPayloadData<DBPayloadAction>;
|
|
19
|
+
after?: IDBPayloadData<DBPayloadAction>;
|
|
20
|
+
}
|
|
21
|
+
interface IDBPayloadDataMap {
|
|
22
|
+
[EventAction.VALUE_SAVE]: IValue;
|
|
23
|
+
[EventAction.VALUE_DELETE]: IValue;
|
|
24
|
+
[EventAction.ATTRIBUTE_SAVE]: IAttribute;
|
|
25
|
+
[EventAction.ATTRIBUTE_DELETE]: IAttribute;
|
|
26
|
+
[EventAction.RECORD_SAVE]: IRecord;
|
|
27
|
+
[EventAction.RECORD_DELETE]: IRecord;
|
|
28
|
+
[EventAction.API_KEY_SAVE]: IApiKey;
|
|
29
|
+
[EventAction.API_KEY_DELETE]: IApiKey;
|
|
30
|
+
[EventAction.APP_SAVE]: IApplication;
|
|
31
|
+
[EventAction.APP_DELETE]: IApplication;
|
|
32
|
+
[EventAction.GLOBAL_SETTINGS_SAVE]: IGlobalSettings;
|
|
33
|
+
[EventAction.LIBRARY_SAVE]: ILibraryDbEvent;
|
|
34
|
+
[EventAction.LIBRARY_DELETE]: ILibraryDbEvent;
|
|
35
|
+
[EventAction.VERSION_PROFILE_SAVE]: IVersionProfile;
|
|
36
|
+
[EventAction.VERSION_PROFILE_DELETE]: IVersionProfile;
|
|
37
|
+
[EventAction.TREE_ADD_ELEMENT]: string;
|
|
38
|
+
[EventAction.TREE_DELETE_ELEMENT]: string;
|
|
39
|
+
[EventAction.TREE_MOVE_ELEMENT]: string;
|
|
40
|
+
[EventAction.TREE_SAVE]: ITree;
|
|
41
|
+
[EventAction.TREE_DELETE]: ITree;
|
|
42
|
+
[EventAction.PERMISSION_SAVE]: IPermission;
|
|
43
|
+
}
|
|
44
|
+
type IDBPayloadData<DBPayloadAction extends EventAction> = DBPayloadAction extends keyof IDBPayloadDataMap ? IDBPayloadDataMap[DBPayloadAction] : never;
|
|
45
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IAttribute } from './attribute';
|
|
1
2
|
import { IKeyValue } from './shared';
|
|
2
3
|
import { IValue } from './value';
|
|
3
4
|
export interface IForm extends ICoreEntity {
|
|
@@ -54,3 +55,6 @@ export type IFormElementWithValuesAndChildren = IFormElementWithValues & {
|
|
|
54
55
|
export interface IFormFilterOptions extends ICoreEntityFilterOptions {
|
|
55
56
|
library?: string;
|
|
56
57
|
}
|
|
58
|
+
export interface IFormElementJoinLibraryContext {
|
|
59
|
+
mandatoryAttribute: IAttribute;
|
|
60
|
+
}
|
|
@@ -35,6 +35,13 @@ export interface ILibrary extends ICoreEntity {
|
|
|
35
35
|
previewsSettings?: ILibraryPreviewsSettings[];
|
|
36
36
|
settings?: IKeyValue<any>;
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Library as stored in the DB, without embedded attributes
|
|
40
|
+
*/
|
|
41
|
+
export interface ILibraryDbEvent extends Omit<ILibrary, 'attributes' | 'fullTextAttributes'> {
|
|
42
|
+
attributes?: string[];
|
|
43
|
+
fullTextAttributes?: string[];
|
|
44
|
+
}
|
|
38
45
|
export interface ILibraryFilterOptions extends ICoreEntityFilterOptions {
|
|
39
46
|
system?: boolean;
|
|
40
47
|
}
|
|
@@ -76,7 +76,9 @@ export declare enum AdminPermissionsActions {
|
|
|
76
76
|
CREATE_API_KEY = "admin_create_api_key",
|
|
77
77
|
EDIT_API_KEY = "admin_edit_api_key",
|
|
78
78
|
DELETE_API_KEY = "admin_delete_api_key",
|
|
79
|
-
EDIT_GLOBAL_SETTINGS = "admin_edit_global_settings"
|
|
79
|
+
EDIT_GLOBAL_SETTINGS = "admin_edit_global_settings",
|
|
80
|
+
ACCESS_LOGS = "admin_access_logs",
|
|
81
|
+
IMPORT_CONFIG_CLEAR_DATABASE = "admin_import_config_clear_database"
|
|
80
82
|
}
|
|
81
83
|
export type PermissionsActions = LibraryPermissionsActions | RecordPermissionsActions | RecordAttributePermissionsActions | AdminPermissionsActions | AttributePermissionsActions | TreePermissionsActions | TreeNodePermissionsActions | ApplicationPermissionsActions;
|
|
82
84
|
export interface ILabeledPermissionsAction {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import DataLoader from 'dataloader';
|
|
1
2
|
import type LeavError from 'errors/LeavError';
|
|
2
3
|
import { IDbProfiler } from './dbProfiler';
|
|
3
4
|
import { IValueVersion } from './value';
|
|
@@ -13,4 +14,8 @@ export interface IQueryInfos {
|
|
|
13
14
|
dbProfiler?: IDbProfiler;
|
|
14
15
|
trigger?: string;
|
|
15
16
|
errors?: Array<LeavError<unknown>>;
|
|
17
|
+
/**
|
|
18
|
+
* For request duration store dataloader on demand with getOrCreateDataLoaderInCtx
|
|
19
|
+
*/
|
|
20
|
+
dataLoaders?: Record<string, DataLoader<unknown, unknown>>;
|
|
16
21
|
}
|
|
@@ -75,10 +75,10 @@ export interface IQueryField {
|
|
|
75
75
|
export interface IRecordIdentity {
|
|
76
76
|
id: string;
|
|
77
77
|
library: ILibrary;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
getLabel?: () => Promise<string | null>;
|
|
79
|
+
getSubLabel?: () => Promise<string | null>;
|
|
80
|
+
getColor?: () => Promise<string | null>;
|
|
81
|
+
getPreview?: () => Promise<IPreview | null>;
|
|
82
82
|
}
|
|
83
83
|
export interface IRecordIdentityConf {
|
|
84
84
|
label?: string;
|
|
@@ -38,7 +38,7 @@ export type ITreeNodeLight = Pick<ITreeNode, 'id' | 'order'>;
|
|
|
38
38
|
export interface ITreeNodeWithTreeId extends ITreeNode {
|
|
39
39
|
treeId: string;
|
|
40
40
|
}
|
|
41
|
-
export type
|
|
41
|
+
export type TreePath = ITreeNode[];
|
|
42
42
|
export declare enum TreeBehavior {
|
|
43
43
|
STANDARD = "standard",
|
|
44
44
|
FILES = "files"
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AnyPrimitive, Override } from '@leav/utils';
|
|
2
2
|
import { IDbEdge } from 'infra/db/_types';
|
|
3
3
|
import { IRecord } from './record';
|
|
4
|
-
import { ITreeNode,
|
|
4
|
+
import { ITreeNode, TreePath } from './tree';
|
|
5
5
|
import { EMPTY_VALUE } from 'infra/value/valueRepo';
|
|
6
|
+
import { AttributeTypes } from './attribute';
|
|
6
7
|
export type IValueFromGql = Override<Omit<IValue, 'version'>, {
|
|
7
8
|
value: IValue['payload'];
|
|
8
9
|
metadata: Array<{
|
|
@@ -30,8 +31,12 @@ export interface IValueMetadata {
|
|
|
30
31
|
[fieldName: string]: IStandardValue | AnyPrimitive;
|
|
31
32
|
}
|
|
32
33
|
export type EmptyValue = typeof EMPTY_VALUE;
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
interface ICommonGenericSaveValue {
|
|
35
|
+
/**
|
|
36
|
+
* The id of the edge for advanced, advanced link or tree values
|
|
37
|
+
* In case of advanced reverse link from simple link, this is the id of the linked record
|
|
38
|
+
*/
|
|
39
|
+
id_value?: string | null;
|
|
35
40
|
attribute?: string;
|
|
36
41
|
created_at?: number;
|
|
37
42
|
modified_at?: number;
|
|
@@ -39,21 +44,60 @@ export interface IGenericValue {
|
|
|
39
44
|
modified_by?: string;
|
|
40
45
|
version?: IValueVersion;
|
|
41
46
|
metadata?: IValueMetadata;
|
|
47
|
+
}
|
|
48
|
+
export interface IGenericValue extends ICommonGenericSaveValue {
|
|
42
49
|
isInherited?: boolean;
|
|
43
50
|
isCalculated?: boolean;
|
|
44
51
|
}
|
|
45
52
|
export interface IStandardValue extends IGenericValue {
|
|
53
|
+
/**
|
|
54
|
+
* Computed value after get actions on attribute are done
|
|
55
|
+
* TODO remove that any when possible
|
|
56
|
+
* TODO remove optional when possible
|
|
57
|
+
*/
|
|
46
58
|
payload?: any | EmptyValue;
|
|
47
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Raw value from the database, before any computation
|
|
61
|
+
* TODO, remove that any when possible
|
|
62
|
+
*/
|
|
63
|
+
raw_payload?: any;
|
|
48
64
|
}
|
|
49
65
|
export interface ILinkValue extends IGenericValue {
|
|
66
|
+
/**
|
|
67
|
+
* Linked record
|
|
68
|
+
* TODO remove optional when possible
|
|
69
|
+
*/
|
|
50
70
|
payload?: IRecord;
|
|
51
71
|
}
|
|
52
72
|
export interface ITreeValue extends IGenericValue {
|
|
73
|
+
/**
|
|
74
|
+
* Linked tree node
|
|
75
|
+
* TODO remove optional when possible
|
|
76
|
+
*/
|
|
53
77
|
payload?: ITreeNode;
|
|
54
78
|
treeId: string;
|
|
55
79
|
}
|
|
56
80
|
export type IValue = IStandardValue | ILinkValue | ITreeValue;
|
|
81
|
+
type IGenericSaveValue = ICommonGenericSaveValue;
|
|
82
|
+
export interface ISaveStandardValue extends IGenericSaveValue {
|
|
83
|
+
/**
|
|
84
|
+
* Any base type value to save
|
|
85
|
+
*/
|
|
86
|
+
payload: number | string | boolean | EmptyValue | null;
|
|
87
|
+
}
|
|
88
|
+
export interface ISaveLinkValue extends IGenericSaveValue {
|
|
89
|
+
/**
|
|
90
|
+
* Record id to link
|
|
91
|
+
*/
|
|
92
|
+
payload: string | null;
|
|
93
|
+
}
|
|
94
|
+
export interface ISaveTreeValue extends IGenericSaveValue {
|
|
95
|
+
/**
|
|
96
|
+
* Tree node id to link
|
|
97
|
+
*/
|
|
98
|
+
payload: string | null;
|
|
99
|
+
}
|
|
100
|
+
export type ISaveValue = ISaveStandardValue | ISaveLinkValue | ISaveTreeValue;
|
|
57
101
|
export interface IDateRangeValue<T = string | number> {
|
|
58
102
|
from: T;
|
|
59
103
|
to: T;
|
|
@@ -67,7 +111,7 @@ export interface IValuesOptions {
|
|
|
67
111
|
export interface IFindValueTree {
|
|
68
112
|
name: string;
|
|
69
113
|
currentIndex: number;
|
|
70
|
-
elements:
|
|
114
|
+
elements: TreePath;
|
|
71
115
|
}
|
|
72
116
|
export interface IValueEdge extends IDbEdge {
|
|
73
117
|
attribute: string;
|
|
@@ -78,3 +122,18 @@ export interface IValueEdge extends IDbEdge {
|
|
|
78
122
|
version?: IDbValueVersion;
|
|
79
123
|
metadata?: IValueMetadata;
|
|
80
124
|
}
|
|
125
|
+
export interface IValueByAttributeType {
|
|
126
|
+
[AttributeTypes.SIMPLE]: IStandardValue;
|
|
127
|
+
[AttributeTypes.SIMPLE_LINK]: ILinkValue;
|
|
128
|
+
[AttributeTypes.ADVANCED]: IStandardValue;
|
|
129
|
+
[AttributeTypes.ADVANCED_LINK]: ILinkValue;
|
|
130
|
+
[AttributeTypes.TREE]: ITreeValue;
|
|
131
|
+
}
|
|
132
|
+
export interface ISaveValueByAttributeType {
|
|
133
|
+
[AttributeTypes.SIMPLE]: ISaveStandardValue;
|
|
134
|
+
[AttributeTypes.SIMPLE_LINK]: ISaveLinkValue;
|
|
135
|
+
[AttributeTypes.ADVANCED]: ISaveStandardValue;
|
|
136
|
+
[AttributeTypes.ADVANCED_LINK]: ISaveLinkValue;
|
|
137
|
+
[AttributeTypes.TREE]: ISaveTreeValue;
|
|
138
|
+
}
|
|
139
|
+
export {};
|
|
@@ -29,7 +29,7 @@ export interface IView extends ICoreEntity {
|
|
|
29
29
|
filters?: IRecordFilterLight[];
|
|
30
30
|
sort?: IRecordSortLight[];
|
|
31
31
|
valuesVersions?: IViewValuesVersion;
|
|
32
|
-
attributes
|
|
32
|
+
attributes: string[];
|
|
33
33
|
}
|
|
34
34
|
export interface IViewValuesVersionForGraphql {
|
|
35
35
|
treeId: string;
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import { ICoreSubscriptionsHelpersApp } from 'app/core/helpers/subscriptions';
|
|
2
|
-
import { IGraphqlApp } from 'app/graphql/graphqlApp';
|
|
2
|
+
import { IGraphqlAppModule, IGraphqlApp } from 'app/graphql/graphqlApp';
|
|
3
3
|
import { InitQueryContextFunc } from 'app/helpers/initQueryContext';
|
|
4
4
|
import { IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
|
|
5
5
|
import { IPermissionDomain } from 'domain/permission/permissionDomain';
|
|
6
6
|
import { IRecordDomain } from 'domain/record/recordDomain';
|
|
7
|
-
import { Express } from 'express';
|
|
8
7
|
import { IUtils } from 'utils/utils';
|
|
9
8
|
import winston from 'winston';
|
|
10
|
-
import { IAppGraphQLSchema } from '_types/graphql';
|
|
11
9
|
import { IApplicationDomain } from '../../domain/application/applicationDomain';
|
|
12
10
|
import { ValidateRequestTokenFunc } from '../helpers/validateRequestToken';
|
|
13
11
|
import { IAuthApp } from '../auth/authApp';
|
|
14
12
|
import { IGlobalSettingsDomain } from '../../domain/globalSettings/globalSettingsDomain';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
getGraphQLSchema(): Promise<IAppGraphQLSchema>;
|
|
18
|
-
}
|
|
13
|
+
import { IServerRouteAppModule } from 'interface/server';
|
|
14
|
+
export type IApplicationApp = IGraphqlAppModule & IServerRouteAppModule;
|
|
19
15
|
export interface IApplicationAppDeps {
|
|
20
16
|
'core.app.graphql': IGraphqlApp;
|
|
21
17
|
'core.app.auth': IAuthApp;
|
|
@@ -2,9 +2,8 @@ import { IApiKeyDomain } from 'domain/apiKey/apiKeyDomain';
|
|
|
2
2
|
import { IRecordDomain } from 'domain/record/recordDomain';
|
|
3
3
|
import { IUserDomain } from 'domain/user/userDomain';
|
|
4
4
|
import { IValueDomain } from 'domain/value/valueDomain';
|
|
5
|
-
import {
|
|
5
|
+
import { Response } from 'express';
|
|
6
6
|
import { IConfig } from '_types/config';
|
|
7
|
-
import { IAppGraphQLSchema } from '_types/graphql';
|
|
8
7
|
import { ICachesService } from '../../infra/cache/cacheService';
|
|
9
8
|
import { ITokenUserData } from '../../_types/auth';
|
|
10
9
|
import { IRequestWithContext } from '../../_types/express';
|
|
@@ -14,14 +13,14 @@ import { InitQueryContextFunc } from '../helpers/initQueryContext';
|
|
|
14
13
|
import { IConvertOIDCIdentifier } from '../helpers/convertOIDCIdentifier';
|
|
15
14
|
import { IncomingHttpHeaders } from 'http';
|
|
16
15
|
import { IRecordRepo } from '../../infra/record/recordRepo';
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
|
|
17
|
+
import { IServerRouteAppModule } from 'interface/server';
|
|
18
|
+
export interface IAuthApp extends IGraphqlAppModule, IServerRouteAppModule {
|
|
19
19
|
validateRequestToken(params: {
|
|
20
20
|
apiKey?: string;
|
|
21
21
|
headers: IncomingHttpHeaders;
|
|
22
22
|
cookies?: {};
|
|
23
23
|
}, res: Response<unknown>): Promise<ITokenUserData>;
|
|
24
|
-
registerRoute(app: Express): void;
|
|
25
24
|
authenticateWithOIDCService(req: IRequestWithContext, res: Response<unknown>): Promise<void | Response>;
|
|
26
25
|
}
|
|
27
26
|
export interface IAuthAppDeps {
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { IActionsListDomain } from 'domain/actionsList/actionsListDomain';
|
|
2
2
|
import { i18n } from 'i18next';
|
|
3
|
-
import { IAppGraphQLSchema } from '_types/graphql';
|
|
4
3
|
import { IAppModule } from '_types/shared';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
4
|
+
import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
|
|
5
|
+
export type ICoreActionListApp = IAppModule & IGraphqlAppModule;
|
|
8
6
|
interface IDeps {
|
|
9
7
|
'core.domain.actionsList': IActionsListDomain;
|
|
10
8
|
translator: i18n;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { IApiKeyDomain } from 'domain/apiKey/apiKeyDomain';
|
|
2
2
|
import { IRecordDomain } from 'domain/record/recordDomain';
|
|
3
|
-
import {
|
|
4
|
-
export
|
|
5
|
-
getGraphQLSchema(): Promise<IAppGraphQLSchema>;
|
|
6
|
-
}
|
|
3
|
+
import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
|
|
4
|
+
export type ICoreVersionProfileApp = IGraphqlAppModule;
|
|
7
5
|
interface IDeps {
|
|
8
6
|
'core.domain.apiKey': IApiKeyDomain;
|
|
9
7
|
'core.domain.record': IRecordDomain;
|
|
@@ -6,12 +6,9 @@ import { IRecordDomain } from 'domain/record/recordDomain';
|
|
|
6
6
|
import { ITreeDomain } from 'domain/tree/treeDomain';
|
|
7
7
|
import { IVersionProfileDomain } from 'domain/versionProfile/versionProfileDomain';
|
|
8
8
|
import { IUtils } from 'utils/utils';
|
|
9
|
-
import {
|
|
10
|
-
import { IGraphqlApp } from '../../graphql/graphqlApp';
|
|
9
|
+
import { IGraphqlAppModule, IGraphqlApp } from '../../graphql/graphqlApp';
|
|
11
10
|
import { ICoreApp } from '../coreApp';
|
|
12
|
-
export
|
|
13
|
-
getGraphQLSchema(): Promise<IAppGraphQLSchema>;
|
|
14
|
-
}
|
|
11
|
+
export type ICoreAttributeApp = IGraphqlAppModule;
|
|
15
12
|
interface IDeps {
|
|
16
13
|
'core.domain.attribute': IAttributeDomain;
|
|
17
14
|
'core.domain.library': ILibraryDomain;
|
|
@@ -3,12 +3,10 @@ import { ICoreDomain } from 'domain/core/coreDomain';
|
|
|
3
3
|
import { IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
|
|
4
4
|
import { GraphQLScalarType } from 'graphql';
|
|
5
5
|
import { i18n } from 'i18next';
|
|
6
|
-
import { IAppGraphQLSchema } from '_types/graphql';
|
|
7
6
|
import { IAppModule } from '_types/shared';
|
|
8
7
|
import { ISystemTranslation } from '_types/systemTranslation';
|
|
9
|
-
import { IGraphqlApp } from '../graphql/graphqlApp';
|
|
10
|
-
export interface ICoreApp extends IAppModule {
|
|
11
|
-
getGraphQLSchema(): Promise<IAppGraphQLSchema>;
|
|
8
|
+
import { IGraphqlAppModule, IGraphqlApp } from '../graphql/graphqlApp';
|
|
9
|
+
export interface ICoreApp extends IAppModule, IGraphqlAppModule {
|
|
12
10
|
filterSysTranslationField(fieldData: ISystemTranslation, requestedLangs: string[]): ISystemTranslation | null;
|
|
13
11
|
initPubSubEventsConsumer(): Promise<void>;
|
|
14
12
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { IExportDomain } from 'domain/export/exportDomain';
|
|
2
|
-
import {
|
|
3
|
-
export
|
|
4
|
-
getGraphQLSchema(): Promise<IAppGraphQLSchema>;
|
|
5
|
-
}
|
|
2
|
+
import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
|
|
3
|
+
export type ICoreExportApp = IGraphqlAppModule;
|
|
6
4
|
interface IDeps {
|
|
7
5
|
'core.domain.export': IExportDomain;
|
|
8
6
|
}
|