@qelos/global-types 3.7.4 → 3.8.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/LICENSE +3 -3
- package/app-configuration-metadata.ts +19 -0
- package/auth-configuration-metadata.ts +25 -0
- package/blueprint.ts +5 -2
- package/index.ts +6 -1
- package/integration-sources.ts +116 -0
- package/integration.ts +24 -0
- package/micro-frontend.ts +2 -0
- package/package.json +2 -2
- package/screen-requirement.ts +3 -0
- package/workspace-configuration-metadata.ts +18 -0
package/LICENSE
CHANGED
|
@@ -16,16 +16,16 @@ For full license details, see [Apache License 2.0](https://www.apache.org/licens
|
|
|
16
16
|
|
|
17
17
|
## Restriction on Managed Services - Custom Clause
|
|
18
18
|
|
|
19
|
-
While the software is open and free to use for internal or personal purposes, **you are not permitted to offer this software or any derivative of it as a paid managed service** or **Software as a Service (SaaS)** without explicit permission from
|
|
19
|
+
While the software is open and free to use for internal or personal purposes, **you are not permitted to offer this software or any derivative of it as a paid managed service** or **Software as a Service (SaaS)** without explicit permission from Velocitech LTD.
|
|
20
20
|
|
|
21
21
|
### Key Restriction:
|
|
22
22
|
- You **may not** sell, offer, or commercialize this software as a managed service, SaaS, or any similar hosted service.
|
|
23
23
|
|
|
24
24
|
### How to Obtain Permission:
|
|
25
|
-
If you wish to offer a managed or commercial version of this software, you must obtain a **commercial license** from
|
|
25
|
+
If you wish to offer a managed or commercial version of this software, you must obtain a **commercial license** from Velocitech LTD. Please contact us at [support@qelos.io](mailto:support@qelos.io) for details.
|
|
26
26
|
|
|
27
27
|
## Additional Notes
|
|
28
28
|
|
|
29
|
-
This license ensures the software remains free for personal use and community development, while protecting
|
|
29
|
+
This license ensures the software remains free for personal use and community development, while protecting Velocitech LTD’s right to control the commercialization of managed services based on the software.
|
|
30
30
|
|
|
31
31
|
For any questions regarding the license, feel free to reach out at [support@qelos.io].
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
|
|
2
|
+
export interface IAppConfigurationMetadata {
|
|
3
|
+
name: string;
|
|
4
|
+
logoUrl: string;
|
|
5
|
+
description: string;
|
|
6
|
+
keywords: string;
|
|
7
|
+
slogan: string;
|
|
8
|
+
language: string;
|
|
9
|
+
direction: string;
|
|
10
|
+
themeStylesUrl: string;
|
|
11
|
+
scriptUrl: string;
|
|
12
|
+
homeScreen: string;
|
|
13
|
+
colorsPalette: Record<string, string>;
|
|
14
|
+
borderRadius: number;
|
|
15
|
+
baseFontSize: number;
|
|
16
|
+
websiteUrls: string[];
|
|
17
|
+
|
|
18
|
+
[key: string]: any;
|
|
19
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
export interface IUserAdditionalField {
|
|
3
|
+
key: string
|
|
4
|
+
name: string,
|
|
5
|
+
label: string,
|
|
6
|
+
inputType: 'text' | 'email' | 'phone' | 'select' | 'checkbox' | 'radio',
|
|
7
|
+
valueType: 'string' | 'number' | 'boolean',
|
|
8
|
+
required: boolean,
|
|
9
|
+
defaultValue?: any;
|
|
10
|
+
options?: Array<{ label: string, value: string }>,
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface IAuthConfigurationMetadata {
|
|
14
|
+
treatUsernameAs: 'email' | 'username' | 'phone',
|
|
15
|
+
formPosition: 'left' | 'right' | 'center' | 'top' | 'bottom',
|
|
16
|
+
loginTitle?: string,
|
|
17
|
+
showLoginPage: boolean,
|
|
18
|
+
showRegisterPage: boolean,
|
|
19
|
+
backgroundImage?: string,
|
|
20
|
+
socialLoginsSources?: {
|
|
21
|
+
linkedin?: string,
|
|
22
|
+
}
|
|
23
|
+
allowSocialAutoRegistration?: boolean,
|
|
24
|
+
additionalUserFields: Array<IUserAdditionalField>
|
|
25
|
+
}
|
package/blueprint.ts
CHANGED
|
@@ -10,7 +10,8 @@ export enum BlueprintPropertyType {
|
|
|
10
10
|
DATE = 'date',
|
|
11
11
|
DATETIME = 'datetime',
|
|
12
12
|
TIME = 'time',
|
|
13
|
-
OBJECT = 'object'
|
|
13
|
+
OBJECT = 'object',
|
|
14
|
+
FILE = 'file'
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
export enum PermissionScope {
|
|
@@ -29,6 +30,7 @@ export enum CRUDOperation {
|
|
|
29
30
|
export interface IPermissionsDescriptor {
|
|
30
31
|
scope: PermissionScope,
|
|
31
32
|
operation: CRUDOperation,
|
|
33
|
+
guest: boolean,
|
|
32
34
|
roleBased: string[],
|
|
33
35
|
workspaceRoleBased: string[],
|
|
34
36
|
workspaceLabelsBased: string[],
|
|
@@ -48,6 +50,8 @@ export interface IBlueprintPropertyDescriptor {
|
|
|
48
50
|
|
|
49
51
|
export interface IBlueprintLimitation {
|
|
50
52
|
scope: PermissionScope;
|
|
53
|
+
workspaceLabels: string[];
|
|
54
|
+
roles: string[];
|
|
51
55
|
properties?: string[];
|
|
52
56
|
value: number;
|
|
53
57
|
}
|
|
@@ -71,5 +75,4 @@ export interface IBlueprint {
|
|
|
71
75
|
};
|
|
72
76
|
created: Date;
|
|
73
77
|
updated: Date;
|
|
74
|
-
workspaceLabelsBased?: string[];
|
|
75
78
|
}
|
package/index.ts
CHANGED
|
@@ -6,4 +6,9 @@ export * from './micro-frontend'
|
|
|
6
6
|
export * from './screen-requirement'
|
|
7
7
|
export * from './navbar-group'
|
|
8
8
|
export * from './plugin-crud'
|
|
9
|
-
export * from './query-filters'
|
|
9
|
+
export * from './query-filters'
|
|
10
|
+
export * from './workspace-configuration-metadata'
|
|
11
|
+
export * from './auth-configuration-metadata'
|
|
12
|
+
export * from './app-configuration-metadata'
|
|
13
|
+
export * from './integration-sources'
|
|
14
|
+
export * from './integration'
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export enum IntegrationSourceKind {
|
|
2
|
+
Qelos = 'qelos',
|
|
3
|
+
OpenAI = 'openai',
|
|
4
|
+
Email = 'email',
|
|
5
|
+
N8n = 'n8n',
|
|
6
|
+
Supabase = 'supabase',
|
|
7
|
+
LinkedIn = 'linkedin',
|
|
8
|
+
Http = 'http',
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface IIntegrationSource {
|
|
12
|
+
_id?: string;
|
|
13
|
+
tenant: string;
|
|
14
|
+
plugin?: string;
|
|
15
|
+
user: string;
|
|
16
|
+
authentication: any;
|
|
17
|
+
metadata: any;
|
|
18
|
+
name: string;
|
|
19
|
+
labels: string[];
|
|
20
|
+
kind: IntegrationSourceKind;
|
|
21
|
+
created: Date;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export enum HttpTargetOperation {
|
|
25
|
+
makeRequest = 'makeRequest',
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export enum QelosTriggerOperation {
|
|
29
|
+
webhook = 'webhook',
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export enum QelosTargetOperation {
|
|
33
|
+
webhook = 'webhook',
|
|
34
|
+
createBlueprintEntity = 'createBlueprintEntity',
|
|
35
|
+
createUser = 'createUser',
|
|
36
|
+
updateUser = 'updateUser',
|
|
37
|
+
setUserRoles = 'setUserRoles',
|
|
38
|
+
setWorkspaceLabels = 'setWorkspaceLabels',
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export enum OpenAITargetOperation {
|
|
42
|
+
chatCompletion = 'chatCompletion',
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface ILinkedInSource extends IIntegrationSource {
|
|
46
|
+
_id?: string;
|
|
47
|
+
kind: IntegrationSourceKind.LinkedIn;
|
|
48
|
+
authentication: {
|
|
49
|
+
clientSecret?: string;
|
|
50
|
+
};
|
|
51
|
+
metadata: {
|
|
52
|
+
clientId: string;
|
|
53
|
+
scope: string;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface IQelosSource extends IIntegrationSource {
|
|
58
|
+
_id?: string;
|
|
59
|
+
kind: IntegrationSourceKind.Qelos;
|
|
60
|
+
authentication: {
|
|
61
|
+
password: string;
|
|
62
|
+
};
|
|
63
|
+
metadata: {
|
|
64
|
+
url: string;
|
|
65
|
+
username: string;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface ISupabaseSource extends IIntegrationSource {
|
|
70
|
+
_id?: string;
|
|
71
|
+
kind: IntegrationSourceKind.Supabase;
|
|
72
|
+
metadata: {
|
|
73
|
+
url: string;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export interface IOpenAISource extends IIntegrationSource {
|
|
78
|
+
_id?: string;
|
|
79
|
+
kind: IntegrationSourceKind.OpenAI;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface IN8nSource extends IIntegrationSource {
|
|
83
|
+
_id?: string;
|
|
84
|
+
kind: IntegrationSourceKind.N8n;
|
|
85
|
+
metadata: {
|
|
86
|
+
url: string;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface IEmailSource extends IIntegrationSource {
|
|
91
|
+
_id?: string;
|
|
92
|
+
kind: IntegrationSourceKind.Email;
|
|
93
|
+
authentication: {
|
|
94
|
+
password: string;
|
|
95
|
+
};
|
|
96
|
+
metadata: {
|
|
97
|
+
username: string;
|
|
98
|
+
email: string;
|
|
99
|
+
pop3: string;
|
|
100
|
+
smtp: string;
|
|
101
|
+
senderName: string;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface IHttpSource extends IIntegrationSource {
|
|
106
|
+
_id?: string;
|
|
107
|
+
kind: IntegrationSourceKind.Http;
|
|
108
|
+
authentication: {
|
|
109
|
+
securedHeaders: Record<string, string>;
|
|
110
|
+
};
|
|
111
|
+
metadata: {
|
|
112
|
+
baseUrl: string;
|
|
113
|
+
headers: Record<string, string>;
|
|
114
|
+
query: Record<string, string>;
|
|
115
|
+
};
|
|
116
|
+
}
|
package/integration.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface IDataManipulationStep {
|
|
2
|
+
map: Record<string, string> // JQ expressions to be assigned to the key
|
|
3
|
+
// populate data from given object using qelos source. If blueprint is provided, it will be used to fetch the blueprint entity
|
|
4
|
+
populate: Record<string, { source: 'user' | 'workspace' | 'blueprintEntity'; blueprint?: string; }>,
|
|
5
|
+
clean?: boolean
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface IIntegration {
|
|
9
|
+
_id: string;
|
|
10
|
+
tenant: string;
|
|
11
|
+
plugin?: string;
|
|
12
|
+
user: string;
|
|
13
|
+
kind: string[];
|
|
14
|
+
trigger: IIntegrationEntity;
|
|
15
|
+
target: IIntegrationEntity;
|
|
16
|
+
dataManipulation: IDataManipulationStep[]
|
|
17
|
+
created: Date;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface IIntegrationEntity {
|
|
21
|
+
source: string;
|
|
22
|
+
operation: string;
|
|
23
|
+
details: any;
|
|
24
|
+
}
|
package/micro-frontend.ts
CHANGED
|
@@ -5,11 +5,13 @@ export interface IMicroFrontend {
|
|
|
5
5
|
name: string;
|
|
6
6
|
description: string;
|
|
7
7
|
manifestUrl: string;
|
|
8
|
+
guest?: boolean;
|
|
8
9
|
url: string;
|
|
9
10
|
active: boolean;
|
|
10
11
|
opened: boolean;
|
|
11
12
|
roles: string[],
|
|
12
13
|
workspaceRoles: string[],
|
|
14
|
+
workspaceLabels?: string[],
|
|
13
15
|
crud?: string;
|
|
14
16
|
use?: string;
|
|
15
17
|
structure?: string;
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qelos/global-types",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.ts",
|
|
6
6
|
"types": "index.ts",
|
|
7
7
|
"scripts": {},
|
|
8
8
|
"author": "",
|
|
9
|
-
"gitHead": "
|
|
9
|
+
"gitHead": "cb6281585059df8baa9b2ce388fb00577b2cf99b",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"publishConfig": {
|
|
12
12
|
"access": "public"
|
package/screen-requirement.ts
CHANGED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface WorkspaceLabelDefinition {
|
|
2
|
+
title: string,
|
|
3
|
+
description: string,
|
|
4
|
+
value: string[],
|
|
5
|
+
allowedRolesForCreation?: string[],
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface WorkspaceConfigurationMetadata {
|
|
9
|
+
isActive: boolean,
|
|
10
|
+
creationPrivilegedRoles: string[],
|
|
11
|
+
viewMembersPrivilegedWsRoles: string[],
|
|
12
|
+
labels: WorkspaceLabelDefinition[],
|
|
13
|
+
allowNonLabeledWorkspaces: boolean,
|
|
14
|
+
allowNonWorkspaceUsers: boolean,
|
|
15
|
+
allowLogo?: boolean,
|
|
16
|
+
createWorkspacePageTitle?: string,
|
|
17
|
+
labelsSelectorTitle?: string,
|
|
18
|
+
}
|