@3sixty/engine-server-types 0.20.0-next.3 → 0.20.0-next.5
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/dist/es/components/authentication.js +41 -7
- package/dist/es/components/authentication.js.map +1 -1
- package/dist/es/components/authenticationAccount.js +85 -0
- package/dist/es/components/authenticationAccount.js.map +1 -0
- package/dist/es/components/authenticationAccountAdmin.js +46 -0
- package/dist/es/components/authenticationAccountAdmin.js.map +1 -0
- package/dist/es/components/authenticationAdmin.js +11 -9
- package/dist/es/components/authenticationAdmin.js.map +1 -1
- package/dist/es/components/authenticationProvider.js +41 -0
- package/dist/es/components/authenticationProvider.js.map +1 -0
- package/dist/es/components/oauth.js +32 -0
- package/dist/es/components/oauth.js.map +1 -0
- package/dist/es/components/organization.js +43 -0
- package/dist/es/components/organization.js.map +1 -0
- package/dist/es/components/organizationRequestAdmin.js +41 -0
- package/dist/es/components/organizationRequestAdmin.js.map +1 -0
- package/dist/es/components/restRouteProcessor.js +19 -9
- package/dist/es/components/restRouteProcessor.js.map +1 -1
- package/dist/es/components/socketRouteProcessor.js +19 -9
- package/dist/es/components/socketRouteProcessor.js.map +1 -1
- package/dist/es/index.js +18 -0
- package/dist/es/index.js.map +1 -1
- package/dist/es/models/IEngineServerConfig.js.map +1 -1
- package/dist/es/models/config/authenticationAccountAdminComponentConfig.js +2 -0
- package/dist/es/models/config/authenticationAccountAdminComponentConfig.js.map +1 -0
- package/dist/es/models/config/authenticationAccountComponentConfig.js +2 -0
- package/dist/es/models/config/authenticationAccountComponentConfig.js.map +1 -0
- package/dist/es/models/config/authenticationProviderConfig.js +2 -0
- package/dist/es/models/config/authenticationProviderConfig.js.map +1 -0
- package/dist/es/models/config/oauthComponentConfig.js +2 -0
- package/dist/es/models/config/oauthComponentConfig.js.map +1 -0
- package/dist/es/models/config/organizationComponentConfig.js +2 -0
- package/dist/es/models/config/organizationComponentConfig.js.map +1 -0
- package/dist/es/models/config/organizationRequestAdminComponentConfig.js +2 -0
- package/dist/es/models/config/organizationRequestAdminComponentConfig.js.map +1 -0
- package/dist/es/models/config/restRouteProcessorConfig.js.map +1 -1
- package/dist/es/models/config/socketRouteProcessorConfig.js.map +1 -1
- package/dist/es/models/types/authenticationAccountAdminComponentType.js +17 -0
- package/dist/es/models/types/authenticationAccountAdminComponentType.js.map +1 -0
- package/dist/es/models/types/authenticationAccountComponentType.js +17 -0
- package/dist/es/models/types/authenticationAccountComponentType.js.map +1 -0
- package/dist/es/models/types/authenticationProviderType.js +21 -0
- package/dist/es/models/types/authenticationProviderType.js.map +1 -0
- package/dist/es/models/types/oauthComponentType.js +13 -0
- package/dist/es/models/types/oauthComponentType.js.map +1 -0
- package/dist/es/models/types/organizationComponentType.js +17 -0
- package/dist/es/models/types/organizationComponentType.js.map +1 -0
- package/dist/es/models/types/organizationRequestAdminComponentType.js +17 -0
- package/dist/es/models/types/organizationRequestAdminComponentType.js.map +1 -0
- package/dist/es/models/types/restRouteProcessorType.js +10 -1
- package/dist/es/models/types/restRouteProcessorType.js.map +1 -1
- package/dist/es/models/types/socketRouteProcessorType.js +10 -1
- package/dist/es/models/types/socketRouteProcessorType.js.map +1 -1
- package/dist/types/components/authentication.d.ts +16 -0
- package/dist/types/components/authenticationAccount.d.ts +37 -0
- package/dist/types/components/authenticationAccountAdmin.d.ts +12 -0
- package/dist/types/components/authenticationProvider.d.ts +12 -0
- package/dist/types/components/oauth.d.ts +12 -0
- package/dist/types/components/organization.d.ts +12 -0
- package/dist/types/components/organizationRequestAdmin.d.ts +12 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/models/IEngineServerConfig.d.ts +30 -0
- package/dist/types/models/config/authenticationAccountAdminComponentConfig.d.ts +13 -0
- package/dist/types/models/config/authenticationAccountComponentConfig.d.ts +13 -0
- package/dist/types/models/config/authenticationProviderConfig.d.ts +17 -0
- package/dist/types/models/config/oauthComponentConfig.d.ts +9 -0
- package/dist/types/models/config/organizationComponentConfig.d.ts +13 -0
- package/dist/types/models/config/organizationRequestAdminComponentConfig.d.ts +13 -0
- package/dist/types/models/config/restRouteProcessorConfig.d.ts +8 -1
- package/dist/types/models/config/socketRouteProcessorConfig.d.ts +8 -1
- package/dist/types/models/types/authenticationAccountAdminComponentType.d.ts +17 -0
- package/dist/types/models/types/authenticationAccountComponentType.d.ts +17 -0
- package/dist/types/models/types/authenticationProviderType.d.ts +21 -0
- package/dist/types/models/types/oauthComponentType.d.ts +13 -0
- package/dist/types/models/types/organizationComponentType.d.ts +17 -0
- package/dist/types/models/types/organizationRequestAdminComponentType.d.ts +17 -0
- package/dist/types/models/types/restRouteProcessorType.d.ts +8 -0
- package/dist/types/models/types/socketRouteProcessorType.d.ts +8 -0
- package/docs/changelog.md +30 -0
- package/docs/examples.md +91 -0
- package/docs/reference/functions/initialiseAccountDataEntityStorage.md +30 -0
- package/docs/reference/functions/initialiseAuthenticationAccountAdminComponent.md +31 -0
- package/docs/reference/functions/initialiseAuthenticationAccountComponent.md +31 -0
- package/docs/reference/functions/initialiseAuthenticationPasswordResetEntityStorage.md +30 -0
- package/docs/reference/functions/initialiseAuthenticationProvider.md +31 -0
- package/docs/reference/functions/initialiseAuthenticationUserEntityStorage.md +30 -0
- package/docs/reference/functions/initialiseOAuthComponent.md +31 -0
- package/docs/reference/functions/initialiseOrganizationComponent.md +31 -0
- package/docs/reference/functions/initialiseOrganizationEntityStorage.md +31 -0
- package/docs/reference/functions/initialiseOrganizationRequestAdminComponent.md +31 -0
- package/docs/reference/functions/initialiseOrganizationRequestEntityStorage.md +30 -0
- package/docs/reference/index.md +29 -0
- package/docs/reference/interfaces/IEngineServerConfig.md +36 -0
- package/docs/reference/type-aliases/AuthenticationAccountAdminComponentConfig.md +5 -0
- package/docs/reference/type-aliases/AuthenticationAccountAdminComponentType.md +5 -0
- package/docs/reference/type-aliases/AuthenticationAccountComponentConfig.md +5 -0
- package/docs/reference/type-aliases/AuthenticationAccountComponentType.md +5 -0
- package/docs/reference/type-aliases/AuthenticationProviderConfig.md +5 -0
- package/docs/reference/type-aliases/AuthenticationProviderType.md +5 -0
- package/docs/reference/type-aliases/OAuthComponentConfig.md +17 -0
- package/docs/reference/type-aliases/OAuthComponentType.md +5 -0
- package/docs/reference/type-aliases/OrganizationComponentConfig.md +5 -0
- package/docs/reference/type-aliases/OrganizationComponentType.md +5 -0
- package/docs/reference/type-aliases/OrganizationRequestAdminComponentConfig.md +5 -0
- package/docs/reference/type-aliases/OrganizationRequestAdminComponentType.md +5 -0
- package/docs/reference/type-aliases/RestRouteProcessorConfig.md +1 -1
- package/docs/reference/type-aliases/SocketRouteProcessorConfig.md +1 -1
- package/docs/reference/variables/AuthenticationAccountAdminComponentType.md +19 -0
- package/docs/reference/variables/AuthenticationAccountComponentType.md +19 -0
- package/docs/reference/variables/AuthenticationProviderType.md +25 -0
- package/docs/reference/variables/OAuthComponentType.md +13 -0
- package/docs/reference/variables/OrganizationComponentType.md +19 -0
- package/docs/reference/variables/OrganizationRequestAdminComponentType.md +19 -0
- package/docs/reference/variables/RestRouteProcessorType.md +12 -0
- package/docs/reference/variables/SocketRouteProcessorType.md +12 -0
- package/package.json +10 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Copyright 2024 IOTA Stiftung.
|
|
2
|
+
// Copyright 2026 3Sixty Trade Ltd.
|
|
2
3
|
// SPDX-License-Identifier: Apache-2.0.
|
|
3
4
|
import { EntityStorageAuthenticationRestClient } from "@3sixty/api-auth-entity-storage-rest-client";
|
|
4
5
|
import { EntityStorageAuthenticationService, initSchema as initSchemaAuthEntityStorage } from "@3sixty/api-auth-entity-storage-service";
|
|
@@ -6,6 +7,34 @@ import { ContextIdHelper, ContextIdKeys } from "@3sixty/context";
|
|
|
6
7
|
import { ComponentFactory } from "@3sixty/core";
|
|
7
8
|
import { EngineTypeHelper, initialiseEntityStorageConnector } from "@3sixty/engine-types";
|
|
8
9
|
import { AuthenticationComponentType } from "../models/types/authenticationComponentType.js";
|
|
10
|
+
/**
|
|
11
|
+
* Initialise the entity storage of the authentication users, shared by every component that uses
|
|
12
|
+
* it so the schema and partitions match.
|
|
13
|
+
* @param engineCore The engine core.
|
|
14
|
+
* @param context The context for the engine.
|
|
15
|
+
* @param storageType The configured storage type.
|
|
16
|
+
*/
|
|
17
|
+
export function initialiseAuthenticationUserEntityStorage(engineCore, context, storageType) {
|
|
18
|
+
initSchemaAuthEntityStorage();
|
|
19
|
+
initialiseEntityStorageConnector(engineCore, context, storageType, "AuthenticationUser", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
|
|
20
|
+
ContextIdKeys.Node,
|
|
21
|
+
ContextIdKeys.Tenant
|
|
22
|
+
]));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Initialise the entity storage of the password reset and sign up verification tokens, partitioned
|
|
26
|
+
* like the accounts they belong to.
|
|
27
|
+
* @param engineCore The engine core.
|
|
28
|
+
* @param context The context for the engine.
|
|
29
|
+
* @param storageType The configured storage type.
|
|
30
|
+
*/
|
|
31
|
+
export function initialiseAuthenticationPasswordResetEntityStorage(engineCore, context, storageType) {
|
|
32
|
+
initSchemaAuthEntityStorage();
|
|
33
|
+
initialiseEntityStorageConnector(engineCore, context, storageType, "AuthenticationPasswordReset", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
|
|
34
|
+
ContextIdKeys.Node,
|
|
35
|
+
ContextIdKeys.Tenant
|
|
36
|
+
]));
|
|
37
|
+
}
|
|
9
38
|
/**
|
|
10
39
|
* Initialise the authentication component.
|
|
11
40
|
* @param engineCore The engine core.
|
|
@@ -18,16 +47,21 @@ export function initialiseAuthenticationComponent(engineCore, context, instanceC
|
|
|
18
47
|
let instanceTypeName;
|
|
19
48
|
if (instanceConfig.type === AuthenticationComponentType.EntityStorage) {
|
|
20
49
|
createComponent = (createConfig) => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
ContextIdKeys.Node,
|
|
24
|
-
ContextIdKeys.Tenant
|
|
25
|
-
]));
|
|
50
|
+
initialiseAuthenticationUserEntityStorage(engineCore, context, createConfig.options?.userEntityStorageType);
|
|
51
|
+
initialiseAuthenticationPasswordResetEntityStorage(engineCore, context, createConfig.options?.passwordResetEntityStorageType);
|
|
26
52
|
return new EntityStorageAuthenticationService(EngineTypeHelper.mergeConfig({
|
|
27
53
|
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
28
54
|
tenantAdminComponentType: engineCore.getRegisteredInstanceTypeOptional("tenantAdminComponent"),
|
|
29
|
-
authenticationAuditServiceType: engineCore.
|
|
30
|
-
authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent")
|
|
55
|
+
authenticationAuditServiceType: engineCore.getRegisteredInstanceType("authenticationAuditComponent"),
|
|
56
|
+
authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent"),
|
|
57
|
+
authenticationAccountAdminComponentType: engineCore.getRegisteredInstanceType("authenticationAccountAdminComponent"),
|
|
58
|
+
authenticationAccountComponentType: engineCore.getRegisteredInstanceType("authenticationAccountComponent"),
|
|
59
|
+
authorizationComponentType: engineCore.getRegisteredInstanceType("authorizationComponent"),
|
|
60
|
+
organizationRequestAdminComponentType: engineCore.getRegisteredInstanceType("organizationRequestAdminComponent"),
|
|
61
|
+
messagingComponentType: engineCore.getRegisteredInstanceType("messagingComponent"),
|
|
62
|
+
loggingComponentType: engineCore.getRegisteredSilencedType("logging", "EntityStorageAuthenticationService"),
|
|
63
|
+
taskSchedulerComponentType: engineCore.getRegisteredInstanceType("taskSchedulerComponent"),
|
|
64
|
+
platformComponentType: engineCore.getRegisteredInstanceType("platformComponent")
|
|
31
65
|
}, createConfig.options));
|
|
32
66
|
};
|
|
33
67
|
instanceTypeName = "entity-storage-authentication-service";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.js","sources":["../../../src/components/authentication.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,qCAAqC,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EACN,kCAAkC,EAClC,UAAU,IAAI,2BAA2B,
|
|
1
|
+
{"version":3,"file":"authentication.js","sources":["../../../src/components/authentication.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationRestClient } from \"@3sixty/api-auth-entity-storage-rest-client\";\nimport {\n\tEntityStorageAuthenticationService,\n\tinitSchema as initSchemaAuthEntityStorage,\n\ttype AuthenticationPasswordReset,\n\ttype AuthenticationUser\n} from \"@3sixty/api-auth-entity-storage-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@3sixty/context\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper, initialiseEntityStorageConnector } from \"@3sixty/engine-types\";\n\nimport type { AuthenticationComponentConfig } from \"../models/config/authenticationComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationComponentType } from \"../models/types/authenticationComponentType.js\";\n\n/**\n * Initialise the entity storage of the authentication users, shared by every component that uses\n * it so the schema and partitions match.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseAuthenticationUserEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthEntityStorage();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"AuthenticationUser\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the entity storage of the password reset and sign up verification tokens, partitioned\n * like the accounts they belong to.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseAuthenticationPasswordResetEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthEntityStorage();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"AuthenticationPasswordReset\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the authentication component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAuthenticationComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAuthenticationUserEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.userEntityStorageType\n\t\t\t);\n\t\t\tinitialiseAuthenticationPasswordResetEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.passwordResetEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\"),\n\t\t\t\t\t\ttenantAdminComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceTypeOptional(\"tenantAdminComponent\"),\n\t\t\t\t\t\tauthenticationAuditServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAuditComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tauthenticationRateServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationRateComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tauthenticationAccountAdminComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAccountAdminComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tauthenticationAccountComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAccountComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\"),\n\t\t\t\t\t\torganizationRequestAdminComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"organizationRequestAdminComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmessagingComponentType: engineCore.getRegisteredInstanceType(\"messagingComponent\"),\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredSilencedType(\n\t\t\t\t\t\t\t\"logging\",\n\t\t\t\t\t\t\t\"EntityStorageAuthenticationService\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttaskSchedulerComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"taskSchedulerComponent\"),\n\t\t\t\t\t\tplatformComponentType: engineCore.getRegisteredInstanceType(\"platformComponent\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = \"entity-storage-authentication-service\";\n\t} else if (instanceConfig.type === AuthenticationComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageAuthenticationRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"entity-storage-authentication-rest-client\";\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Copyright 2026 3Sixty Trade Ltd.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0.
|
|
3
|
+
import { EntityStorageAuthenticationAccountRestClient } from "@3sixty/api-auth-account-rest-client";
|
|
4
|
+
import { EntityStorageAuthenticationAccountService, initSchema as initSchemaAuthAccount } from "@3sixty/api-auth-account-service";
|
|
5
|
+
import { ContextIdHelper, ContextIdKeys } from "@3sixty/context";
|
|
6
|
+
import { ComponentFactory } from "@3sixty/core";
|
|
7
|
+
import { EngineTypeHelper, initialiseEntityStorageConnector } from "@3sixty/engine-types";
|
|
8
|
+
import { AuthenticationAccountComponentType } from "../models/types/authenticationAccountComponentType.js";
|
|
9
|
+
/**
|
|
10
|
+
* Initialise the entity storage of the account data, shared by every component that uses it so the
|
|
11
|
+
* schema and partitions match.
|
|
12
|
+
* @param engineCore The engine core.
|
|
13
|
+
* @param context The context for the engine.
|
|
14
|
+
* @param storageType The configured storage type.
|
|
15
|
+
*/
|
|
16
|
+
export function initialiseAccountDataEntityStorage(engineCore, context, storageType) {
|
|
17
|
+
initSchemaAuthAccount();
|
|
18
|
+
initialiseEntityStorageConnector(engineCore, context, storageType, "AccountData", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
|
|
19
|
+
ContextIdKeys.Node,
|
|
20
|
+
ContextIdKeys.Tenant
|
|
21
|
+
]));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Initialise the entity storage of the requests to join an organization, shared by every component
|
|
25
|
+
* that uses it so the schema and partitions match.
|
|
26
|
+
* @param engineCore The engine core.
|
|
27
|
+
* @param context The context for the engine.
|
|
28
|
+
* @param storageType The configured storage type.
|
|
29
|
+
*/
|
|
30
|
+
export function initialiseOrganizationRequestEntityStorage(engineCore, context, storageType) {
|
|
31
|
+
initSchemaAuthAccount();
|
|
32
|
+
initialiseEntityStorageConnector(engineCore, context, storageType, "OrganizationRequest", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
|
|
33
|
+
ContextIdKeys.Node,
|
|
34
|
+
ContextIdKeys.Tenant
|
|
35
|
+
]));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Initialise the entity storage of the registered organizations, inside the tenant partition like
|
|
39
|
+
* the accounts that join them. Every component that checks an organization is registered
|
|
40
|
+
* initialises it, so the check never runs against missing storage.
|
|
41
|
+
* @param engineCore The engine core.
|
|
42
|
+
* @param context The context for the engine.
|
|
43
|
+
* @param storageType The configured storage type.
|
|
44
|
+
*/
|
|
45
|
+
export function initialiseOrganizationEntityStorage(engineCore, context, storageType) {
|
|
46
|
+
initSchemaAuthAccount();
|
|
47
|
+
initialiseEntityStorageConnector(engineCore, context, storageType, "Organization", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
|
|
48
|
+
ContextIdKeys.Node,
|
|
49
|
+
ContextIdKeys.Tenant
|
|
50
|
+
]));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Initialise the authentication account component.
|
|
54
|
+
* @param engineCore The engine core.
|
|
55
|
+
* @param context The context for the engine.
|
|
56
|
+
* @param instanceConfig The instance config.
|
|
57
|
+
* @returns The instance created and the factory for it.
|
|
58
|
+
*/
|
|
59
|
+
export function initialiseAuthenticationAccountComponent(engineCore, context, instanceConfig) {
|
|
60
|
+
let createComponent;
|
|
61
|
+
let instanceTypeName;
|
|
62
|
+
if (instanceConfig.type === AuthenticationAccountComponentType.EntityStorage) {
|
|
63
|
+
createComponent = (createConfig) => {
|
|
64
|
+
initialiseAccountDataEntityStorage(engineCore, context, createConfig.options?.accountDataEntityStorageType);
|
|
65
|
+
initialiseOrganizationRequestEntityStorage(engineCore, context, createConfig.options?.organizationRequestEntityStorageType);
|
|
66
|
+
initialiseOrganizationEntityStorage(engineCore, context, createConfig.options?.organizationEntityStorageType);
|
|
67
|
+
return new EntityStorageAuthenticationAccountService(EngineTypeHelper.mergeConfig({
|
|
68
|
+
authorizationComponentType: engineCore.getRegisteredInstanceType("authorizationComponent"),
|
|
69
|
+
identityComponentType: engineCore.getRegisteredInstanceType("identityComponent"),
|
|
70
|
+
authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent")
|
|
71
|
+
}, createConfig.options));
|
|
72
|
+
};
|
|
73
|
+
instanceTypeName = "entity-storage-authentication-account-service";
|
|
74
|
+
}
|
|
75
|
+
else if (instanceConfig.type === AuthenticationAccountComponentType.RestClient) {
|
|
76
|
+
createComponent = (createConfig) => new EntityStorageAuthenticationAccountRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
|
|
77
|
+
instanceTypeName = "entity-storage-authentication-account-rest-client";
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
createComponent: createComponent,
|
|
81
|
+
instanceTypeName,
|
|
82
|
+
factory: ComponentFactory
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=authenticationAccount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticationAccount.js","sources":["../../../src/components/authenticationAccount.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationAccountRestClient } from \"@3sixty/api-auth-account-rest-client\";\nimport {\n\ttype AccountData,\n\tEntityStorageAuthenticationAccountService,\n\tinitSchema as initSchemaAuthAccount,\n\ttype Organization,\n\ttype OrganizationRequest\n} from \"@3sixty/api-auth-account-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@3sixty/context\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper, initialiseEntityStorageConnector } from \"@3sixty/engine-types\";\n\nimport type { AuthenticationAccountComponentConfig } from \"../models/config/authenticationAccountComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationAccountComponentType } from \"../models/types/authenticationAccountComponentType.js\";\n\n/**\n * Initialise the entity storage of the account data, shared by every component that uses it so the\n * schema and partitions match.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseAccountDataEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthAccount();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"AccountData\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the entity storage of the requests to join an organization, shared by every component\n * that uses it so the schema and partitions match.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseOrganizationRequestEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthAccount();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"OrganizationRequest\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the entity storage of the registered organizations, inside the tenant partition like\n * the accounts that join them. Every component that checks an organization is registered\n * initialises it, so the check never runs against missing storage.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseOrganizationEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthAccount();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"Organization\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the authentication account component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAuthenticationAccountComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationAccountComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationAccountComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationAccountComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAccountDataEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.accountDataEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationRequestEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationRequestEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationAccountService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\"),\n\t\t\t\t\t\tidentityComponentType: engineCore.getRegisteredInstanceType(\"identityComponent\"),\n\t\t\t\t\t\tauthenticationRateServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationRateComponent\"\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = \"entity-storage-authentication-account-service\";\n\t} else if (instanceConfig.type === AuthenticationAccountComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageAuthenticationAccountRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"entity-storage-authentication-account-rest-client\";\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Copyright 2026 3Sixty Trade Ltd.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0.
|
|
3
|
+
import { EntityStorageAuthenticationAccountAdminRestClient } from "@3sixty/api-auth-account-rest-client";
|
|
4
|
+
import { EntityStorageAuthenticationAccountAdminService } from "@3sixty/api-auth-account-service";
|
|
5
|
+
import { ComponentFactory } from "@3sixty/core";
|
|
6
|
+
import { EngineTypeHelper } from "@3sixty/engine-types";
|
|
7
|
+
import { initialiseAuthenticationUserEntityStorage } from "./authentication.js";
|
|
8
|
+
import { initialiseAccountDataEntityStorage, initialiseOrganizationEntityStorage, initialiseOrganizationRequestEntityStorage } from "./authenticationAccount.js";
|
|
9
|
+
import { AuthenticationAccountAdminComponentType } from "../models/types/authenticationAccountAdminComponentType.js";
|
|
10
|
+
/**
|
|
11
|
+
* Initialise the authentication account admin component.
|
|
12
|
+
* @param engineCore The engine core.
|
|
13
|
+
* @param context The context for the engine.
|
|
14
|
+
* @param instanceConfig The instance config.
|
|
15
|
+
* @returns The instance created and the factory for it.
|
|
16
|
+
*/
|
|
17
|
+
export function initialiseAuthenticationAccountAdminComponent(engineCore, context, instanceConfig) {
|
|
18
|
+
let createComponent;
|
|
19
|
+
let instanceTypeName;
|
|
20
|
+
if (instanceConfig.type === AuthenticationAccountAdminComponentType.EntityStorage) {
|
|
21
|
+
createComponent = (createConfig) => {
|
|
22
|
+
initialiseAccountDataEntityStorage(engineCore, context, createConfig.options?.accountDataEntityStorageType);
|
|
23
|
+
initialiseOrganizationEntityStorage(engineCore, context, createConfig.options?.organizationEntityStorageType);
|
|
24
|
+
// Removing an identity removes its pending requests, and an identity import completes them.
|
|
25
|
+
initialiseOrganizationRequestEntityStorage(engineCore, context, createConfig.options?.organizationRequestEntityStorageType);
|
|
26
|
+
// The accounts are looked up to check one exists before its data is changed.
|
|
27
|
+
initialiseAuthenticationUserEntityStorage(engineCore, context, createConfig.options?.userEntityStorageType);
|
|
28
|
+
return new EntityStorageAuthenticationAccountAdminService(EngineTypeHelper.mergeConfig({
|
|
29
|
+
authorizationComponentType: engineCore.getRegisteredInstanceType("authorizationComponent"),
|
|
30
|
+
identityComponentType: engineCore.getRegisteredInstanceType("identityComponent"),
|
|
31
|
+
authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent")
|
|
32
|
+
}, createConfig.options));
|
|
33
|
+
};
|
|
34
|
+
instanceTypeName = "entity-storage-authentication-account-admin-service";
|
|
35
|
+
}
|
|
36
|
+
else if (instanceConfig.type === AuthenticationAccountAdminComponentType.RestClient) {
|
|
37
|
+
createComponent = (createConfig) => new EntityStorageAuthenticationAccountAdminRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
|
|
38
|
+
instanceTypeName = "entity-storage-authentication-account-admin-rest-client";
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
createComponent: createComponent,
|
|
42
|
+
instanceTypeName,
|
|
43
|
+
factory: ComponentFactory
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=authenticationAccountAdmin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticationAccountAdmin.js","sources":["../../../src/components/authenticationAccountAdmin.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,iDAAiD,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,8CAA8C,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAMjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,yCAAyC,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EACN,kCAAkC,EAClC,mCAAmC,EACnC,0CAA0C,EAC1C,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,uCAAuC,EAAE,MAAM,4DAA4D,CAAC;AAErH;;;;;;GAMG;AACH,MAAM,UAAU,6CAA6C,CAC5D,UAA4C,EAC5C,OAAgD,EAChD,cAAyD;IAEzD,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,uCAAuC,CAAC,aAAa,EAAE,CAAC;QACnF,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,kCAAkC,CACjC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAClD,CAAC;YACF,mCAAmC,CAClC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,6BAA6B,CACnD,CAAC;YACF,4FAA4F;YAC5F,0CAA0C,CACzC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAC1D,CAAC;YACF,6EAA6E;YAC7E,yCAAyC,CACxC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAC3C,CAAC;YACF,OAAO,IAAI,8CAA8C,CACxD,gBAAgB,CAAC,WAAW,CAC3B;gBACC,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;gBAChF,6BAA6B,EAAE,UAAU,CAAC,yBAAyB,CAClE,6BAA6B,CAC7B;aACD,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,qDAAqD,CAAC;IAC1E,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,uCAAuC,CAAC,UAAU,EAAE,CAAC;QACvF,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,iDAAiD,CACpD,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,GAAG,yDAAyD,CAAC;IAC9E,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationAccountAdminRestClient } from \"@3sixty/api-auth-account-rest-client\";\nimport { EntityStorageAuthenticationAccountAdminService } from \"@3sixty/api-auth-account-service\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport { initialiseAuthenticationUserEntityStorage } from \"./authentication.js\";\nimport {\n\tinitialiseAccountDataEntityStorage,\n\tinitialiseOrganizationEntityStorage,\n\tinitialiseOrganizationRequestEntityStorage\n} from \"./authenticationAccount.js\";\nimport type { AuthenticationAccountAdminComponentConfig } from \"../models/config/authenticationAccountAdminComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationAccountAdminComponentType } from \"../models/types/authenticationAccountAdminComponentType.js\";\n\n/**\n * Initialise the authentication account admin component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAuthenticationAccountAdminComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationAccountAdminComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationAccountAdminComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationAccountAdminComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAccountDataEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.accountDataEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationEntityStorageType\n\t\t\t);\n\t\t\t// Removing an identity removes its pending requests, and an identity import completes them.\n\t\t\tinitialiseOrganizationRequestEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationRequestEntityStorageType\n\t\t\t);\n\t\t\t// The accounts are looked up to check one exists before its data is changed.\n\t\t\tinitialiseAuthenticationUserEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.userEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationAccountAdminService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\"),\n\t\t\t\t\t\tidentityComponentType: engineCore.getRegisteredInstanceType(\"identityComponent\"),\n\t\t\t\t\t\tauthenticationRateServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationRateComponent\"\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = \"entity-storage-authentication-account-admin-service\";\n\t} else if (instanceConfig.type === AuthenticationAccountAdminComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageAuthenticationAccountAdminRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"entity-storage-authentication-account-admin-rest-client\";\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Copyright 2024 IOTA Stiftung.
|
|
2
|
+
// Copyright 2026 3Sixty Trade Ltd.
|
|
2
3
|
// SPDX-License-Identifier: Apache-2.0.
|
|
3
|
-
import { EntityStorageAuthenticationAdminService
|
|
4
|
-
import { ContextIdHelper, ContextIdKeys } from "@3sixty/context";
|
|
4
|
+
import { EntityStorageAuthenticationAdminService } from "@3sixty/api-auth-entity-storage-service";
|
|
5
5
|
import { ComponentFactory } from "@3sixty/core";
|
|
6
|
-
import { EngineTypeHelper
|
|
6
|
+
import { EngineTypeHelper } from "@3sixty/engine-types";
|
|
7
|
+
import { initialiseAuthenticationPasswordResetEntityStorage, initialiseAuthenticationUserEntityStorage } from "./authentication.js";
|
|
7
8
|
import { AuthenticationAdminComponentType } from "../models/types/authenticationAdminComponentType.js";
|
|
8
9
|
/**
|
|
9
10
|
* Initialise the authentication admin.
|
|
@@ -17,13 +18,14 @@ export function initialiseAuthenticationAdminComponent(engineCore, context, inst
|
|
|
17
18
|
let instanceTypeName;
|
|
18
19
|
if (instanceConfig.type === AuthenticationAdminComponentType.EntityStorage) {
|
|
19
20
|
createComponent = (createConfig) => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
ContextIdKeys.Tenant
|
|
24
|
-
]));
|
|
21
|
+
initialiseAuthenticationUserEntityStorage(engineCore, context, createConfig.options?.userEntityStorageType);
|
|
22
|
+
// The password reset tokens of a removed account are removed with it.
|
|
23
|
+
initialiseAuthenticationPasswordResetEntityStorage(engineCore, context, createConfig.options?.passwordResetEntityStorageType);
|
|
25
24
|
return new EntityStorageAuthenticationAdminService(EngineTypeHelper.mergeConfig({
|
|
26
|
-
authenticationAuditServiceType: engineCore.
|
|
25
|
+
authenticationAuditServiceType: engineCore.getRegisteredInstanceType("authenticationAuditComponent"),
|
|
26
|
+
authenticationAccountAdminComponentType: engineCore.getRegisteredInstanceType("authenticationAccountAdminComponent"),
|
|
27
|
+
organizationRequestAdminComponentType: engineCore.getRegisteredInstanceType("organizationRequestAdminComponent"),
|
|
28
|
+
authorizationComponentType: engineCore.getRegisteredInstanceType("authorizationComponent")
|
|
27
29
|
}, createConfig.options));
|
|
28
30
|
};
|
|
29
31
|
instanceTypeName = "entity-storage-authentication-admin-service";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticationAdmin.js","sources":["../../../src/components/authenticationAdmin.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"authenticationAdmin.js","sources":["../../../src/components/authenticationAdmin.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,uCAAuC,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACN,kDAAkD,EAClD,yCAAyC,EACzC,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AAEvG;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CACrD,UAA4C,EAC5C,OAAgD,EAChD,cAAkD;IAElD,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,gCAAgC,CAAC,aAAa,EAAE,CAAC;QAC5E,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,yCAAyC,CACxC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAC3C,CAAC;YACF,sEAAsE;YACtE,kDAAkD,CACjD,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,8BAA8B,CACpD,CAAC;YACF,OAAO,IAAI,uCAAuC,CACjD,gBAAgB,CAAC,WAAW,CAC3B;gBACC,8BAA8B,EAAE,UAAU,CAAC,yBAAyB,CACnE,8BAA8B,CAC9B;gBACD,uCAAuC,EAAE,UAAU,CAAC,yBAAyB,CAC5E,qCAAqC,CACrC;gBACD,qCAAqC,EAAE,UAAU,CAAC,yBAAyB,CAC1E,mCAAmC,CACnC;gBACD,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;aAC/D,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,6CAA6C,CAAC;IAClE,CAAC;IAED,OAAO;QACN,eAAe;QACf,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationAdminService } from \"@3sixty/api-auth-entity-storage-service\";\nimport { ComponentFactory } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport {\n\tinitialiseAuthenticationPasswordResetEntityStorage,\n\tinitialiseAuthenticationUserEntityStorage\n} from \"./authentication.js\";\nimport type { AuthenticationAdminComponentConfig } from \"../models/config/authenticationAdminComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationAdminComponentType } from \"../models/types/authenticationAdminComponentType.js\";\n\n/**\n * Initialise the authentication admin.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAuthenticationAdminComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationAdminComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationAdminComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationAdminComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAuthenticationUserEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.userEntityStorageType\n\t\t\t);\n\t\t\t// The password reset tokens of a removed account are removed with it.\n\t\t\tinitialiseAuthenticationPasswordResetEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.passwordResetEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationAdminService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tauthenticationAuditServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAuditComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tauthenticationAccountAdminComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAccountAdminComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\torganizationRequestAdminComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"organizationRequestAdminComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = \"entity-storage-authentication-admin-service\";\n\t}\n\n\treturn {\n\t\tcreateComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Copyright 2026 3Sixty Trade Ltd.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0.
|
|
3
|
+
import { EntityStorageAuthenticationProviderConnector } from "@3sixty/api-auth-connector-entity-storage";
|
|
4
|
+
import { AuthenticationProviderFactory } from "@3sixty/api-auth-models";
|
|
5
|
+
import { GoogleOAuthProviderConnector } from "@3sixty/api-auth-oauth-connector-google";
|
|
6
|
+
import { MicrosoftOAuthProviderConnector } from "@3sixty/api-auth-oauth-connector-microsoft";
|
|
7
|
+
import { EngineTypeHelper } from "@3sixty/engine-types";
|
|
8
|
+
import { initialiseAuthenticationUserEntityStorage } from "./authentication.js";
|
|
9
|
+
import { AuthenticationProviderType } from "../models/types/authenticationProviderType.js";
|
|
10
|
+
/**
|
|
11
|
+
* Initialise an authentication provider, registered under its authentication provider id.
|
|
12
|
+
* @param engineCore The engine core.
|
|
13
|
+
* @param context The context for the engine.
|
|
14
|
+
* @param instanceConfig The instance config.
|
|
15
|
+
* @returns The instance created and the factory for it.
|
|
16
|
+
*/
|
|
17
|
+
export function initialiseAuthenticationProvider(engineCore, context, instanceConfig) {
|
|
18
|
+
let createComponent;
|
|
19
|
+
let instanceTypeName;
|
|
20
|
+
if (instanceConfig.type === AuthenticationProviderType.EntityStorage) {
|
|
21
|
+
createComponent = (createConfig) => {
|
|
22
|
+
initialiseAuthenticationUserEntityStorage(engineCore, context, createConfig.options?.userEntityStorageType);
|
|
23
|
+
return new EntityStorageAuthenticationProviderConnector(EngineTypeHelper.mergeConfig(createConfig.options));
|
|
24
|
+
};
|
|
25
|
+
instanceTypeName = EntityStorageAuthenticationProviderConnector.NAMESPACE;
|
|
26
|
+
}
|
|
27
|
+
else if (instanceConfig.type === AuthenticationProviderType.Google) {
|
|
28
|
+
createComponent = (createConfig) => new GoogleOAuthProviderConnector(createConfig.options);
|
|
29
|
+
instanceTypeName = GoogleOAuthProviderConnector.NAMESPACE;
|
|
30
|
+
}
|
|
31
|
+
else if (instanceConfig.type === AuthenticationProviderType.Microsoft) {
|
|
32
|
+
createComponent = (createConfig) => new MicrosoftOAuthProviderConnector(createConfig.options);
|
|
33
|
+
instanceTypeName = MicrosoftOAuthProviderConnector.NAMESPACE;
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
createComponent: createComponent,
|
|
37
|
+
instanceTypeName,
|
|
38
|
+
factory: AuthenticationProviderFactory
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=authenticationProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticationProvider.js","sources":["../../../src/components/authenticationProvider.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,4CAA4C,EAAE,MAAM,2CAA2C,CAAC;AACzG,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAO7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,yCAAyC,EAAE,MAAM,qBAAqB,CAAC;AAGhF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAE3F;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAC/C,UAA4C,EAC5C,OAAgD,EAChD,cAA4C;IAE5C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,0BAA0B,CAAC,aAAa,EAAE,CAAC;QACtE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,yCAAyC,CACxC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAC3C,CAAC;YACF,OAAO,IAAI,4CAA4C,CACtD,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,4CAA4C,CAAC,SAAS,CAAC;IAC3E,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,0BAA0B,CAAC,MAAM,EAAE,CAAC;QACtE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,4BAA4B,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACxD,gBAAgB,GAAG,4BAA4B,CAAC,SAAS,CAAC;IAC3D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,0BAA0B,CAAC,SAAS,EAAE,CAAC;QACzE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,+BAA+B,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3D,gBAAgB,GAAG,+BAA+B,CAAC,SAAS,CAAC;IAC9D,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,6BAA6B;KACtC,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationProviderConnector } from \"@3sixty/api-auth-connector-entity-storage\";\nimport { AuthenticationProviderFactory } from \"@3sixty/api-auth-models\";\nimport { GoogleOAuthProviderConnector } from \"@3sixty/api-auth-oauth-connector-google\";\nimport { MicrosoftOAuthProviderConnector } from \"@3sixty/api-auth-oauth-connector-microsoft\";\nimport type { IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\nimport { initialiseAuthenticationUserEntityStorage } from \"./authentication.js\";\nimport type { AuthenticationProviderConfig } from \"../models/config/authenticationProviderConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationProviderType } from \"../models/types/authenticationProviderType.js\";\n\n/**\n * Initialise an authentication provider, registered under its authentication provider id.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAuthenticationProvider(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationProviderConfig\n): EngineTypeInitialiserReturn<AuthenticationProviderConfig, typeof AuthenticationProviderFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationProviderType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAuthenticationUserEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.userEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationProviderConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = EntityStorageAuthenticationProviderConnector.NAMESPACE;\n\t} else if (instanceConfig.type === AuthenticationProviderType.Google) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew GoogleOAuthProviderConnector(createConfig.options);\n\t\tinstanceTypeName = GoogleOAuthProviderConnector.NAMESPACE;\n\t} else if (instanceConfig.type === AuthenticationProviderType.Microsoft) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew MicrosoftOAuthProviderConnector(createConfig.options);\n\t\tinstanceTypeName = MicrosoftOAuthProviderConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: AuthenticationProviderFactory\n\t};\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Copyright 2026 3Sixty Trade Ltd.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0.
|
|
3
|
+
import { OAuthService } from "@3sixty/api-auth-oauth-service";
|
|
4
|
+
import { ComponentFactory } from "@3sixty/core";
|
|
5
|
+
import { EngineTypeHelper } from "@3sixty/engine-types";
|
|
6
|
+
import { OAuthComponentType } from "../models/types/oauthComponentType.js";
|
|
7
|
+
/**
|
|
8
|
+
* Initialise the OAuth sign in component.
|
|
9
|
+
* @param engineCore The engine core.
|
|
10
|
+
* @param context The context for the engine.
|
|
11
|
+
* @param instanceConfig The instance config.
|
|
12
|
+
* @returns The instance created and the factory for it.
|
|
13
|
+
*/
|
|
14
|
+
export function initialiseOAuthComponent(engineCore, context, instanceConfig) {
|
|
15
|
+
let createComponent;
|
|
16
|
+
let instanceTypeName;
|
|
17
|
+
if (instanceConfig.type === OAuthComponentType.Service) {
|
|
18
|
+
createComponent = (createConfig) => new OAuthService(EngineTypeHelper.mergeConfig({
|
|
19
|
+
authenticationComponentType: engineCore.getRegisteredInstanceType("authenticationComponent"),
|
|
20
|
+
loggingComponentType: engineCore.getRegisteredSilencedType("logging", "OAuthService"),
|
|
21
|
+
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
22
|
+
config: createConfig.options.config
|
|
23
|
+
}, createConfig.options));
|
|
24
|
+
instanceTypeName = "o-auth-service";
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
createComponent,
|
|
28
|
+
instanceTypeName,
|
|
29
|
+
factory: ComponentFactory
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=oauth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.js","sources":["../../../src/components/oauth.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACvC,UAA4C,EAC5C,OAAgD,EAChD,cAAoC;IAEpC,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,kBAAkB,CAAC,OAAO,EAAE,CAAC;QACxD,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,YAAY,CACf,gBAAgB,CAAC,WAAW,CAC3B;YACC,2BAA2B,EAC1B,UAAU,CAAC,yBAAyB,CAAC,yBAAyB,CAAC;YAChE,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CACzD,SAAS,EACT,cAAc,CACd;YACD,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;YAC1E,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM;SACnC,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,gBAAgB,GAAG,gBAAgB,CAAC;IACrC,CAAC;IAED,OAAO;QACN,eAAe;QACf,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { OAuthService } from \"@3sixty/api-auth-oauth-service\";\nimport { ComponentFactory } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport type { OAuthComponentConfig } from \"../models/config/oauthComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { OAuthComponentType } from \"../models/types/oauthComponentType.js\";\n\n/**\n * Initialise the OAuth sign in component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseOAuthComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: OAuthComponentConfig\n): EngineTypeInitialiserReturn<OAuthComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === OAuthComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew OAuthService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tauthenticationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authenticationComponent\"),\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredSilencedType(\n\t\t\t\t\t\t\t\"logging\",\n\t\t\t\t\t\t\t\"OAuthService\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\"),\n\t\t\t\t\t\tconfig: createConfig.options.config\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\tinstanceTypeName = \"o-auth-service\";\n\t}\n\n\treturn {\n\t\tcreateComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright 2026 3Sixty Trade Ltd.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0.
|
|
3
|
+
import { OrganizationRestClient } from "@3sixty/api-auth-account-rest-client";
|
|
4
|
+
import { EntityStorageOrganizationService } from "@3sixty/api-auth-account-service";
|
|
5
|
+
import { ComponentFactory } from "@3sixty/core";
|
|
6
|
+
import { EngineTypeHelper } from "@3sixty/engine-types";
|
|
7
|
+
import { initialiseAccountDataEntityStorage, initialiseOrganizationEntityStorage, initialiseOrganizationRequestEntityStorage } from "./authenticationAccount.js";
|
|
8
|
+
import { OrganizationComponentType } from "../models/types/organizationComponentType.js";
|
|
9
|
+
/**
|
|
10
|
+
* Initialise the organization component.
|
|
11
|
+
* @param engineCore The engine core.
|
|
12
|
+
* @param context The context for the engine.
|
|
13
|
+
* @param instanceConfig The instance config.
|
|
14
|
+
* @returns The instance created and the factory for it.
|
|
15
|
+
*/
|
|
16
|
+
export function initialiseOrganizationComponent(engineCore, context, instanceConfig) {
|
|
17
|
+
let createComponent;
|
|
18
|
+
let instanceTypeName;
|
|
19
|
+
if (instanceConfig.type === OrganizationComponentType.EntityStorage) {
|
|
20
|
+
createComponent = (createConfig) => {
|
|
21
|
+
initialiseOrganizationEntityStorage(engineCore, context, createConfig.options?.organizationEntityStorageType);
|
|
22
|
+
initialiseAccountDataEntityStorage(engineCore, context, createConfig.options?.accountDataEntityStorageType);
|
|
23
|
+
// The pending requests to join an organization are rejected when it is removed.
|
|
24
|
+
initialiseOrganizationRequestEntityStorage(engineCore, context, createConfig.options?.organizationRequestEntityStorageType);
|
|
25
|
+
return new EntityStorageOrganizationService(EngineTypeHelper.mergeConfig({
|
|
26
|
+
identityComponentType: engineCore.getRegisteredInstanceType("identityComponent"),
|
|
27
|
+
authorizationComponentType: engineCore.getRegisteredInstanceType("authorizationComponent"),
|
|
28
|
+
authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent")
|
|
29
|
+
}, createConfig.options));
|
|
30
|
+
};
|
|
31
|
+
instanceTypeName = "entity-storage-organization-service";
|
|
32
|
+
}
|
|
33
|
+
else if (instanceConfig.type === OrganizationComponentType.RestClient) {
|
|
34
|
+
createComponent = (createConfig) => new OrganizationRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
|
|
35
|
+
instanceTypeName = "organization-rest-client";
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
createComponent: createComponent,
|
|
39
|
+
instanceTypeName,
|
|
40
|
+
factory: ComponentFactory
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=organization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization.js","sources":["../../../src/components/organization.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAMjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACN,kCAAkC,EAClC,mCAAmC,EACnC,0CAA0C,EAC1C,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AAEzF;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAC9C,UAA4C,EAC5C,OAAgD,EAChD,cAA2C;IAE3C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,yBAAyB,CAAC,aAAa,EAAE,CAAC;QACrE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,mCAAmC,CAClC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,6BAA6B,CACnD,CAAC;YACF,kCAAkC,CACjC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAClD,CAAC;YACF,gFAAgF;YAChF,0CAA0C,CACzC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAC1D,CAAC;YACF,OAAO,IAAI,gCAAgC,CAC1C,gBAAgB,CAAC,WAAW,CAC3B;gBACC,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;gBAChF,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,6BAA6B,EAAE,UAAU,CAAC,yBAAyB,CAClE,6BAA6B,CAC7B;aACD,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,qCAAqC,CAAC;IAC1D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,yBAAyB,CAAC,UAAU,EAAE,CAAC;QACzE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,sBAAsB,CACzB,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,GAAG,0BAA0B,CAAC;IAC/C,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { OrganizationRestClient } from \"@3sixty/api-auth-account-rest-client\";\nimport { EntityStorageOrganizationService } from \"@3sixty/api-auth-account-service\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport {\n\tinitialiseAccountDataEntityStorage,\n\tinitialiseOrganizationEntityStorage,\n\tinitialiseOrganizationRequestEntityStorage\n} from \"./authenticationAccount.js\";\nimport type { OrganizationComponentConfig } from \"../models/config/organizationComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { OrganizationComponentType } from \"../models/types/organizationComponentType.js\";\n\n/**\n * Initialise the organization component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseOrganizationComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: OrganizationComponentConfig\n): EngineTypeInitialiserReturn<OrganizationComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === OrganizationComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseOrganizationEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationEntityStorageType\n\t\t\t);\n\t\t\tinitialiseAccountDataEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.accountDataEntityStorageType\n\t\t\t);\n\t\t\t// The pending requests to join an organization are rejected when it is removed.\n\t\t\tinitialiseOrganizationRequestEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationRequestEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageOrganizationService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tidentityComponentType: engineCore.getRegisteredInstanceType(\"identityComponent\"),\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\"),\n\t\t\t\t\t\tauthenticationRateServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationRateComponent\"\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = \"entity-storage-organization-service\";\n\t} else if (instanceConfig.type === OrganizationComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew OrganizationRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"organization-rest-client\";\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Copyright 2026 3Sixty Trade Ltd.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0.
|
|
3
|
+
import { OrganizationRequestAdminRestClient } from "@3sixty/api-auth-account-rest-client";
|
|
4
|
+
import { EntityStorageOrganizationRequestAdminService } from "@3sixty/api-auth-account-service";
|
|
5
|
+
import { ComponentFactory } from "@3sixty/core";
|
|
6
|
+
import { EngineTypeHelper } from "@3sixty/engine-types";
|
|
7
|
+
import { initialiseAccountDataEntityStorage, initialiseOrganizationEntityStorage, initialiseOrganizationRequestEntityStorage } from "./authenticationAccount.js";
|
|
8
|
+
import { OrganizationRequestAdminComponentType } from "../models/types/organizationRequestAdminComponentType.js";
|
|
9
|
+
/**
|
|
10
|
+
* Initialise the organization request admin component.
|
|
11
|
+
* @param engineCore The engine core.
|
|
12
|
+
* @param context The context for the engine.
|
|
13
|
+
* @param instanceConfig The instance config.
|
|
14
|
+
* @returns The instance created and the factory for it.
|
|
15
|
+
*/
|
|
16
|
+
export function initialiseOrganizationRequestAdminComponent(engineCore, context, instanceConfig) {
|
|
17
|
+
let createComponent;
|
|
18
|
+
let instanceTypeName;
|
|
19
|
+
if (instanceConfig.type === OrganizationRequestAdminComponentType.EntityStorage) {
|
|
20
|
+
createComponent = (createConfig) => {
|
|
21
|
+
initialiseAccountDataEntityStorage(engineCore, context, createConfig.options?.accountDataEntityStorageType);
|
|
22
|
+
initialiseOrganizationRequestEntityStorage(engineCore, context, createConfig.options?.organizationRequestEntityStorageType);
|
|
23
|
+
initialiseOrganizationEntityStorage(engineCore, context, createConfig.options?.organizationEntityStorageType);
|
|
24
|
+
return new EntityStorageOrganizationRequestAdminService(EngineTypeHelper.mergeConfig({
|
|
25
|
+
identityComponentType: engineCore.getRegisteredInstanceType("identityComponent"),
|
|
26
|
+
authorizationComponentType: engineCore.getRegisteredInstanceType("authorizationComponent")
|
|
27
|
+
}, createConfig.options));
|
|
28
|
+
};
|
|
29
|
+
instanceTypeName = "entity-storage-organization-request-admin-service";
|
|
30
|
+
}
|
|
31
|
+
else if (instanceConfig.type === OrganizationRequestAdminComponentType.RestClient) {
|
|
32
|
+
createComponent = (createConfig) => new OrganizationRequestAdminRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
|
|
33
|
+
instanceTypeName = "organization-request-admin-rest-client";
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
createComponent: createComponent,
|
|
37
|
+
instanceTypeName,
|
|
38
|
+
factory: ComponentFactory
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=organizationRequestAdmin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organizationRequestAdmin.js","sources":["../../../src/components/organizationRequestAdmin.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,4CAA4C,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAMjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACN,kCAAkC,EAClC,mCAAmC,EACnC,0CAA0C,EAC1C,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,qCAAqC,EAAE,MAAM,0DAA0D,CAAC;AAEjH;;;;;;GAMG;AACH,MAAM,UAAU,2CAA2C,CAC1D,UAA4C,EAC5C,OAAgD,EAChD,cAAuD;IAEvD,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,qCAAqC,CAAC,aAAa,EAAE,CAAC;QACjF,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,kCAAkC,CACjC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAClD,CAAC;YACF,0CAA0C,CACzC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAC1D,CAAC;YACF,mCAAmC,CAClC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,6BAA6B,CACnD,CAAC;YACF,OAAO,IAAI,4CAA4C,CACtD,gBAAgB,CAAC,WAAW,CAC3B;gBACC,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;gBAChF,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;aAC/D,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,mDAAmD,CAAC;IACxE,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,qCAAqC,CAAC,UAAU,EAAE,CAAC;QACrF,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,kCAAkC,CACrC,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,GAAG,wCAAwC,CAAC;IAC7D,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { OrganizationRequestAdminRestClient } from \"@3sixty/api-auth-account-rest-client\";\nimport { EntityStorageOrganizationRequestAdminService } from \"@3sixty/api-auth-account-service\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport {\n\tinitialiseAccountDataEntityStorage,\n\tinitialiseOrganizationEntityStorage,\n\tinitialiseOrganizationRequestEntityStorage\n} from \"./authenticationAccount.js\";\nimport type { OrganizationRequestAdminComponentConfig } from \"../models/config/organizationRequestAdminComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { OrganizationRequestAdminComponentType } from \"../models/types/organizationRequestAdminComponentType.js\";\n\n/**\n * Initialise the organization request admin component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseOrganizationRequestAdminComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: OrganizationRequestAdminComponentConfig\n): EngineTypeInitialiserReturn<OrganizationRequestAdminComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === OrganizationRequestAdminComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAccountDataEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.accountDataEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationRequestEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationRequestEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageOrganizationRequestAdminService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tidentityComponentType: engineCore.getRegisteredInstanceType(\"identityComponent\"),\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = \"entity-storage-organization-request-admin-service\";\n\t} else if (instanceConfig.type === OrganizationRequestAdminComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew OrganizationRequestAdminRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"organization-request-admin-rest-client\";\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
// Copyright 2024 IOTA Stiftung.
|
|
2
|
+
// Copyright 2026 3Sixty Trade Ltd.
|
|
2
3
|
// SPDX-License-Identifier: Apache-2.0.
|
|
3
|
-
import {
|
|
4
|
+
import { AuthenticationAccountProcessor } from "@3sixty/api-auth-account-service";
|
|
5
|
+
import { AuthHeaderProcessor } from "@3sixty/api-auth-entity-storage-service";
|
|
4
6
|
import { TenantOverrideProcessor } from "@3sixty/api-auth-service";
|
|
5
7
|
import { RestRouteProcessorFactory } from "@3sixty/api-models";
|
|
6
|
-
import { ContextIdProcessor, LoggingProcessor, RestRouteProcessor, StaticContextIdProcessor } from "@3sixty/api-processors";
|
|
8
|
+
import { ContextIdProcessor, LoggingProcessor, OriginCheckProcessor, RestRouteProcessor, StaticContextIdProcessor } from "@3sixty/api-processors";
|
|
7
9
|
import { TenantProcessor, SingleTenantProcessor } from "@3sixty/api-tenant-processor";
|
|
8
10
|
import { AuthorizationRouteProcessor } from "@3sixty/authorization-service";
|
|
9
|
-
import {
|
|
10
|
-
import { EngineTypeHelper, initialiseEntityStorageConnector } from "@3sixty/engine-types";
|
|
11
|
+
import { EngineTypeHelper } from "@3sixty/engine-types";
|
|
11
12
|
import { MetricsRouteProcessor } from "@3sixty/telemetry-processors";
|
|
12
13
|
import { TracingRouteProcessor } from "@3sixty/tracing-processors";
|
|
14
|
+
import { initialiseAuthenticationUserEntityStorage } from "./authentication.js";
|
|
15
|
+
import { initialiseAccountDataEntityStorage } from "./authenticationAccount.js";
|
|
13
16
|
import { RestRouteProcessorType } from "../models/types/restRouteProcessorType.js";
|
|
14
17
|
/**
|
|
15
18
|
* Initialise the rest route processor.
|
|
@@ -23,11 +26,7 @@ export function initialiseRestRouteProcessorComponent(engineCore, context, insta
|
|
|
23
26
|
let instanceTypeName;
|
|
24
27
|
if (instanceConfig.type === RestRouteProcessorType.AuthHeader) {
|
|
25
28
|
createComponent = (createConfig) => {
|
|
26
|
-
|
|
27
|
-
initialiseEntityStorageConnector(engineCore, context, createConfig.options?.userEntityStorageType, "AuthenticationUser", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
|
|
28
|
-
ContextIdKeys.Node,
|
|
29
|
-
ContextIdKeys.Tenant
|
|
30
|
-
]));
|
|
29
|
+
initialiseAuthenticationUserEntityStorage(engineCore, context, createConfig.options?.userEntityStorageType);
|
|
31
30
|
return new AuthHeaderProcessor(EngineTypeHelper.mergeConfig({
|
|
32
31
|
vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
|
|
33
32
|
tenantAdminComponentType: engineCore.getRegisteredInstanceTypeOptional("tenantAdminComponent")
|
|
@@ -39,6 +38,13 @@ export function initialiseRestRouteProcessorComponent(engineCore, context, insta
|
|
|
39
38
|
};
|
|
40
39
|
instanceTypeName = "auth-header-processor";
|
|
41
40
|
}
|
|
41
|
+
else if (instanceConfig.type === RestRouteProcessorType.AuthenticationAccount) {
|
|
42
|
+
createComponent = (createConfig) => {
|
|
43
|
+
initialiseAccountDataEntityStorage(engineCore, context, createConfig.options?.accountDataEntityStorageType);
|
|
44
|
+
return new AuthenticationAccountProcessor(EngineTypeHelper.mergeConfig(createConfig.options));
|
|
45
|
+
};
|
|
46
|
+
instanceTypeName = "authentication-account-processor";
|
|
47
|
+
}
|
|
42
48
|
else if (instanceConfig.type === RestRouteProcessorType.Logging) {
|
|
43
49
|
createComponent = (createConfig) => new LoggingProcessor(EngineTypeHelper.mergeConfig({
|
|
44
50
|
loggingComponentType: engineCore.getRegisteredSilencedType("logging", "LoggingProcessor")
|
|
@@ -111,6 +117,10 @@ export function initialiseRestRouteProcessorComponent(engineCore, context, insta
|
|
|
111
117
|
}, createConfig.options));
|
|
112
118
|
instanceTypeName = "authorization-route-processor";
|
|
113
119
|
}
|
|
120
|
+
else if (instanceConfig.type === RestRouteProcessorType.OriginCheck) {
|
|
121
|
+
createComponent = (createConfig) => new OriginCheckProcessor(EngineTypeHelper.mergeConfig(createConfig.options));
|
|
122
|
+
instanceTypeName = "origin-check-processor";
|
|
123
|
+
}
|
|
114
124
|
return {
|
|
115
125
|
createComponent: createComponent,
|
|
116
126
|
instanceTypeName,
|