ldap-rest 2.0.3 → 2.0.4
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/lib/entitySchema/validator.js +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/plugins/auth/authzDynamic.js +1 -1
- package/dist/plugins/auth/trustedProxy.js +1 -1
- package/dist/plugins/ldap/departmentSync.js +1 -1
- package/dist/plugins/scim/baseResolver.js +1 -1
- package/dist/src/abstract/ldapFlat.d.ts +6 -6
- package/dist/src/abstract/plugin.d.ts +11 -11
- package/dist/src/abstract/twakePlugin.d.ts +4 -4
- package/dist/src/bin/index.d.ts +10 -10
- package/dist/src/browser/ldap-browser/LdapBrowser.d.ts +1 -1
- package/dist/src/browser/ldap-browser/api/RawApiClient.d.ts +1 -1
- package/dist/src/browser/ldap-browser/components/EntryTree.d.ts +2 -2
- package/dist/src/browser/ldap-browser/components/EntryView.d.ts +2 -2
- package/dist/src/browser/ldap-browser/index.d.ts +4 -5
- package/dist/src/browser/ldap-browser/schema.d.ts +1 -1
- package/dist/src/browser/ldap-group-editor/LdapGroupEditor.d.ts +2 -2
- package/dist/src/browser/ldap-group-editor/api/GroupApiClient.d.ts +1 -1
- package/dist/src/browser/ldap-group-editor/components/CreateGroupModal.d.ts +2 -2
- package/dist/src/browser/ldap-group-editor/components/GroupPropertyEditor.d.ts +1 -1
- package/dist/src/browser/ldap-group-editor/components/MoveGroupModal.d.ts +1 -1
- package/dist/src/browser/ldap-group-editor/types.d.ts +1 -1
- package/dist/src/browser/ldap-resource-editor/api/ResourceApiClient.d.ts +2 -2
- package/dist/src/browser/ldap-resource-editor/index.d.ts +2 -2
- package/dist/src/browser/ldap-resource-editor/types.d.ts +1 -1
- package/dist/src/browser/ldap-tree-viewer/LdapTreeViewer.d.ts +1 -1
- package/dist/src/browser/ldap-tree-viewer/components/TreeNode.d.ts +2 -2
- package/dist/src/browser/ldap-tree-viewer/components/TreeRoot.d.ts +2 -2
- package/dist/src/browser/ldap-tree-viewer/index.d.ts +2 -3
- package/dist/src/browser/ldap-tree-viewer/store/actions.d.ts +2 -2
- package/dist/src/browser/ldap-tree-viewer/store/reducers.d.ts +2 -2
- package/dist/src/browser/ldap-unit-editor/LdapUnitEditor.d.ts +1 -1
- package/dist/src/browser/ldap-unit-editor/api/UnitApiClient.d.ts +1 -1
- package/dist/src/browser/ldap-unit-editor/components/MoveUnitModal.d.ts +1 -1
- package/dist/src/browser/ldap-unit-editor/components/UnitPropertyEditor.d.ts +1 -1
- package/dist/src/browser/ldap-unit-editor/types.d.ts +1 -1
- package/dist/src/browser/ldap-user-editor/LdapUserEditor.d.ts +2 -2
- package/dist/src/browser/ldap-user-editor/api/UserApiClient.d.ts +2 -2
- package/dist/src/browser/ldap-user-editor/components/MoveUserModal.d.ts +1 -1
- package/dist/src/browser/ldap-user-editor/components/PointerField.d.ts +2 -2
- package/dist/src/browser/ldap-user-editor/components/UserEditor.d.ts +1 -1
- package/dist/src/browser/ldap-user-editor/components/UserList.d.ts +1 -1
- package/dist/src/browser/ldap-user-editor/components/UserTree.d.ts +1 -1
- package/dist/src/browser/ldap-user-editor/index.d.ts +2 -3
- package/dist/src/browser/ldap-user-editor/types.d.ts +1 -1
- package/dist/src/browser/shared/components/Modal.d.ts +1 -1
- package/dist/src/browser/shared/index.d.ts +7 -7
- package/dist/src/browser/shared/utils/form.d.ts +1 -1
- package/dist/src/browser/shared/utils/schema.d.ts +1 -1
- package/dist/src/config/args.d.ts +3 -3
- package/dist/src/config/options.d.ts +2 -2
- package/dist/src/config/schema.d.ts +1 -1
- package/dist/src/hooks.d.ts +5 -5
- package/dist/src/lib/auth/base.d.ts +2 -2
- package/dist/src/lib/authz/base.d.ts +6 -6
- package/dist/src/lib/authz/composition.d.ts +4 -4
- package/dist/src/lib/entitySchema/validator.d.ts +23 -2
- package/dist/src/lib/expressFormatedResponses.d.ts +1 -1
- package/dist/src/lib/health.d.ts +1 -1
- package/dist/src/lib/hookBus.d.ts +1 -1
- package/dist/src/lib/ldap/schema.d.ts +2 -2
- package/dist/src/lib/ldapActions.d.ts +5 -5
- package/dist/src/lib/mailDomains.d.ts +1 -1
- package/dist/src/lib/parseConfig.d.ts +1 -1
- package/dist/src/lib/schemaFile.d.ts +1 -1
- package/dist/src/lib/staticFiles.d.ts +1 -1
- package/dist/src/lib/storage/store.d.ts +1 -1
- package/dist/src/lib/utils.d.ts +3 -3
- package/dist/src/logger/winston.d.ts +1 -1
- package/dist/src/plugins/auth/auth.options.d.ts +39 -39
- package/dist/src/plugins/auth/authzDynamic.d.ts +24 -11
- package/dist/src/plugins/auth/authzLinid1.d.ts +7 -7
- package/dist/src/plugins/auth/authzPerBranch.d.ts +8 -8
- package/dist/src/plugins/auth/authzPerRoute.d.ts +2 -2
- package/dist/src/plugins/auth/authzScope.d.ts +1 -1
- package/dist/src/plugins/auth/crowdsec.d.ts +4 -4
- package/dist/src/plugins/auth/fake.d.ts +3 -3
- package/dist/src/plugins/auth/hmac.d.ts +4 -4
- package/dist/src/plugins/auth/llng.d.ts +20 -5
- package/dist/src/plugins/auth/openidconnect.d.ts +9 -9
- package/dist/src/plugins/auth/rateLimit.d.ts +3 -3
- package/dist/src/plugins/auth/token.d.ts +3 -3
- package/dist/src/plugins/auth/totp.d.ts +5 -5
- package/dist/src/plugins/auth/trustedProxy.d.ts +16 -32
- package/dist/src/plugins/bcl.d.ts +4 -4
- package/dist/src/plugins/bcl.options.d.ts +3 -3
- package/dist/src/plugins/configApi.d.ts +1 -1
- package/dist/src/plugins/demo/helloworld.d.ts +1 -1
- package/dist/src/plugins/ldap/accountLifecycle.d.ts +1 -1
- package/dist/src/plugins/ldap/bulkImport.d.ts +5 -5
- package/dist/src/plugins/ldap/departmentSync.d.ts +14 -3
- package/dist/src/plugins/ldap/enterpriseRules.d.ts +7 -7
- package/dist/src/plugins/ldap/externalUsersInGroups.d.ts +6 -6
- package/dist/src/plugins/ldap/flatGeneric.d.ts +6 -6
- package/dist/src/plugins/ldap/groups.d.ts +8 -8
- package/dist/src/plugins/ldap/ldap.options.d.ts +45 -45
- package/dist/src/plugins/ldap/onChange.d.ts +4 -4
- package/dist/src/plugins/ldap/organization.d.ts +1 -1
- package/dist/src/plugins/ldap/organizations.d.ts +12 -12
- package/dist/src/plugins/ldap/passwordPolicy.d.ts +11 -11
- package/dist/src/plugins/ldap/raw.d.ts +8 -8
- package/dist/src/plugins/ldap/trash.d.ts +6 -6
- package/dist/src/plugins/metrics.d.ts +3 -3
- package/dist/src/plugins/metrics.options.d.ts +3 -3
- package/dist/src/plugins/rabbitmq.d.ts +4 -4
- package/dist/src/plugins/rabbitmq.options.d.ts +3 -3
- package/dist/src/plugins/scim/baseResolver.d.ts +3 -3
- package/dist/src/plugins/scim/bulk.d.ts +7 -7
- package/dist/src/plugins/scim/discovery.d.ts +4 -4
- package/dist/src/plugins/scim/errors.d.ts +3 -3
- package/dist/src/plugins/scim/filter.d.ts +1 -1
- package/dist/src/plugins/scim/groups.d.ts +8 -8
- package/dist/src/plugins/scim/list.d.ts +1 -1
- package/dist/src/plugins/scim/mapping.d.ts +2 -2
- package/dist/src/plugins/scim/patch.d.ts +2 -2
- package/dist/src/plugins/scim/scim.d.ts +30 -30
- package/dist/src/plugins/scim/scim.options.d.ts +27 -27
- package/dist/src/plugins/scim/users.d.ts +6 -6
- package/dist/src/plugins/static.d.ts +6 -6
- package/dist/src/plugins/static.options.d.ts +6 -6
- package/dist/src/plugins/storage/file.d.ts +2 -2
- package/dist/src/plugins/storage/ldap.d.ts +2 -2
- package/dist/src/plugins/storage/postgres.d.ts +2 -2
- package/dist/src/plugins/storage/valkey.d.ts +2 -2
- package/dist/src/plugins/storage.d.ts +13 -13
- package/dist/src/plugins/storage.options.d.ts +11 -11
- package/dist/src/plugins/twake/appAccounts.options.d.ts +6 -6
- package/dist/src/plugins/twake/appAccountsApi.d.ts +7 -7
- package/dist/src/plugins/twake/appAccountsConsistency.d.ts +9 -9
- package/dist/src/plugins/twake/calendar.d.ts +14 -14
- package/dist/src/plugins/twake/calendar.options.d.ts +11 -11
- package/dist/src/plugins/twake/calendarResources.d.ts +1 -1
- package/dist/src/plugins/twake/cloudery.options.d.ts +18 -18
- package/dist/src/plugins/twake/clouderyProvision.d.ts +19 -19
- package/dist/src/plugins/twake/cozy.options.d.ts +14 -14
- package/dist/src/plugins/twake/cozyProvision.d.ts +15 -15
- package/dist/src/plugins/twake/drive.d.ts +9 -9
- package/dist/src/plugins/twake/drive.options.d.ts +7 -7
- package/dist/src/plugins/twake/groups.d.ts +16 -16
- package/dist/src/plugins/twake/instances.d.ts +38 -38
- package/dist/src/plugins/twake/james.d.ts +18 -18
- package/dist/src/plugins/twake/james.options.d.ts +13 -13
- package/dist/src/plugins/twake/lifecycleAttributes.d.ts +2 -2
- package/dist/src/plugins/twake/lifecycleEvents.d.ts +13 -13
- package/dist/src/plugins/twake/migrationProxy.d.ts +11 -11
- package/dist/src/plugins/twake/migrationProxy.options.d.ts +8 -8
- package/dist/src/plugins/twake/spaces.d.ts +12 -12
- package/dist/src/plugins/twake/tombstone.d.ts +10 -10
- package/dist/src/plugins/twake/twakeGroups.options.d.ts +12 -12
- package/dist/src/plugins/twake/twakeInstances.options.d.ts +35 -35
- package/dist/src/plugins/twake/twakeLifecycle.options.d.ts +12 -12
- package/dist/src/plugins/twake/twakeSpaces.options.d.ts +11 -11
- package/dist/src/plugins/twake/twakeTombstone.options.d.ts +9 -9
- package/dist/src/plugins/weblogs.d.ts +1 -1
- package/docs/client-development/schemas/README.md +6 -1
- package/docs/development/contracts.md +22 -0
- package/docs/presentations/en.md +1 -1
- package/docs/presentations/fr.md +1 -1
- package/docs/usage/plugins/auth/authz-dynamic.md +3 -1
- package/docs/usage/plugins/auth/trusted-proxy.md +11 -1
- package/docs/usage/upgrading.md +27 -0
- package/package.json +4 -3
- package/static/browser/ldap-user-editor.esm.js.map +1 -1
- package/static/browser/ldap-user-editor.js.map +1 -1
- package/static/browser/ldap-user-editor.min.js.map +1 -1
- package/static/browser/shared/utils/schema.js.map +1 -1
- package/static/browser/shared.esm.js.map +1 -1
- package/static/browser/shared.js.map +1 -1
- package/static/browser/shared.min.js.map +1 -1
|
@@ -6,20 +6,20 @@
|
|
|
6
6
|
* Supports user and group-based permissions with configurable defaults
|
|
7
7
|
* @group Plugins
|
|
8
8
|
*/
|
|
9
|
-
import type { DM } from '../../bin';
|
|
10
|
-
import type { Hooks } from '../../hooks';
|
|
11
|
-
import type { AuthConfig, BranchPermissions } from '../../config/args';
|
|
12
|
-
import type { DmRequest } from '../../lib/auth/base';
|
|
13
|
-
import AuthzBase from '../../lib/authz/base';
|
|
9
|
+
import type { DM } from '../../bin/index.js';
|
|
10
|
+
import type { Hooks } from '../../hooks.js';
|
|
11
|
+
import type { AuthConfig, BranchPermissions } from '../../config/args.js';
|
|
12
|
+
import type { DmRequest } from '../../lib/auth/base.js';
|
|
13
|
+
import AuthzBase from '../../lib/authz/base.js';
|
|
14
14
|
interface CachedGroups {
|
|
15
15
|
groups: string[];
|
|
16
16
|
timestamp: number;
|
|
17
17
|
}
|
|
18
18
|
export default class AuthzPerBranch extends AuthzBase {
|
|
19
19
|
static optionDefinitions: {
|
|
20
|
-
authz_per_branch_config: import("../../config/options").JsonOption<AuthConfig>;
|
|
21
|
-
authz_per_branch_cache_ttl: import("../../config/options").NumberOption;
|
|
22
|
-
ldap_group_member_attribute: import("../../config/options").StringOption;
|
|
20
|
+
authz_per_branch_config: import("../../config/options.js").JsonOption<AuthConfig>;
|
|
21
|
+
authz_per_branch_cache_ttl: import("../../config/options.js").NumberOption;
|
|
22
|
+
ldap_group_member_attribute: import("../../config/options.js").StringOption;
|
|
23
23
|
};
|
|
24
24
|
name: string;
|
|
25
25
|
authConfig?: AuthConfig;
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
* @author Xavier Guimard <xguimard@linagora.com>
|
|
9
9
|
*/
|
|
10
10
|
import type { Express } from 'express';
|
|
11
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
11
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
12
12
|
export declare function globToRegex(glob: string): RegExp;
|
|
13
13
|
export default class AuthzPerRoute extends DmPlugin {
|
|
14
14
|
static optionDefinitions: {
|
|
15
|
-
authz_per_route: import("../../config/options").ArrayOption;
|
|
15
|
+
authz_per_route: import("../../config/options.js").ArrayOption;
|
|
16
16
|
};
|
|
17
17
|
name: string;
|
|
18
18
|
roles: Role[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Express } from 'express';
|
|
2
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
2
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
3
3
|
export declare const ScopeResponse: import("@sinclair/typebox").TObject<{
|
|
4
4
|
user: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
|
|
5
5
|
unrestricted: import("@sinclair/typebox").TBoolean;
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
* @author Xavier Guimard <xguimard@linagora.com>
|
|
15
15
|
*/
|
|
16
16
|
import type { Express } from 'express';
|
|
17
|
-
import DmPlugin, { Role } from '../../abstract/plugin';
|
|
17
|
+
import DmPlugin, { Role } from '../../abstract/plugin.js';
|
|
18
18
|
export default class CrowdSec extends DmPlugin {
|
|
19
19
|
static optionDefinitions: {
|
|
20
|
-
crowdsec_url: import("../../config/options").StringOption;
|
|
21
|
-
crowdsec_api_key: import("../../config/options").StringOption;
|
|
22
|
-
crowdsec_cache_ttl: import("../../config/options").NumberOption;
|
|
20
|
+
crowdsec_url: import("../../config/options.js").StringOption;
|
|
21
|
+
crowdsec_api_key: import("../../config/options.js").StringOption;
|
|
22
|
+
crowdsec_cache_ttl: import("../../config/options.js").NumberOption;
|
|
23
23
|
};
|
|
24
24
|
name: string;
|
|
25
25
|
roles: Role[];
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
* @group Plugins
|
|
8
8
|
*/
|
|
9
9
|
import type { Response } from 'express';
|
|
10
|
-
import AuthBase, { type DmRequest } from '../../lib/auth/base';
|
|
11
|
-
import type { Role } from '../../abstract/plugin';
|
|
10
|
+
import AuthBase, { type DmRequest } from '../../lib/auth/base.js';
|
|
11
|
+
import type { Role } from '../../abstract/plugin.js';
|
|
12
12
|
export default class AuthFake extends AuthBase {
|
|
13
13
|
static optionDefinitions: {
|
|
14
|
-
auth_fake_user: import("../../config/options").StringOption;
|
|
14
|
+
auth_fake_user: import("../../config/options.js").StringOption;
|
|
15
15
|
};
|
|
16
16
|
name: string;
|
|
17
17
|
roles: Role[];
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Response } from 'express';
|
|
2
|
-
import AuthBase, { type DmRequest } from '../../lib/auth/base';
|
|
3
|
-
import type { Role } from '../../abstract/plugin';
|
|
2
|
+
import AuthBase, { type DmRequest } from '../../lib/auth/base.js';
|
|
3
|
+
import type { Role } from '../../abstract/plugin.js';
|
|
4
4
|
export default class AuthHmac extends AuthBase {
|
|
5
5
|
static optionDefinitions: {
|
|
6
|
-
auth_hmac: import("../../config/options").ArrayOption;
|
|
7
|
-
auth_hmac_window: import("../../config/options").NumberOption;
|
|
6
|
+
auth_hmac: import("../../config/options.js").ArrayOption;
|
|
7
|
+
auth_hmac_window: import("../../config/options.js").NumberOption;
|
|
8
8
|
};
|
|
9
9
|
protected knownIdentities(): string[];
|
|
10
10
|
protected identitySource(): string;
|
|
@@ -7,13 +7,28 @@
|
|
|
7
7
|
* This plugin enables authentication and authorization using Lemonldap::NG.
|
|
8
8
|
*/
|
|
9
9
|
import type { Express, Response } from 'express';
|
|
10
|
-
import AuthBase, { DmRequest } from '../../lib/auth/base';
|
|
11
|
-
import type { Role } from '../../abstract/plugin';
|
|
12
|
-
|
|
10
|
+
import AuthBase, { DmRequest } from '../../lib/auth/base.js';
|
|
11
|
+
import type { Role } from '../../abstract/plugin.js';
|
|
12
|
+
/**
|
|
13
|
+
* The part of `lemonldap-ng-handler` this plugin uses. The ambient
|
|
14
|
+
* declaration in src/types/lemonldap-ng-handler.d.ts gives the module the
|
|
15
|
+
* same shape for the build; this interface is what the published declaration
|
|
16
|
+
* names, so a consumer without the package still sees it.
|
|
17
|
+
*/
|
|
18
|
+
interface LlngHandler {
|
|
19
|
+
init(args: {
|
|
20
|
+
configStorage?: {
|
|
21
|
+
confFile?: string;
|
|
22
|
+
[key: string]: unknown;
|
|
23
|
+
};
|
|
24
|
+
type?: string;
|
|
25
|
+
}): Promise<unknown>;
|
|
26
|
+
run(req: DmRequest, res: Response, next: () => void): void;
|
|
27
|
+
}
|
|
13
28
|
export default class AuthLLNG extends AuthBase {
|
|
14
29
|
static optionDefinitions: {
|
|
15
|
-
llng_ini: import("../../config/options").StringOption;
|
|
16
|
-
llng_username_header: import("../../config/options").StringOption;
|
|
30
|
+
llng_ini: import("../../config/options.js").StringOption;
|
|
31
|
+
llng_username_header: import("../../config/options.js").StringOption;
|
|
17
32
|
};
|
|
18
33
|
name: string;
|
|
19
34
|
roles: Role[];
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { Express, Response } from 'express';
|
|
2
2
|
import type { ConfigParams } from 'express-openid-connect';
|
|
3
|
-
import AuthBase, { DmRequest } from '../../lib/auth/base';
|
|
4
|
-
import { type Role } from '../../abstract/plugin';
|
|
5
|
-
import { DM } from '../../bin';
|
|
3
|
+
import AuthBase, { DmRequest } from '../../lib/auth/base.js';
|
|
4
|
+
import { type Role } from '../../abstract/plugin.js';
|
|
5
|
+
import { DM } from '../../bin/index.js';
|
|
6
6
|
export default class OpenIDConnect extends AuthBase {
|
|
7
7
|
static optionDefinitions: {
|
|
8
|
-
oidc_server: import("../../config/options").StringOption;
|
|
9
|
-
oidc_username_claim: import("../../config/options").StringOption;
|
|
10
|
-
oidc_client_id: import("../../config/options").StringOption;
|
|
11
|
-
oidc_client_secret: import("../../config/options").StringOption;
|
|
12
|
-
base_url: import("../../config/options").StringOption;
|
|
13
|
-
oidc_logout_origins: import("../../config/options").ArrayOption;
|
|
8
|
+
oidc_server: import("../../config/options.js").StringOption;
|
|
9
|
+
oidc_username_claim: import("../../config/options.js").StringOption;
|
|
10
|
+
oidc_client_id: import("../../config/options.js").StringOption;
|
|
11
|
+
oidc_client_secret: import("../../config/options.js").StringOption;
|
|
12
|
+
base_url: import("../../config/options.js").StringOption;
|
|
13
|
+
oidc_logout_origins: import("../../config/options.js").ArrayOption;
|
|
14
14
|
};
|
|
15
15
|
name: string;
|
|
16
16
|
configApiKey: string;
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
* @author Xavier Guimard <xguimard@linagora.com>
|
|
14
14
|
*/
|
|
15
15
|
import type { Express } from 'express';
|
|
16
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
16
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
17
17
|
export default class RateLimit extends DmPlugin {
|
|
18
18
|
static optionDefinitions: {
|
|
19
|
-
rate_limit_window_ms: import("../../config/options").NumberOption;
|
|
20
|
-
rate_limit_max: import("../../config/options").NumberOption;
|
|
19
|
+
rate_limit_window_ms: import("../../config/options.js").NumberOption;
|
|
20
|
+
rate_limit_max: import("../../config/options.js").NumberOption;
|
|
21
21
|
};
|
|
22
22
|
name: string;
|
|
23
23
|
roles: Role[];
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
* @group Plugins
|
|
7
7
|
*/
|
|
8
8
|
import type { Response } from 'express';
|
|
9
|
-
import AuthBase, { type DmRequest } from '../../lib/auth/base';
|
|
10
|
-
import type { Role } from '../../abstract/plugin';
|
|
9
|
+
import AuthBase, { type DmRequest } from '../../lib/auth/base.js';
|
|
10
|
+
import type { Role } from '../../abstract/plugin.js';
|
|
11
11
|
export default class AuthToken extends AuthBase {
|
|
12
12
|
static optionDefinitions: {
|
|
13
|
-
auth_token: import("../../config/options").ArrayOption;
|
|
13
|
+
auth_token: import("../../config/options.js").ArrayOption;
|
|
14
14
|
};
|
|
15
15
|
protected knownIdentities(): string[];
|
|
16
16
|
protected identitySource(): string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Response } from 'express';
|
|
2
|
-
import AuthBase, { type DmRequest } from '../../lib/auth/base';
|
|
3
|
-
import type { Role } from '../../abstract/plugin';
|
|
2
|
+
import AuthBase, { type DmRequest } from '../../lib/auth/base.js';
|
|
3
|
+
import type { Role } from '../../abstract/plugin.js';
|
|
4
4
|
export default class AuthTotp extends AuthBase {
|
|
5
5
|
static optionDefinitions: {
|
|
6
|
-
auth_totp: import("../../config/options").ArrayOption;
|
|
7
|
-
auth_totp_window: import("../../config/options").NumberOption;
|
|
8
|
-
auth_totp_step: import("../../config/options").NumberOption;
|
|
6
|
+
auth_totp: import("../../config/options.js").ArrayOption;
|
|
7
|
+
auth_totp_window: import("../../config/options.js").NumberOption;
|
|
8
|
+
auth_totp_step: import("../../config/options.js").NumberOption;
|
|
9
9
|
};
|
|
10
10
|
protected knownIdentities(): string[];
|
|
11
11
|
protected identitySource(): string;
|
|
@@ -1,30 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module core/auth/trustedProxy
|
|
3
|
-
* Trusted proxy plugin to validate X-Forwarded-For headers
|
|
4
|
-
*
|
|
5
|
-
* This plugin validates that X-Forwarded-For headers only come from trusted
|
|
6
|
-
* upstream reverse proxies. If the request comes from an untrusted IP,
|
|
7
|
-
* the X-Forwarded-For header is removed to prevent IP spoofing attacks.
|
|
8
|
-
*
|
|
9
|
-
* This plugin MUST be loaded BEFORE any plugin that uses X-Forwarded-For
|
|
10
|
-
* (like crowdsec and rateLimit) to ensure they receive sanitized headers.
|
|
11
|
-
*
|
|
12
|
-
* Configuration:
|
|
13
|
-
* - trusted_proxy: Array of trusted proxy IPs or CIDR ranges (required)
|
|
14
|
-
* Example: ["127.0.0.1", "10.0.0.0/8", "192.168.1.0/24", "::1"]
|
|
15
|
-
* - trusted_proxy_auth_header: Header name containing the authenticated user
|
|
16
|
-
* from trusted proxy (optional, default: "Auth-User")
|
|
17
|
-
*
|
|
18
|
-
* When a request comes from a trusted proxy:
|
|
19
|
-
* - X-Forwarded-For header is preserved
|
|
20
|
-
* - The request is marked as trusted (req.trustedProxy = true)
|
|
21
|
-
* - If trusted_proxy_auth_header is set and the header is present,
|
|
22
|
-
* req.proxyAuthUser is set to its value for use by other plugins (e.g., weblogs)
|
|
23
|
-
*
|
|
24
|
-
* @author Xavier Guimard <xguimard@linagora.com>
|
|
25
|
-
*/
|
|
26
1
|
import type { Express } from 'express';
|
|
27
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
2
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
28
3
|
declare global {
|
|
29
4
|
namespace Express {
|
|
30
5
|
interface Request {
|
|
@@ -35,8 +10,8 @@ declare global {
|
|
|
35
10
|
}
|
|
36
11
|
export default class TrustedProxy extends DmPlugin {
|
|
37
12
|
static optionDefinitions: {
|
|
38
|
-
trusted_proxy: import("../../config/options").ArrayOption;
|
|
39
|
-
trusted_proxy_auth_header: import("../../config/options").StringOption;
|
|
13
|
+
trusted_proxy: import("../../config/options.js").ArrayOption;
|
|
14
|
+
trusted_proxy_auth_header: import("../../config/options.js").StringOption;
|
|
40
15
|
};
|
|
41
16
|
name: string;
|
|
42
17
|
roles: Role[];
|
|
@@ -49,15 +24,24 @@ export default class TrustedProxy extends DmPlugin {
|
|
|
49
24
|
*/
|
|
50
25
|
private isTrustedProxy;
|
|
51
26
|
/**
|
|
52
|
-
*
|
|
27
|
+
* Whether an address belongs to a network: same family, or an IPv4-mapped
|
|
28
|
+
* IPv6 address checked as the IPv4 address it carries.
|
|
53
29
|
*/
|
|
54
|
-
private
|
|
30
|
+
private isInNetwork;
|
|
55
31
|
/**
|
|
56
|
-
*
|
|
32
|
+
* The IPv4 address an IPv4-mapped IPv6 address carries
|
|
33
|
+
* (`::ffff:a.b.c.d`), or undefined for another address.
|
|
34
|
+
*/
|
|
35
|
+
private mappedIPv4;
|
|
36
|
+
/**
|
|
37
|
+
* Parse an IP address into a bigint for comparison. A zone index names the
|
|
38
|
+
* interface, not the address, and is dropped before the match.
|
|
57
39
|
*/
|
|
58
40
|
private parseIP;
|
|
59
41
|
/**
|
|
60
|
-
* Parse a CIDR notation string into network address and mask
|
|
42
|
+
* Parse a CIDR notation string into network address and mask. A network
|
|
43
|
+
* written as an IPv4-mapped IPv6 network is checked as the IPv4 network it
|
|
44
|
+
* is: `::ffff:10.0.0.0/104` is `10.0.0.0/8`.
|
|
61
45
|
*/
|
|
62
46
|
private parseCIDR;
|
|
63
47
|
/**
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
*
|
|
17
17
|
* @group Plugins
|
|
18
18
|
*/
|
|
19
|
-
import DmPlugin from '../abstract/plugin';
|
|
20
|
-
import type { DM } from '../bin';
|
|
21
|
-
import type { OidcLogoutToken, OidcSessionClaims } from '../hooks';
|
|
19
|
+
import DmPlugin from '../abstract/plugin.js';
|
|
20
|
+
import type { DM } from '../bin/index.js';
|
|
21
|
+
import type { OidcLogoutToken, OidcSessionClaims } from '../hooks.js';
|
|
22
22
|
export default class Bcl extends DmPlugin {
|
|
23
23
|
static optionDefinitions: {
|
|
24
|
-
bcl_retention: import("../config/options").NumberOption;
|
|
24
|
+
bcl_retention: import("../config/options.js").NumberOption;
|
|
25
25
|
};
|
|
26
26
|
name: string;
|
|
27
27
|
dependencies: {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** Back-Channel Logout plugin options. */
|
|
2
|
-
import type { Config } from '../config/args';
|
|
3
|
-
import { type OptionsOf } from '../config/options';
|
|
2
|
+
import type { Config } from '../config/args.js';
|
|
3
|
+
import { type OptionsOf } from '../config/options.js';
|
|
4
4
|
export declare const bclOptions: {
|
|
5
|
-
bcl_retention: import("../config/options").NumberOption;
|
|
5
|
+
bcl_retention: import("../config/options.js").NumberOption;
|
|
6
6
|
};
|
|
7
7
|
export type BclOptions = OptionsOf<typeof bclOptions>;
|
|
8
8
|
export declare function bclOptionsOf(config: Config): BclOptions;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* expose their configuration via getConfigApiData() method
|
|
10
10
|
*/
|
|
11
11
|
import type { Express } from 'express';
|
|
12
|
-
import DmPlugin, { type Role } from '../abstract/plugin';
|
|
12
|
+
import DmPlugin, { type Role } from '../abstract/plugin.js';
|
|
13
13
|
interface ConfigApiResponse {
|
|
14
14
|
apiPrefix: string;
|
|
15
15
|
ldapBase: string;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @author Xavier Guimard <xguimard@linagora.com>
|
|
5
5
|
*/
|
|
6
6
|
import type { Express } from 'express';
|
|
7
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
7
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
8
8
|
/**
|
|
9
9
|
* The answer of the hello-world endpoint.
|
|
10
10
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Express } from 'express';
|
|
2
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
2
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
3
3
|
export declare const StatusBody: import("@sinclair/typebox").TObject<{
|
|
4
4
|
state: import("@sinclair/typebox").TString;
|
|
5
5
|
}>;
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* @author LDAP-Rest Team
|
|
5
5
|
*/
|
|
6
6
|
import type { Express } from 'express';
|
|
7
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
8
|
-
import type { DM } from '../../bin';
|
|
7
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
8
|
+
import type { DM } from '../../bin/index.js';
|
|
9
9
|
export default class LdapBulkImport extends DmPlugin {
|
|
10
10
|
static optionDefinitions: {
|
|
11
|
-
bulk_import_schemas: import("../../config/options").StringOption;
|
|
12
|
-
bulk_import_max_file_size: import("../../config/options").StringOption;
|
|
13
|
-
bulk_import_batch_size: import("../../config/options").StringOption;
|
|
11
|
+
bulk_import_schemas: import("../../config/options.js").StringOption;
|
|
12
|
+
bulk_import_max_file_size: import("../../config/options.js").StringOption;
|
|
13
|
+
bulk_import_batch_size: import("../../config/options.js").StringOption;
|
|
14
14
|
};
|
|
15
15
|
name: string;
|
|
16
16
|
roles: Role[];
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* Automatically updates twakeDepartmentLink and twakeDepartmentPath attributes on all
|
|
7
7
|
* resources (users, groups, etc.) when their linked organization DN changes.
|
|
8
8
|
*/
|
|
9
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
10
|
-
import type { DM } from '../../bin';
|
|
11
|
-
import type { Hooks } from '../../hooks';
|
|
9
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
10
|
+
import type { DM } from '../../bin/index.js';
|
|
11
|
+
import type { Hooks } from '../../hooks.js';
|
|
12
12
|
export default class LdapDepartmentSync extends DmPlugin {
|
|
13
13
|
name: string;
|
|
14
14
|
roles: Role[];
|
|
@@ -71,6 +71,17 @@ export default class LdapDepartmentSync extends DmPlugin {
|
|
|
71
71
|
* We need to update resources pointing to the old child DN
|
|
72
72
|
*/
|
|
73
73
|
private updateDescendantReferences;
|
|
74
|
+
/**
|
|
75
|
+
* Put the descendant RDNs of `dn` under `newDn`: the last RDNs of `dn`
|
|
76
|
+
* are those of `oldDn`. The RDNs kept are spelled as `dn` spells them, and
|
|
77
|
+
* compared as DNs, so an escaped comma in a value is never a separator.
|
|
78
|
+
*
|
|
79
|
+
* @param dn link naming `oldDn` or one of its descendants
|
|
80
|
+
* @param oldDn the organization's DN before the rename
|
|
81
|
+
* @param newDn the organization's DN after it
|
|
82
|
+
* @returns the link naming the same descendant under `newDn`
|
|
83
|
+
*/
|
|
84
|
+
private replaceDnTail;
|
|
74
85
|
/**
|
|
75
86
|
* Get department path from an organization DN
|
|
76
87
|
* Fetches the path attribute directly from the organization entry
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
* @group Plugins
|
|
43
43
|
*/
|
|
44
44
|
import type { Request } from 'express';
|
|
45
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
46
|
-
import type { DM } from '../../bin';
|
|
47
|
-
import type { Hooks } from '../../hooks';
|
|
48
|
-
import type { AttributeValue } from '../../lib/ldapActions';
|
|
49
|
-
import type { Schema, SchemaAttribute } from '../../config/schema';
|
|
45
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
46
|
+
import type { DM } from '../../bin/index.js';
|
|
47
|
+
import type { Hooks } from '../../hooks.js';
|
|
48
|
+
import type { AttributeValue } from '../../lib/ldapActions.js';
|
|
49
|
+
import type { Schema, SchemaAttribute } from '../../config/schema.js';
|
|
50
50
|
/**
|
|
51
51
|
* One place a DN is stored: which entry, in which attribute, and what that
|
|
52
52
|
* attribute currently holds there.
|
|
@@ -135,8 +135,8 @@ export declare function startOfUtcDay(now?: Date): number;
|
|
|
135
135
|
export declare function mailInDomains(mail: string, domains: string[], allowSubdomains?: boolean): boolean;
|
|
136
136
|
export default class LdapEnterpriseRules extends DmPlugin {
|
|
137
137
|
static optionDefinitions: {
|
|
138
|
-
enterprise_domain_name_attribute: import("../../config/options").StringOption;
|
|
139
|
-
enterprise_domain_link_attribute: import("../../config/options").StringOption;
|
|
138
|
+
enterprise_domain_name_attribute: import("../../config/options.js").StringOption;
|
|
139
|
+
enterprise_domain_link_attribute: import("../../config/options.js").StringOption;
|
|
140
140
|
};
|
|
141
141
|
name: string;
|
|
142
142
|
roles: Role[];
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* Creates on-the-fly missing group users into a branch
|
|
6
6
|
* This permits to add external users into mailing lists
|
|
7
7
|
*/
|
|
8
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
9
|
-
import type { DM } from '../../bin';
|
|
10
|
-
import { Hooks } from '../../hooks';
|
|
11
|
-
import ldapActions from '../../lib/ldapActions';
|
|
8
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
9
|
+
import type { DM } from '../../bin/index.js';
|
|
10
|
+
import { Hooks } from '../../hooks.js';
|
|
11
|
+
import ldapActions from '../../lib/ldapActions.js';
|
|
12
12
|
/**
|
|
13
13
|
* The domain of an address, as the managed domains are compared: after its
|
|
14
14
|
* last `@` (the local part may hold one, quoted), lower-cased, without the
|
|
@@ -17,8 +17,8 @@ import ldapActions from '../../lib/ldapActions';
|
|
|
17
17
|
export declare const mailDomainOf: (mail: string) => string;
|
|
18
18
|
export default class ExternalUsersInGroups extends DmPlugin {
|
|
19
19
|
static optionDefinitions: {
|
|
20
|
-
external_members_branch: import("../../config/options").StringOption;
|
|
21
|
-
external_branch_class: import("../../config/options").ArrayOption;
|
|
20
|
+
external_members_branch: import("../../config/options.js").StringOption;
|
|
21
|
+
external_branch_class: import("../../config/options.js").ArrayOption;
|
|
22
22
|
};
|
|
23
23
|
name: string;
|
|
24
24
|
roles: Role[];
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
* Automatically creates sub-plugins based on schema metadata
|
|
7
7
|
*/
|
|
8
8
|
import type { Express } from 'express';
|
|
9
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
10
|
-
import LdapFlat from '../../abstract/ldapFlat';
|
|
11
|
-
import type { DM } from '../../bin';
|
|
12
|
-
import type { LocalizedText } from '../../config/schema';
|
|
9
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
10
|
+
import LdapFlat from '../../abstract/ldapFlat.js';
|
|
11
|
+
import type { DM } from '../../bin/index.js';
|
|
12
|
+
import type { LocalizedText } from '../../config/schema.js';
|
|
13
13
|
/**
|
|
14
14
|
* Collections the other LDAP plugins serve under the same `/v1/ldap/` prefix,
|
|
15
15
|
* with the plugin that serves each: its registry name, and the module paths a
|
|
@@ -51,8 +51,8 @@ declare class LdapFlatInstance extends LdapFlat {
|
|
|
51
51
|
}
|
|
52
52
|
export default class LdapFlatGeneric extends DmPlugin {
|
|
53
53
|
static optionDefinitions: {
|
|
54
|
-
ldap_flat_schema: import("../../config/options").ArrayOption;
|
|
55
|
-
ldap_flat_auto_repair: import("../../config/options").BooleanOption;
|
|
54
|
+
ldap_flat_schema: import("../../config/options.js").ArrayOption;
|
|
55
|
+
ldap_flat_auto_repair: import("../../config/options.js").BooleanOption;
|
|
56
56
|
};
|
|
57
57
|
name: string;
|
|
58
58
|
roles: Role[];
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { Express, Request, Response } from 'express';
|
|
2
|
-
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
3
|
-
import type { DM } from '../../bin';
|
|
4
|
-
import type { OptionSet } from '../../config/options';
|
|
5
|
-
import type { Hooks } from '../../hooks';
|
|
6
|
-
import type ldapActions from '../../lib/ldapActions';
|
|
7
|
-
import type { AttributesList, AttributeValue, LdapList, ModifyRequest } from '../../lib/ldapActions';
|
|
8
|
-
import type { Schema } from '../../config/schema';
|
|
9
|
-
import { EntityValidator } from '../../lib/entitySchema/validator';
|
|
2
|
+
import DmPlugin, { type Role } from '../../abstract/plugin.js';
|
|
3
|
+
import type { DM } from '../../bin/index.js';
|
|
4
|
+
import type { OptionSet } from '../../config/options.js';
|
|
5
|
+
import type { Hooks } from '../../hooks.js';
|
|
6
|
+
import type ldapActions from '../../lib/ldapActions.js';
|
|
7
|
+
import type { AttributesList, AttributeValue, LdapList, ModifyRequest } from '../../lib/ldapActions.js';
|
|
8
|
+
import type { Schema } from '../../config/schema.js';
|
|
9
|
+
import { EntityValidator } from '../../lib/entitySchema/validator.js';
|
|
10
10
|
export interface postAdd {
|
|
11
11
|
cn?: string;
|
|
12
12
|
[key: string]: AttributeValue | undefined;
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import type { Config } from '../../config/args';
|
|
2
|
-
import type { AttributesList } from '../../lib/ldapActions';
|
|
3
|
-
import { type OptionsOf } from '../../config/options';
|
|
1
|
+
import type { Config } from '../../config/args.js';
|
|
2
|
+
import type { AttributesList } from '../../lib/ldapActions.js';
|
|
3
|
+
import { type OptionsOf } from '../../config/options.js';
|
|
4
4
|
export declare const organizationOptions: {
|
|
5
|
-
ldap_top_organization: import("../../config/options").StringOption;
|
|
6
|
-
ldap_organization_class: import("../../config/options").ArrayOption;
|
|
7
|
-
ldap_organization_link_attribute: import("../../config/options").StringOption;
|
|
8
|
-
ldap_organization_path_attribute: import("../../config/options").StringOption;
|
|
9
|
-
ldap_organization_path_separator: import("../../config/options").StringOption;
|
|
10
|
-
ldap_organization_max_subnodes: import("../../config/options").NumberOption;
|
|
11
|
-
organization_schema: import("../../config/options").StringOption;
|
|
5
|
+
ldap_top_organization: import("../../config/options.js").StringOption;
|
|
6
|
+
ldap_organization_class: import("../../config/options.js").ArrayOption;
|
|
7
|
+
ldap_organization_link_attribute: import("../../config/options.js").StringOption;
|
|
8
|
+
ldap_organization_path_attribute: import("../../config/options.js").StringOption;
|
|
9
|
+
ldap_organization_path_separator: import("../../config/options.js").StringOption;
|
|
10
|
+
ldap_organization_max_subnodes: import("../../config/options.js").NumberOption;
|
|
11
|
+
organization_schema: import("../../config/options.js").StringOption;
|
|
12
12
|
};
|
|
13
13
|
export type OrganizationOptions = OptionsOf<typeof organizationOptions>;
|
|
14
14
|
export declare const enterpriseRulesOptions: {
|
|
15
|
-
enterprise_domain_name_attribute: import("../../config/options").StringOption;
|
|
16
|
-
enterprise_domain_link_attribute: import("../../config/options").StringOption;
|
|
15
|
+
enterprise_domain_name_attribute: import("../../config/options.js").StringOption;
|
|
16
|
+
enterprise_domain_link_attribute: import("../../config/options.js").StringOption;
|
|
17
17
|
};
|
|
18
18
|
export type EnterpriseRulesOptions = OptionsOf<typeof enterpriseRulesOptions>;
|
|
19
19
|
export declare const groupsOptions: {
|
|
20
|
-
ldap_group_base: import("../../config/options").StringOption;
|
|
21
|
-
ldap_groups_main_attribute: import("../../config/options").StringOption;
|
|
22
|
-
group_class: import("../../config/options").ArrayOption;
|
|
23
|
-
groups_allow_unexistent_members: import("../../config/options").BooleanOption;
|
|
24
|
-
group_default_attributes: import("../../config/options").JsonOption<AttributesList>;
|
|
25
|
-
group_dummy_user: import("../../config/options").StringOption;
|
|
26
|
-
group_schema: import("../../config/options").StringOption;
|
|
20
|
+
ldap_group_base: import("../../config/options.js").StringOption;
|
|
21
|
+
ldap_groups_main_attribute: import("../../config/options.js").StringOption;
|
|
22
|
+
group_class: import("../../config/options.js").ArrayOption;
|
|
23
|
+
groups_allow_unexistent_members: import("../../config/options.js").BooleanOption;
|
|
24
|
+
group_default_attributes: import("../../config/options.js").JsonOption<AttributesList>;
|
|
25
|
+
group_dummy_user: import("../../config/options.js").StringOption;
|
|
26
|
+
group_schema: import("../../config/options.js").StringOption;
|
|
27
27
|
};
|
|
28
28
|
export type GroupsOptions = OptionsOf<typeof groupsOptions>;
|
|
29
29
|
export declare const externalUsersOptions: {
|
|
30
|
-
external_members_branch: import("../../config/options").StringOption;
|
|
31
|
-
external_branch_class: import("../../config/options").ArrayOption;
|
|
30
|
+
external_members_branch: import("../../config/options.js").StringOption;
|
|
31
|
+
external_branch_class: import("../../config/options.js").ArrayOption;
|
|
32
32
|
};
|
|
33
33
|
export type ExternalUsersOptions = OptionsOf<typeof externalUsersOptions>;
|
|
34
34
|
export declare const flatGenericOptions: {
|
|
35
|
-
ldap_flat_schema: import("../../config/options").ArrayOption;
|
|
36
|
-
ldap_flat_auto_repair: import("../../config/options").BooleanOption;
|
|
35
|
+
ldap_flat_schema: import("../../config/options.js").ArrayOption;
|
|
36
|
+
ldap_flat_auto_repair: import("../../config/options.js").BooleanOption;
|
|
37
37
|
};
|
|
38
38
|
export type FlatGenericOptions = OptionsOf<typeof flatGenericOptions>;
|
|
39
39
|
export declare const rawOptions: {
|
|
40
|
-
ldap_raw_base: import("../../config/options").ArrayOption;
|
|
41
|
-
ldap_raw_hidden_attribute: import("../../config/options").ArrayOption;
|
|
42
|
-
ldap_raw_show_secrets: import("../../config/options").BooleanOption;
|
|
43
|
-
ldap_raw_max_results: import("../../config/options").NumberOption;
|
|
44
|
-
ldap_raw_schema_cache_ttl: import("../../config/options").NumberOption;
|
|
40
|
+
ldap_raw_base: import("../../config/options.js").ArrayOption;
|
|
41
|
+
ldap_raw_hidden_attribute: import("../../config/options.js").ArrayOption;
|
|
42
|
+
ldap_raw_show_secrets: import("../../config/options.js").BooleanOption;
|
|
43
|
+
ldap_raw_max_results: import("../../config/options.js").NumberOption;
|
|
44
|
+
ldap_raw_schema_cache_ttl: import("../../config/options.js").NumberOption;
|
|
45
45
|
};
|
|
46
46
|
export type RawOptions = OptionsOf<typeof rawOptions>;
|
|
47
47
|
export declare const bulkImportOptions: {
|
|
48
|
-
bulk_import_schemas: import("../../config/options").StringOption;
|
|
49
|
-
bulk_import_max_file_size: import("../../config/options").StringOption;
|
|
50
|
-
bulk_import_batch_size: import("../../config/options").StringOption;
|
|
48
|
+
bulk_import_schemas: import("../../config/options.js").StringOption;
|
|
49
|
+
bulk_import_max_file_size: import("../../config/options.js").StringOption;
|
|
50
|
+
bulk_import_batch_size: import("../../config/options.js").StringOption;
|
|
51
51
|
};
|
|
52
52
|
export type BulkImportOptions = OptionsOf<typeof bulkImportOptions>;
|
|
53
53
|
export declare const trashOptions: {
|
|
54
|
-
trash_base: import("../../config/options").StringOption;
|
|
55
|
-
trash_watched_bases: import("../../config/options").StringOption;
|
|
56
|
-
trash_add_metadata: import("../../config/options").StringOption;
|
|
57
|
-
trash_auto_create: import("../../config/options").StringOption;
|
|
54
|
+
trash_base: import("../../config/options.js").StringOption;
|
|
55
|
+
trash_watched_bases: import("../../config/options.js").StringOption;
|
|
56
|
+
trash_add_metadata: import("../../config/options.js").StringOption;
|
|
57
|
+
trash_auto_create: import("../../config/options.js").StringOption;
|
|
58
58
|
};
|
|
59
59
|
export type TrashOptions = OptionsOf<typeof trashOptions>;
|
|
60
60
|
export declare const passwordPolicyOptions: {
|
|
61
|
-
ppolicy_default_dn: import("../../config/options").StringOption;
|
|
62
|
-
ppolicy_base: import("../../config/options").StringOption;
|
|
63
|
-
ppolicy_warn_days: import("../../config/options").NumberOption;
|
|
64
|
-
ppolicy_validate_complexity: import("../../config/options").BooleanOption;
|
|
65
|
-
ppolicy_min_length: import("../../config/options").NumberOption;
|
|
66
|
-
ppolicy_require_uppercase: import("../../config/options").BooleanOption;
|
|
67
|
-
ppolicy_require_lowercase: import("../../config/options").BooleanOption;
|
|
68
|
-
ppolicy_require_digit: import("../../config/options").BooleanOption;
|
|
69
|
-
ppolicy_require_special: import("../../config/options").BooleanOption;
|
|
70
|
-
ldap_users_base: import("../../config/options").StringOption;
|
|
61
|
+
ppolicy_default_dn: import("../../config/options.js").StringOption;
|
|
62
|
+
ppolicy_base: import("../../config/options.js").StringOption;
|
|
63
|
+
ppolicy_warn_days: import("../../config/options.js").NumberOption;
|
|
64
|
+
ppolicy_validate_complexity: import("../../config/options.js").BooleanOption;
|
|
65
|
+
ppolicy_min_length: import("../../config/options.js").NumberOption;
|
|
66
|
+
ppolicy_require_uppercase: import("../../config/options.js").BooleanOption;
|
|
67
|
+
ppolicy_require_lowercase: import("../../config/options.js").BooleanOption;
|
|
68
|
+
ppolicy_require_digit: import("../../config/options.js").BooleanOption;
|
|
69
|
+
ppolicy_require_special: import("../../config/options.js").BooleanOption;
|
|
70
|
+
ldap_users_base: import("../../config/options.js").StringOption;
|
|
71
71
|
};
|
|
72
72
|
export type PasswordPolicyOptions = OptionsOf<typeof passwordPolicyOptions>;
|
|
73
73
|
export declare function organizationOptionsOf(config: Config): OrganizationOptions;
|