ldap-rest 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/sync-james.mjs +13 -2
- package/dist/abstract/ldapFlat.js +1 -1
- package/dist/abstract/plugin.js +1 -1
- package/dist/abstract/twakePlugin.js +1 -1
- package/dist/bin/index.js +1 -1
- package/dist/config/args.js +1 -1
- package/dist/config/options.js +1 -0
- package/dist/config/schema.js +1 -1
- package/dist/lib/auth/base.js +1 -1
- package/dist/lib/authz/base.js +1 -1
- package/dist/lib/entitySchema/validator.js +1 -1
- package/dist/lib/errors.js +1 -1
- package/dist/lib/expressFormatedResponses.js +1 -1
- package/dist/lib/health.js +1 -1
- package/dist/lib/hookBus.js +1 -0
- package/dist/lib/instanceProviders.js +1 -1
- package/dist/lib/ldapActions.js +1 -1
- package/dist/lib/ldapSchema.js +1 -1
- package/dist/lib/parseConfig.js +1 -1
- package/dist/lib/route.js +1 -0
- package/dist/lib/schemaFile.js +1 -1
- package/dist/lib/storage/store.js +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/lib/version.js +1 -0
- package/dist/logger/winston.js +1 -1
- package/dist/plugins/auth/auth.options.js +1 -0
- package/dist/plugins/auth/authzDynamic.js +1 -1
- package/dist/plugins/auth/authzLinid1.js +1 -1
- package/dist/plugins/auth/authzPerBranch.js +1 -1
- package/dist/plugins/auth/authzPerRoute.js +1 -1
- package/dist/plugins/auth/authzScope.js +1 -1
- package/dist/plugins/auth/crowdsec.js +1 -1
- package/dist/plugins/auth/fake.js +1 -1
- package/dist/plugins/auth/hmac.js +1 -1
- package/dist/plugins/auth/llng.js +1 -1
- package/dist/plugins/auth/openidconnect.js +1 -1
- package/dist/plugins/auth/rateLimit.js +1 -1
- package/dist/plugins/auth/token.js +1 -1
- package/dist/plugins/auth/totp.js +1 -1
- package/dist/plugins/auth/trustedProxy.js +1 -1
- package/dist/plugins/bcl.js +1 -1
- package/dist/plugins/bcl.options.js +1 -0
- package/dist/plugins/configApi.js +1 -1
- package/dist/plugins/demo/helloworld.js +1 -1
- package/dist/plugins/ldap/accountLifecycle.js +1 -1
- package/dist/plugins/ldap/bulkImport.js +1 -1
- package/dist/plugins/ldap/departmentSync.js +1 -1
- package/dist/plugins/ldap/enterpriseRules.js +1 -1
- package/dist/plugins/ldap/externalUsersInGroups.js +1 -1
- package/dist/plugins/ldap/flatGeneric.js +1 -1
- package/dist/plugins/ldap/groups.js +1 -1
- package/dist/plugins/ldap/ldap.options.js +1 -0
- package/dist/plugins/ldap/onChange.js +1 -1
- package/dist/plugins/ldap/organizations.js +1 -1
- package/dist/plugins/ldap/passwordPolicy.js +1 -1
- package/dist/plugins/ldap/raw.js +1 -1
- package/dist/plugins/ldap/trash.js +1 -1
- package/dist/plugins/metrics.js +1 -1
- package/dist/plugins/metrics.options.js +1 -0
- package/dist/plugins/rabbitmq.js +1 -1
- package/dist/plugins/rabbitmq.options.js +1 -0
- package/dist/plugins/scim/baseResolver.js +1 -1
- package/dist/plugins/scim/bulk.js +1 -1
- package/dist/plugins/scim/discovery.js +1 -1
- package/dist/plugins/scim/errors.js +1 -1
- package/dist/plugins/scim/filter.js +1 -1
- package/dist/plugins/scim/groups.js +1 -1
- package/dist/plugins/scim/mapping.js +1 -1
- package/dist/plugins/scim/patch.js +1 -1
- package/dist/plugins/scim/projection.js +1 -1
- package/dist/plugins/scim/scim.js +1 -1
- package/dist/plugins/scim/scim.options.js +1 -0
- package/dist/plugins/scim/users.js +1 -1
- package/dist/plugins/static.js +1 -1
- package/dist/plugins/static.options.js +1 -0
- package/dist/plugins/storage/file.js +1 -1
- package/dist/plugins/storage/ldap.js +1 -1
- package/dist/plugins/storage/postgres.js +1 -1
- package/dist/plugins/storage/valkey.js +1 -1
- package/dist/plugins/storage.js +1 -1
- package/dist/plugins/storage.options.js +1 -0
- package/dist/plugins/twake/appAccounts.options.js +1 -0
- package/dist/plugins/twake/appAccountsApi.js +1 -1
- package/dist/plugins/twake/appAccountsConsistency.js +1 -1
- package/dist/plugins/twake/calendar.js +1 -1
- package/dist/plugins/twake/calendar.options.js +1 -0
- package/dist/plugins/twake/calendarResources.js +1 -1
- package/dist/plugins/twake/cloudery.options.js +1 -0
- package/dist/plugins/twake/clouderyProvision.js +1 -1
- package/dist/plugins/twake/cozy.options.js +1 -0
- package/dist/plugins/twake/cozyProvision.js +1 -1
- package/dist/plugins/twake/drive.js +1 -1
- package/dist/plugins/twake/drive.options.js +1 -0
- package/dist/plugins/twake/groups.js +1 -1
- package/dist/plugins/twake/instances.js +1 -1
- package/dist/plugins/twake/james.js +1 -1
- package/dist/plugins/twake/james.options.js +1 -0
- package/dist/plugins/twake/lifecycleAttributes.js +1 -1
- package/dist/plugins/twake/lifecycleEvents.js +1 -1
- package/dist/plugins/twake/migrationProxy.js +1 -1
- package/dist/plugins/twake/migrationProxy.options.js +1 -0
- package/dist/plugins/twake/spaces.js +1 -1
- package/dist/plugins/twake/tombstone.js +1 -1
- package/dist/plugins/twake/twakeGroups.options.js +1 -0
- package/dist/plugins/twake/twakeInstances.options.js +1 -0
- package/dist/plugins/twake/twakeLifecycle.options.js +1 -0
- package/dist/plugins/twake/twakeSpaces.options.js +1 -0
- package/dist/plugins/twake/twakeTombstone.options.js +1 -0
- package/dist/plugins/weblogs.js +1 -1
- package/dist/src/abstract/ldapFlat.d.ts +28 -10
- package/dist/src/abstract/plugin.d.ts +10 -5
- package/dist/src/abstract/twakePlugin.d.ts +14 -4
- package/dist/src/bin/index.d.ts +17 -4
- package/dist/src/config/args.d.ts +2 -4
- package/dist/src/config/options.d.ts +89 -0
- package/dist/src/config/schema.d.ts +50 -1
- package/dist/src/hooks.d.ts +60 -22
- package/dist/src/lib/authz/base.d.ts +4 -51
- package/dist/src/lib/authz/composition.d.ts +2 -2
- package/dist/src/lib/entitySchema/validator.d.ts +63 -6
- package/dist/src/lib/errors.d.ts +56 -1
- package/dist/src/lib/expressFormatedResponses.d.ts +49 -7
- package/dist/src/lib/hookBus.d.ts +226 -0
- package/dist/src/lib/instanceProviders.d.ts +0 -8
- package/dist/src/lib/ldapActions.d.ts +11 -2
- package/dist/src/lib/parseConfig.d.ts +5 -0
- package/dist/src/lib/route.d.ts +99 -0
- package/dist/src/lib/utils.d.ts +37 -36
- package/dist/src/lib/version.d.ts +12 -0
- package/dist/src/plugins/auth/auth.options.d.ts +88 -0
- package/dist/src/plugins/auth/authzDynamic.d.ts +10 -1
- package/dist/src/plugins/auth/authzLinid1.d.ts +6 -0
- package/dist/src/plugins/auth/authzPerBranch.d.ts +9 -0
- package/dist/src/plugins/auth/authzPerRoute.d.ts +3 -0
- package/dist/src/plugins/auth/authzScope.d.ts +23 -14
- package/dist/src/plugins/auth/crowdsec.d.ts +5 -0
- package/dist/src/plugins/auth/fake.d.ts +3 -0
- package/dist/src/plugins/auth/hmac.d.ts +4 -0
- package/dist/src/plugins/auth/llng.d.ts +4 -0
- package/dist/src/plugins/auth/openidconnect.d.ts +7 -0
- package/dist/src/plugins/auth/rateLimit.d.ts +4 -0
- package/dist/src/plugins/auth/token.d.ts +3 -0
- package/dist/src/plugins/auth/totp.d.ts +5 -0
- package/dist/src/plugins/auth/trustedProxy.d.ts +4 -0
- package/dist/src/plugins/bcl.d.ts +3 -0
- package/dist/src/plugins/bcl.options.d.ts +8 -0
- package/dist/src/plugins/configApi.d.ts +24 -5
- package/dist/src/plugins/demo/helloworld.d.ts +8 -19
- package/dist/src/plugins/ldap/accountLifecycle.d.ts +17 -0
- package/dist/src/plugins/ldap/bulkImport.d.ts +6 -76
- package/dist/src/plugins/ldap/departmentSync.d.ts +1 -0
- package/dist/src/plugins/ldap/enterpriseRules.d.ts +8 -1
- package/dist/src/plugins/ldap/externalUsersInGroups.d.ts +4 -0
- package/dist/src/plugins/ldap/flatGeneric.d.ts +4 -0
- package/dist/src/plugins/ldap/groups.d.ts +27 -11
- package/dist/src/plugins/ldap/ldap.options.d.ts +75 -0
- package/dist/src/plugins/ldap/onChange.d.ts +10 -2
- package/dist/src/plugins/ldap/organizations.d.ts +16 -0
- package/dist/src/plugins/ldap/passwordPolicy.d.ts +32 -1
- package/dist/src/plugins/ldap/raw.d.ts +50 -19
- package/dist/src/plugins/ldap/trash.d.ts +6 -0
- package/dist/src/plugins/metrics.d.ts +3 -0
- package/dist/src/plugins/metrics.options.d.ts +8 -0
- package/dist/src/plugins/rabbitmq.d.ts +3 -0
- package/dist/src/plugins/rabbitmq.options.d.ts +8 -0
- package/dist/src/plugins/scim/baseResolver.d.ts +2 -1
- package/dist/src/plugins/scim/bulk.d.ts +6 -7
- package/dist/src/plugins/scim/discovery.d.ts +3 -0
- package/dist/src/plugins/scim/errors.d.ts +4 -1
- package/dist/src/plugins/scim/groups.d.ts +6 -4
- package/dist/src/plugins/scim/scim.d.ts +37 -3
- package/dist/src/plugins/scim/scim.options.d.ts +35 -0
- package/dist/src/plugins/scim/types.d.ts +2 -1
- package/dist/src/plugins/scim/users.d.ts +6 -7
- package/dist/src/plugins/static.d.ts +9 -0
- package/dist/src/plugins/static.options.d.ts +13 -0
- package/dist/src/plugins/storage.d.ts +12 -1
- package/dist/src/plugins/storage.options.d.ts +16 -0
- package/dist/src/plugins/twake/appAccounts.options.d.ts +13 -0
- package/dist/src/plugins/twake/appAccountsApi.d.ts +18 -0
- package/dist/src/plugins/twake/appAccountsConsistency.d.ts +8 -0
- package/dist/src/plugins/twake/calendar.d.ts +25 -2
- package/dist/src/plugins/twake/calendar.options.d.ts +19 -0
- package/dist/src/plugins/twake/cloudery.options.d.ts +26 -0
- package/dist/src/plugins/twake/clouderyProvision.d.ts +18 -0
- package/dist/src/plugins/twake/cozy.options.d.ts +23 -0
- package/dist/src/plugins/twake/cozyProvision.d.ts +14 -0
- package/dist/src/plugins/twake/drive.d.ts +7 -0
- package/dist/src/plugins/twake/drive.options.d.ts +15 -0
- package/dist/src/plugins/twake/groups.d.ts +30 -3
- package/dist/src/plugins/twake/instances.d.ts +43 -10
- package/dist/src/plugins/twake/james.d.ts +17 -0
- package/dist/src/plugins/twake/james.options.d.ts +21 -0
- package/dist/src/plugins/twake/lifecycleEvents.d.ts +12 -0
- package/dist/src/plugins/twake/migrationProxy.d.ts +11 -11
- package/dist/src/plugins/twake/migrationProxy.options.d.ts +16 -0
- package/dist/src/plugins/twake/spaces.d.ts +30 -0
- package/dist/src/plugins/twake/tombstone.d.ts +16 -14
- package/dist/src/plugins/twake/twakeGroups.options.d.ts +20 -0
- package/dist/src/plugins/twake/twakeInstances.options.d.ts +43 -0
- package/dist/src/plugins/twake/twakeLifecycle.options.d.ts +21 -0
- package/dist/src/plugins/twake/twakeSpaces.options.d.ts +19 -0
- package/dist/src/plugins/twake/twakeTombstone.options.d.ts +17 -0
- package/docs/README.md +1 -0
- package/docs/client-development/api/rest-api.md +9 -3
- package/docs/client-development/schemas/README.md +96 -32
- package/docs/plugin-development/README.md +45 -94
- package/docs/plugin-development/dependencies.md +11 -6
- package/docs/plugin-development/hooks.md +142 -23
- package/docs/plugin-development/openapi.md +14 -1
- package/docs/plugin-development/options.md +109 -0
- package/docs/plugin-development/routes.md +152 -0
- package/docs/plugin-development/testing.md +3 -3
- package/docs/usage/configuration.md +31 -24
- package/docs/usage/operations.md +19 -4
- package/docs/usage/plugins/integrations/groups.md +2 -2
- package/docs/usage/plugins/integrations/scim.md +12 -1
- package/docs/usage/plugins/integrations/spaces.md +1 -1
- package/docs/usage/plugins/ldap/enterprise-rules.md +10 -1
- package/docs/usage/plugins/ldap/flat-generic.md +4 -0
- package/docs/usage/plugins/ldap/raw.md +17 -1
- package/docs/usage/upgrading.md +207 -0
- package/package.json +358 -277
- package/static/browser/ldap-browser/LdapBrowser.js +8 -6
- package/static/browser/ldap-browser/LdapBrowser.js.map +1 -1
- package/static/browser/ldap-browser/api/RawApiClient.js +2 -0
- package/static/browser/ldap-browser/api/RawApiClient.js.map +1 -1
- package/static/browser/ldap-browser/components/EntryTree.js +9 -5
- package/static/browser/ldap-browser/components/EntryTree.js.map +1 -1
- package/static/browser/ldap-browser/components/EntryView.js +2 -0
- package/static/browser/ldap-browser/components/EntryView.js.map +1 -1
- package/static/browser/ldap-browser/schema.js +3 -2
- package/static/browser/ldap-browser/schema.js.map +1 -1
- package/static/browser/ldap-browser.esm.js +27 -18
- package/static/browser/ldap-browser.esm.js.map +1 -1
- package/static/browser/ldap-browser.js +27 -18
- package/static/browser/ldap-browser.js.map +1 -1
- package/static/browser/ldap-browser.min.js +1 -1
- package/static/browser/ldap-browser.min.js.map +1 -1
- package/static/browser/ldap-group-editor/LdapGroupEditor.js +8 -6
- package/static/browser/ldap-group-editor/LdapGroupEditor.js.map +1 -1
- package/static/browser/ldap-group-editor/api/GroupApiClient.js +1 -0
- package/static/browser/ldap-group-editor/api/GroupApiClient.js.map +1 -1
- package/static/browser/ldap-group-editor/components/CreateGroupModal.js +5 -1
- package/static/browser/ldap-group-editor/components/CreateGroupModal.js.map +1 -1
- package/static/browser/ldap-group-editor/components/GroupPropertyEditor.js +6 -3
- package/static/browser/ldap-group-editor/components/GroupPropertyEditor.js.map +1 -1
- package/static/browser/ldap-group-editor/components/GroupTree.js +6 -3
- package/static/browser/ldap-group-editor/components/GroupTree.js.map +1 -1
- package/static/browser/ldap-group-editor/components/MoveGroupModal.js +6 -3
- package/static/browser/ldap-group-editor/components/MoveGroupModal.js.map +1 -1
- package/static/browser/ldap-group-editor.esm.js +32 -16
- package/static/browser/ldap-group-editor.esm.js.map +1 -1
- package/static/browser/ldap-group-editor.js +32 -16
- package/static/browser/ldap-group-editor.js.map +1 -1
- package/static/browser/ldap-group-editor.min.js +1 -1
- package/static/browser/ldap-group-editor.min.js.map +1 -1
- package/static/browser/ldap-resource-editor/api/ResourceApiClient.js +3 -0
- package/static/browser/ldap-resource-editor/api/ResourceApiClient.js.map +1 -1
- package/static/browser/ldap-resource-editor/cache/CacheManager.js +3 -1
- package/static/browser/ldap-resource-editor/cache/CacheManager.js.map +1 -1
- package/static/browser/ldap-tree-viewer/LdapTreeViewer.js +6 -1
- package/static/browser/ldap-tree-viewer/LdapTreeViewer.js.map +1 -1
- package/static/browser/ldap-tree-viewer/api/LdapApiClient.js +2 -0
- package/static/browser/ldap-tree-viewer/api/LdapApiClient.js.map +1 -1
- package/static/browser/ldap-tree-viewer/components/TreeNode.js +4 -0
- package/static/browser/ldap-tree-viewer/components/TreeNode.js.map +1 -1
- package/static/browser/ldap-tree-viewer/components/TreeRoot.js +3 -0
- package/static/browser/ldap-tree-viewer/components/TreeRoot.js.map +1 -1
- package/static/browser/ldap-tree-viewer/store/Store.js +3 -1
- package/static/browser/ldap-tree-viewer/store/Store.js.map +1 -1
- package/static/browser/ldap-tree-viewer.esm.js +18 -2
- package/static/browser/ldap-tree-viewer.esm.js.map +1 -1
- package/static/browser/ldap-tree-viewer.js +18 -2
- package/static/browser/ldap-tree-viewer.js.map +1 -1
- package/static/browser/ldap-tree-viewer.min.js +1 -1
- package/static/browser/ldap-tree-viewer.min.js.map +1 -1
- package/static/browser/ldap-unit-editor/LdapUnitEditor.js +7 -5
- package/static/browser/ldap-unit-editor/LdapUnitEditor.js.map +1 -1
- package/static/browser/ldap-unit-editor/api/UnitApiClient.js +1 -0
- package/static/browser/ldap-unit-editor/api/UnitApiClient.js.map +1 -1
- package/static/browser/ldap-unit-editor/components/MoveUnitModal.js +7 -4
- package/static/browser/ldap-unit-editor/components/MoveUnitModal.js.map +1 -1
- package/static/browser/ldap-unit-editor/components/UnitPropertyEditor.js +7 -4
- package/static/browser/ldap-unit-editor/components/UnitPropertyEditor.js.map +1 -1
- package/static/browser/ldap-unit-editor/components/UnitTree.js +6 -3
- package/static/browser/ldap-unit-editor/components/UnitTree.js.map +1 -1
- package/static/browser/ldap-unit-editor.esm.js +28 -16
- package/static/browser/ldap-unit-editor.esm.js.map +1 -1
- package/static/browser/ldap-unit-editor.js +28 -16
- package/static/browser/ldap-unit-editor.js.map +1 -1
- package/static/browser/ldap-unit-editor.min.js +1 -1
- package/static/browser/ldap-unit-editor.min.js.map +1 -1
- package/static/browser/ldap-user-editor/LdapUserEditor.js +9 -7
- package/static/browser/ldap-user-editor/LdapUserEditor.js.map +1 -1
- package/static/browser/ldap-user-editor/api/UserApiClient.js +2 -0
- package/static/browser/ldap-user-editor/api/UserApiClient.js.map +1 -1
- package/static/browser/ldap-user-editor/cache/CacheManager.js +3 -1
- package/static/browser/ldap-user-editor/cache/CacheManager.js.map +1 -1
- package/static/browser/ldap-user-editor/components/MoveUserModal.js +7 -4
- package/static/browser/ldap-user-editor/components/MoveUserModal.js.map +1 -1
- package/static/browser/ldap-user-editor/components/PointerField.js +6 -1
- package/static/browser/ldap-user-editor/components/PointerField.js.map +1 -1
- package/static/browser/ldap-user-editor/components/UserEditor.js +10 -5
- package/static/browser/ldap-user-editor/components/UserEditor.js.map +1 -1
- package/static/browser/ldap-user-editor/components/UserList.js +8 -4
- package/static/browser/ldap-user-editor/components/UserList.js.map +1 -1
- package/static/browser/ldap-user-editor/components/UserTree.js +7 -3
- package/static/browser/ldap-user-editor/components/UserTree.js.map +1 -1
- package/static/browser/ldap-user-editor.esm.js +55 -30
- package/static/browser/ldap-user-editor.esm.js.map +1 -1
- package/static/browser/ldap-user-editor.js +55 -30
- package/static/browser/ldap-user-editor.js.map +1 -1
- package/static/browser/ldap-user-editor.min.js +1 -1
- package/static/browser/ldap-user-editor.min.js.map +1 -1
- package/static/browser/shared/components/DisposableComponent.js +3 -5
- package/static/browser/shared/components/DisposableComponent.js.map +1 -1
- package/static/browser/shared/components/Modal.js +2 -1
- package/static/browser/shared/components/Modal.js.map +1 -1
- package/static/browser/shared/components/StatusMessage.js +3 -2
- package/static/browser/shared/components/StatusMessage.js.map +1 -1
- package/static/browser/shared/utils/form.js.map +1 -1
- package/static/browser/shared/utils/hmac.js +1 -0
- package/static/browser/shared/utils/hmac.js.map +1 -1
- package/static/browser/shared/utils/totp.js +1 -0
- package/static/browser/shared/utils/totp.js.map +1 -1
- package/static/browser/shared.esm.js +9 -8
- package/static/browser/shared.esm.js.map +1 -1
- package/static/browser/shared.js +9 -8
- package/static/browser/shared.js.map +1 -1
- package/static/browser/shared.min.js +1 -1
- package/static/browser/shared.min.js.map +1 -1
- package/static/schemas/ad/groups.json +1 -1
- package/static/schemas/ad/users.json +3 -3
- package/static/schemas/example/organizations.json +2 -2
- package/static/schemas/example/users.json +2 -2
- package/static/schemas/obm/users.json +2 -2
- package/static/schemas/standard/groups.json +1 -1
- package/static/schemas/standard/users.json +2 -2
- package/static/schemas/twake/groups.json +4 -4
- package/static/schemas/twake/teamMailboxes.json +3 -3
- package/static/schemas/twake/users.json +7 -7
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module plugins/twake/instances
|
|
3
|
-
*
|
|
4
|
-
* Gives every account this server creates its workplace instance, once its
|
|
5
|
-
* entry is written, from the Cloudery or from the cozy-stack admin API. The
|
|
6
|
-
* address is written once the instance exists, then `user.created` is
|
|
7
|
-
* published and the entry marked. The event is sent at least once.
|
|
8
|
-
*
|
|
9
|
-
* See `docs/usage/plugins/integrations/instances.md`.
|
|
10
|
-
*/
|
|
11
1
|
import type { Express, Request } from 'express';
|
|
12
2
|
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
13
3
|
import type { DM } from '../../bin';
|
|
@@ -23,12 +13,55 @@ export interface WorkplaceCreated {
|
|
|
23
13
|
interface Account extends InstanceRequest {
|
|
24
14
|
twakeId: string;
|
|
25
15
|
}
|
|
16
|
+
export declare const EnsureInstanceBody: import("@sinclair/typebox").TObject<{
|
|
17
|
+
dn: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
18
|
+
mail: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
19
|
+
}>;
|
|
20
|
+
export declare const EnsureInstanceResponse: import("@sinclair/typebox").TObject<{
|
|
21
|
+
state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"ready">, import("@sinclair/typebox").TLiteral<"pending">]>;
|
|
22
|
+
}>;
|
|
26
23
|
export default class TwakeInstances extends DmPlugin {
|
|
24
|
+
static optionDefinitions: {
|
|
25
|
+
twake_instance_dn: import("../../config/options").ArrayOption;
|
|
26
|
+
twake_instance_skip_attribute: import("../../config/options").StringOption;
|
|
27
|
+
twake_instance_skip_value: import("../../config/options").StringOption;
|
|
28
|
+
twake_instance_provider: import("../../config/options").StringOption;
|
|
29
|
+
twake_instance_id: import("../../config/options").StringOption;
|
|
30
|
+
twake_instance_fqdn_attribute: import("../../config/options").StringOption;
|
|
31
|
+
twake_instance_sent_attribute: import("../../config/options").StringOption;
|
|
32
|
+
twake_instance_locale: import("../../config/options").StringOption;
|
|
33
|
+
twake_instance_timeout: import("../../config/options").NumberOption;
|
|
34
|
+
twake_instance_cloudery_url: import("../../config/options").StringOption;
|
|
35
|
+
twake_instance_cloudery_token: import("../../config/options").StringOption;
|
|
36
|
+
twake_instance_cloudery_offer: import("../../config/options").StringOption;
|
|
37
|
+
twake_instance_cloudery_domain: import("../../config/options").StringOption;
|
|
38
|
+
twake_instance_cloudery_organization_offer: import("../../config/options").StringOption;
|
|
39
|
+
twake_instance_cozy_url: import("../../config/options").StringOption;
|
|
40
|
+
twake_instance_cozy_user: import("../../config/options").StringOption;
|
|
41
|
+
twake_instance_cozy_passphrase: import("../../config/options").StringOption;
|
|
42
|
+
twake_instance_cozy_domain: import("../../config/options").StringOption;
|
|
43
|
+
twake_instance_cozy_context: import("../../config/options").StringOption;
|
|
44
|
+
twake_instance_cozy_apps: import("../../config/options").StringOption;
|
|
45
|
+
twake_instance_cozy_org_id: import("../../config/options").StringOption;
|
|
46
|
+
twake_instance_cozy_org_domain: import("../../config/options").StringOption;
|
|
47
|
+
twake_instance_auth_exchange: import("../../config/options").StringOption;
|
|
48
|
+
twake_instance_b2b_exchange: import("../../config/options").StringOption;
|
|
49
|
+
twake_instance_user_created_key: import("../../config/options").StringOption;
|
|
50
|
+
twake_instance_organization_created_key: import("../../config/options").StringOption;
|
|
51
|
+
twake_instance_workplace_created_key: import("../../config/options").StringOption;
|
|
52
|
+
twake_instance_queue: import("../../config/options").StringOption;
|
|
53
|
+
twake_instance_organization_base: import("../../config/options").StringOption;
|
|
54
|
+
twake_instance_organization_id_attribute: import("../../config/options").StringOption;
|
|
55
|
+
twake_instance_organization_domain_attribute: import("../../config/options").StringOption;
|
|
56
|
+
twake_instance_organization_name_attribute: import("../../config/options").StringOption;
|
|
57
|
+
twake_instance_organization_fqdn_attribute: import("../../config/options").StringOption;
|
|
58
|
+
};
|
|
27
59
|
name: string;
|
|
28
60
|
roles: Role[];
|
|
29
61
|
dependencies: {
|
|
30
62
|
rabbitmq: string;
|
|
31
63
|
};
|
|
64
|
+
private readonly settings;
|
|
32
65
|
protected readonly patterns: RegExp[];
|
|
33
66
|
protected readonly provider: InstanceProvider;
|
|
34
67
|
protected readonly fqdnAttribute: string;
|
|
@@ -16,7 +16,23 @@ type Identity = {
|
|
|
16
16
|
};
|
|
17
17
|
/** Signatures an identity carries over, see {@link Identity} */
|
|
18
18
|
export type Signatures = Pick<Identity, 'htmlSignature' | 'textSignature'>;
|
|
19
|
+
export declare const QuotaParams: import("@sinclair/typebox").TObject<{
|
|
20
|
+
user: import("@sinclair/typebox").TString;
|
|
21
|
+
}>;
|
|
19
22
|
export default class James extends TwakePlugin {
|
|
23
|
+
static optionDefinitions: {
|
|
24
|
+
james_webadmin_url: import("../../config/options").StringOption;
|
|
25
|
+
james_webadmin_token: import("../../config/options").StringOption;
|
|
26
|
+
james_signature_template: import("../../config/options").StringOption;
|
|
27
|
+
james_concurrency: import("../../config/options").NumberOption;
|
|
28
|
+
james_init_delay: import("../../config/options").NumberOption;
|
|
29
|
+
james_retry_attempts: import("../../config/options").NumberOption;
|
|
30
|
+
james_retry_delay: import("../../config/options").NumberOption;
|
|
31
|
+
james_mailing_list_branch: import("../../config/options").ArrayOption;
|
|
32
|
+
james_mailbox_type_attribute: import("../../config/options").StringOption;
|
|
33
|
+
james_sync_forwards: import("../../config/options").BooleanOption;
|
|
34
|
+
james_team_mailbox_any_domain: import("../../config/options").BooleanOption;
|
|
35
|
+
};
|
|
20
36
|
name: string;
|
|
21
37
|
roles: Role[];
|
|
22
38
|
dependencies: {
|
|
@@ -30,6 +46,7 @@ export default class James extends TwakePlugin {
|
|
|
30
46
|
private forwardAttr;
|
|
31
47
|
private initDelay;
|
|
32
48
|
constructor(server: DM);
|
|
49
|
+
private get settings();
|
|
33
50
|
/**
|
|
34
51
|
* Register API routes
|
|
35
52
|
*/
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* James plugin options, see `docs/plugin-development/options.md`.
|
|
3
|
+
*/
|
|
4
|
+
import type { Config } from '../../config/args';
|
|
5
|
+
import { type OptionsOf } from '../../config/options';
|
|
6
|
+
export declare const jamesOptions: {
|
|
7
|
+
james_webadmin_url: import("../../config/options").StringOption;
|
|
8
|
+
james_webadmin_token: import("../../config/options").StringOption;
|
|
9
|
+
james_signature_template: import("../../config/options").StringOption;
|
|
10
|
+
james_concurrency: import("../../config/options").NumberOption;
|
|
11
|
+
james_init_delay: import("../../config/options").NumberOption;
|
|
12
|
+
james_retry_attempts: import("../../config/options").NumberOption;
|
|
13
|
+
james_retry_delay: import("../../config/options").NumberOption;
|
|
14
|
+
james_mailing_list_branch: import("../../config/options").ArrayOption;
|
|
15
|
+
james_mailbox_type_attribute: import("../../config/options").StringOption;
|
|
16
|
+
james_sync_forwards: import("../../config/options").BooleanOption;
|
|
17
|
+
james_team_mailbox_any_domain: import("../../config/options").BooleanOption;
|
|
18
|
+
};
|
|
19
|
+
export type JamesOptions = OptionsOf<typeof jamesOptions>;
|
|
20
|
+
/** The checked values for a caller that holds a Config instead of the plugin */
|
|
21
|
+
export declare function jamesOptionsOf(config: Config): JamesOptions;
|
|
@@ -23,6 +23,18 @@ interface Rule {
|
|
|
23
23
|
}
|
|
24
24
|
export declare function parseRules(source: string): Rule[];
|
|
25
25
|
export default class TwakeLifecycleEvents extends DmPlugin {
|
|
26
|
+
static optionDefinitions: {
|
|
27
|
+
twake_lifecycle_role_attribute: import("../../config/options").StringOption;
|
|
28
|
+
twake_lifecycle_lock_attribute: import("../../config/options").StringOption;
|
|
29
|
+
twake_lifecycle_lock_value: import("../../config/options").StringOption;
|
|
30
|
+
twake_lifecycle_deleted_attribute: import("../../config/options").StringOption;
|
|
31
|
+
twake_lifecycle_deleted_value: import("../../config/options").StringOption;
|
|
32
|
+
twake_lifecycle_deleted_at_attribute: import("../../config/options").StringOption;
|
|
33
|
+
twake_lifecycle_deleted_at_format: import("../../config/options").StringOption;
|
|
34
|
+
twake_lifecycle_reason_attribute: import("../../config/options").StringOption;
|
|
35
|
+
twake_lifecycle_rules: import("../../config/options").StringOption;
|
|
36
|
+
twake_lifecycle_member_attribute: import("../../config/options").StringOption;
|
|
37
|
+
};
|
|
26
38
|
name: string;
|
|
27
39
|
roles: Role[];
|
|
28
40
|
dependencies: {
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module plugins/twake/migrationProxy
|
|
3
|
-
*
|
|
4
|
-
* Keeps the migrated-users list of the Twake Mail migration proxy in step
|
|
5
|
-
* with the accounts of the directory: an account created during the
|
|
6
|
-
* migration has no mailbox on the old system, so the proxy has to route it
|
|
7
|
-
* to the new one from its first login, and the addresses of a migrated
|
|
8
|
-
* account have to follow it.
|
|
9
|
-
*
|
|
10
|
-
* See `docs/usage/plugins/integrations/mail-migration.md`.
|
|
11
|
-
*/
|
|
12
1
|
import type { Express } from 'express';
|
|
13
2
|
import TwakePlugin from '../../abstract/twakePlugin';
|
|
14
3
|
import { type Role } from '../../abstract/plugin';
|
|
@@ -27,7 +16,18 @@ import type { HealthStatus } from '../../lib/health';
|
|
|
27
16
|
* type: boolean
|
|
28
17
|
* description: Whether the proxy routes the user to the new backend
|
|
29
18
|
*/
|
|
19
|
+
export declare const MailMigrationParams: import("@sinclair/typebox").TObject<{
|
|
20
|
+
user: import("@sinclair/typebox").TString;
|
|
21
|
+
}>;
|
|
30
22
|
export default class MigrationProxy extends TwakePlugin {
|
|
23
|
+
static optionDefinitions: {
|
|
24
|
+
migration_proxy_url: import("../../config/options").StringOption;
|
|
25
|
+
migration_proxy_token: import("../../config/options").StringOption;
|
|
26
|
+
migration_proxy_branch: import("../../config/options").ArrayOption;
|
|
27
|
+
migration_proxy_concurrency: import("../../config/options").NumberOption;
|
|
28
|
+
migration_proxy_retry_attempts: import("../../config/options").NumberOption;
|
|
29
|
+
migration_proxy_retry_delay: import("../../config/options").NumberOption;
|
|
30
|
+
};
|
|
31
31
|
name: string;
|
|
32
32
|
roles: Role[];
|
|
33
33
|
dependencies: {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Twake Mail migration proxy options, see `docs/plugin-development/options.md`.
|
|
3
|
+
*/
|
|
4
|
+
import type { Config } from '../../config/args';
|
|
5
|
+
import { type OptionsOf } from '../../config/options';
|
|
6
|
+
export declare const migrationProxyOptions: {
|
|
7
|
+
migration_proxy_url: import("../../config/options").StringOption;
|
|
8
|
+
migration_proxy_token: import("../../config/options").StringOption;
|
|
9
|
+
migration_proxy_branch: import("../../config/options").ArrayOption;
|
|
10
|
+
migration_proxy_concurrency: import("../../config/options").NumberOption;
|
|
11
|
+
migration_proxy_retry_attempts: import("../../config/options").NumberOption;
|
|
12
|
+
migration_proxy_retry_delay: import("../../config/options").NumberOption;
|
|
13
|
+
};
|
|
14
|
+
export type MigrationProxyOptions = OptionsOf<typeof migrationProxyOptions>;
|
|
15
|
+
/** The checked values for a caller that holds a Config instead of the plugin */
|
|
16
|
+
export declare function migrationProxyOptionsOf(config: Config): MigrationProxyOptions;
|
|
@@ -18,7 +18,35 @@ export type Space = {
|
|
|
18
18
|
role: SpaceRole;
|
|
19
19
|
}[];
|
|
20
20
|
};
|
|
21
|
+
export declare const SpaceOrganizationParams: import("@sinclair/typebox").TObject<{
|
|
22
|
+
id: import("@sinclair/typebox").TString;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const SpaceParams: import("@sinclair/typebox").TObject<{
|
|
25
|
+
id: import("@sinclair/typebox").TString;
|
|
26
|
+
spaceId: import("@sinclair/typebox").TString;
|
|
27
|
+
}>;
|
|
28
|
+
export declare const SpaceMemberParams: import("@sinclair/typebox").TObject<{
|
|
29
|
+
id: import("@sinclair/typebox").TString;
|
|
30
|
+
spaceId: import("@sinclair/typebox").TString;
|
|
31
|
+
userId: import("@sinclair/typebox").TString;
|
|
32
|
+
}>;
|
|
33
|
+
export declare const SpaceGroupParams: import("@sinclair/typebox").TObject<{
|
|
34
|
+
id: import("@sinclair/typebox").TString;
|
|
35
|
+
spaceId: import("@sinclair/typebox").TString;
|
|
36
|
+
groupId: import("@sinclair/typebox").TString;
|
|
37
|
+
}>;
|
|
21
38
|
export default class TwakeSpaces extends DmPlugin {
|
|
39
|
+
static optionDefinitions: {
|
|
40
|
+
twake_space_base: import("../../config/options").StringOption;
|
|
41
|
+
twake_space_class: import("../../config/options").ArrayOption;
|
|
42
|
+
twake_space_display_name_attribute: import("../../config/options").StringOption;
|
|
43
|
+
twake_space_admin_attribute: import("../../config/options").StringOption;
|
|
44
|
+
twake_space_editor_attribute: import("../../config/options").StringOption;
|
|
45
|
+
twake_space_viewer_attribute: import("../../config/options").StringOption;
|
|
46
|
+
twake_space_user_role_attribute: import("../../config/options").StringOption;
|
|
47
|
+
twake_space_exchange: import("../../config/options").StringOption;
|
|
48
|
+
twake_space_sync_queue: import("../../config/options").StringOption;
|
|
49
|
+
};
|
|
22
50
|
name: string;
|
|
23
51
|
roles: Role[];
|
|
24
52
|
dependencies: Record<string, string>;
|
|
@@ -32,6 +60,8 @@ export default class TwakeSpaces extends DmPlugin {
|
|
|
32
60
|
private readonly exchange;
|
|
33
61
|
private readonly domainAttribute;
|
|
34
62
|
private readonly orgPattern?;
|
|
63
|
+
private readonly groupSettings;
|
|
64
|
+
private readonly instanceSettings;
|
|
35
65
|
private readonly domains;
|
|
36
66
|
/**
|
|
37
67
|
* Changes are followed one at a time, each from the directory as it is
|
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module plugins/twake/tombstone
|
|
3
|
-
*
|
|
4
|
-
* Turns the delete of an account into a tombstone: the entry stays, flagged
|
|
5
|
-
* as deleted, dated, locked, with the reason and without the attributes the
|
|
6
|
-
* deployment wants gone. The address it holds cannot be taken again until the
|
|
7
|
-
* tombstone is erased.
|
|
8
|
-
*
|
|
9
|
-
* SCIM treats a tombstone as gone. Erasing removes the entry and its group
|
|
10
|
-
* memberships, once the deletion is old enough or when forced, and announces
|
|
11
|
-
* nothing: the deletion already did.
|
|
12
|
-
*
|
|
13
|
-
* See `docs/usage/plugins/integrations/tombstone.md`.
|
|
14
|
-
*/
|
|
15
1
|
import type { Express, Request } from 'express';
|
|
16
2
|
import DmPlugin, { type Role } from '../../abstract/plugin';
|
|
17
3
|
import type { DM } from '../../bin';
|
|
18
4
|
import type { Hooks } from '../../hooks';
|
|
5
|
+
export declare const EraseTombstoneBody: import("@sinclair/typebox").TObject<{
|
|
6
|
+
dn: import("@sinclair/typebox").TString;
|
|
7
|
+
force: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const EraseTombstoneResponse: import("@sinclair/typebox").TObject<{
|
|
10
|
+
success: import("@sinclair/typebox").TBoolean;
|
|
11
|
+
}>;
|
|
19
12
|
export default class TwakeTombstone extends DmPlugin {
|
|
13
|
+
static optionDefinitions: {
|
|
14
|
+
twake_tombstone_dn: import("../../config/options").ArrayOption;
|
|
15
|
+
twake_tombstone_default_reason: import("../../config/options").StringOption;
|
|
16
|
+
twake_tombstone_reason_header: import("../../config/options").StringOption;
|
|
17
|
+
twake_tombstone_reasons: import("../../config/options").ArrayOption;
|
|
18
|
+
twake_tombstone_clear_attributes: import("../../config/options").ArrayOption;
|
|
19
|
+
twake_tombstone_erase_min_age: import("../../config/options").NumberOption;
|
|
20
|
+
twake_tombstone_group_bases: import("../../config/options").ArrayOption;
|
|
21
|
+
};
|
|
20
22
|
name: string;
|
|
21
23
|
roles: Role[];
|
|
22
24
|
private readonly attrs;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Twake groups options, see `docs/plugin-development/options.md`.
|
|
3
|
+
*/
|
|
4
|
+
import type { Config } from '../../config/args';
|
|
5
|
+
import { type OptionsOf } from '../../config/options';
|
|
6
|
+
export declare const twakeGroupsOptions: {
|
|
7
|
+
twake_group_base: import("../../config/options").StringOption;
|
|
8
|
+
twake_group_user_base: import("../../config/options").StringOption;
|
|
9
|
+
twake_group_organization_dn: import("../../config/options").StringOption;
|
|
10
|
+
twake_group_organization_status_attribute: import("../../config/options").StringOption;
|
|
11
|
+
twake_group_organization_deleted_value: import("../../config/options").StringOption;
|
|
12
|
+
twake_group_display_name_attribute: import("../../config/options").StringOption;
|
|
13
|
+
twake_group_color_attribute: import("../../config/options").StringOption;
|
|
14
|
+
twake_group_created_at_attribute: import("../../config/options").StringOption;
|
|
15
|
+
twake_group_max_page_limit: import("../../config/options").NumberOption;
|
|
16
|
+
twake_group_member_fields: import("../../config/options").JsonOption<{}>;
|
|
17
|
+
};
|
|
18
|
+
export type TwakeGroupsOptions = OptionsOf<typeof twakeGroupsOptions>;
|
|
19
|
+
/** The checked values for a caller that holds a Config instead of the plugin */
|
|
20
|
+
export declare function twakeGroupsOptionsOf(config: Config): TwakeGroupsOptions;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Twake instances options, see `docs/plugin-development/options.md`.
|
|
3
|
+
*/
|
|
4
|
+
import type { Config } from '../../config/args';
|
|
5
|
+
import { type OptionsOf } from '../../config/options';
|
|
6
|
+
export declare const twakeInstancesOptions: {
|
|
7
|
+
twake_instance_dn: import("../../config/options").ArrayOption;
|
|
8
|
+
twake_instance_skip_attribute: import("../../config/options").StringOption;
|
|
9
|
+
twake_instance_skip_value: import("../../config/options").StringOption;
|
|
10
|
+
twake_instance_provider: import("../../config/options").StringOption;
|
|
11
|
+
twake_instance_id: import("../../config/options").StringOption;
|
|
12
|
+
twake_instance_fqdn_attribute: import("../../config/options").StringOption;
|
|
13
|
+
twake_instance_sent_attribute: import("../../config/options").StringOption;
|
|
14
|
+
twake_instance_locale: import("../../config/options").StringOption;
|
|
15
|
+
twake_instance_timeout: import("../../config/options").NumberOption;
|
|
16
|
+
twake_instance_cloudery_url: import("../../config/options").StringOption;
|
|
17
|
+
twake_instance_cloudery_token: import("../../config/options").StringOption;
|
|
18
|
+
twake_instance_cloudery_offer: import("../../config/options").StringOption;
|
|
19
|
+
twake_instance_cloudery_domain: import("../../config/options").StringOption;
|
|
20
|
+
twake_instance_cloudery_organization_offer: import("../../config/options").StringOption;
|
|
21
|
+
twake_instance_cozy_url: import("../../config/options").StringOption;
|
|
22
|
+
twake_instance_cozy_user: import("../../config/options").StringOption;
|
|
23
|
+
twake_instance_cozy_passphrase: import("../../config/options").StringOption;
|
|
24
|
+
twake_instance_cozy_domain: import("../../config/options").StringOption;
|
|
25
|
+
twake_instance_cozy_context: import("../../config/options").StringOption;
|
|
26
|
+
twake_instance_cozy_apps: import("../../config/options").StringOption;
|
|
27
|
+
twake_instance_cozy_org_id: import("../../config/options").StringOption;
|
|
28
|
+
twake_instance_cozy_org_domain: import("../../config/options").StringOption;
|
|
29
|
+
twake_instance_auth_exchange: import("../../config/options").StringOption;
|
|
30
|
+
twake_instance_b2b_exchange: import("../../config/options").StringOption;
|
|
31
|
+
twake_instance_user_created_key: import("../../config/options").StringOption;
|
|
32
|
+
twake_instance_organization_created_key: import("../../config/options").StringOption;
|
|
33
|
+
twake_instance_workplace_created_key: import("../../config/options").StringOption;
|
|
34
|
+
twake_instance_queue: import("../../config/options").StringOption;
|
|
35
|
+
twake_instance_organization_base: import("../../config/options").StringOption;
|
|
36
|
+
twake_instance_organization_id_attribute: import("../../config/options").StringOption;
|
|
37
|
+
twake_instance_organization_domain_attribute: import("../../config/options").StringOption;
|
|
38
|
+
twake_instance_organization_name_attribute: import("../../config/options").StringOption;
|
|
39
|
+
twake_instance_organization_fqdn_attribute: import("../../config/options").StringOption;
|
|
40
|
+
};
|
|
41
|
+
export type TwakeInstancesOptions = OptionsOf<typeof twakeInstancesOptions>;
|
|
42
|
+
/** The checked values for a caller that holds a Config instead of the plugin */
|
|
43
|
+
export declare function twakeInstancesOptionsOf(config: Config): TwakeInstancesOptions;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Account lifecycle options, shared by the Twake lifecycle plugins. See
|
|
3
|
+
* `docs/plugin-development/options.md`.
|
|
4
|
+
*/
|
|
5
|
+
import type { Config } from '../../config/args';
|
|
6
|
+
import { type OptionsOf } from '../../config/options';
|
|
7
|
+
export declare const twakeLifecycleOptions: {
|
|
8
|
+
twake_lifecycle_role_attribute: import("../../config/options").StringOption;
|
|
9
|
+
twake_lifecycle_lock_attribute: import("../../config/options").StringOption;
|
|
10
|
+
twake_lifecycle_lock_value: import("../../config/options").StringOption;
|
|
11
|
+
twake_lifecycle_deleted_attribute: import("../../config/options").StringOption;
|
|
12
|
+
twake_lifecycle_deleted_value: import("../../config/options").StringOption;
|
|
13
|
+
twake_lifecycle_deleted_at_attribute: import("../../config/options").StringOption;
|
|
14
|
+
twake_lifecycle_deleted_at_format: import("../../config/options").StringOption;
|
|
15
|
+
twake_lifecycle_reason_attribute: import("../../config/options").StringOption;
|
|
16
|
+
twake_lifecycle_rules: import("../../config/options").StringOption;
|
|
17
|
+
twake_lifecycle_member_attribute: import("../../config/options").StringOption;
|
|
18
|
+
};
|
|
19
|
+
export type TwakeLifecycleOptions = OptionsOf<typeof twakeLifecycleOptions>;
|
|
20
|
+
/** The checked values for a caller that holds a Config instead of the plugin */
|
|
21
|
+
export declare function twakeLifecycleOptionsOf(config: Config): TwakeLifecycleOptions;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Twake spaces options, see `docs/plugin-development/options.md`.
|
|
3
|
+
*/
|
|
4
|
+
import type { Config } from '../../config/args';
|
|
5
|
+
import { type OptionsOf } from '../../config/options';
|
|
6
|
+
export declare const twakeSpacesOptions: {
|
|
7
|
+
twake_space_base: import("../../config/options").StringOption;
|
|
8
|
+
twake_space_class: import("../../config/options").ArrayOption;
|
|
9
|
+
twake_space_display_name_attribute: import("../../config/options").StringOption;
|
|
10
|
+
twake_space_admin_attribute: import("../../config/options").StringOption;
|
|
11
|
+
twake_space_editor_attribute: import("../../config/options").StringOption;
|
|
12
|
+
twake_space_viewer_attribute: import("../../config/options").StringOption;
|
|
13
|
+
twake_space_user_role_attribute: import("../../config/options").StringOption;
|
|
14
|
+
twake_space_exchange: import("../../config/options").StringOption;
|
|
15
|
+
twake_space_sync_queue: import("../../config/options").StringOption;
|
|
16
|
+
};
|
|
17
|
+
export type TwakeSpacesOptions = OptionsOf<typeof twakeSpacesOptions>;
|
|
18
|
+
/** The checked values for a caller that holds a Config instead of the plugin */
|
|
19
|
+
export declare function twakeSpacesOptionsOf(config: Config): TwakeSpacesOptions;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Twake tombstone options, see `docs/plugin-development/options.md`.
|
|
3
|
+
*/
|
|
4
|
+
import type { Config } from '../../config/args';
|
|
5
|
+
import { type OptionsOf } from '../../config/options';
|
|
6
|
+
export declare const twakeTombstoneOptions: {
|
|
7
|
+
twake_tombstone_dn: import("../../config/options").ArrayOption;
|
|
8
|
+
twake_tombstone_default_reason: import("../../config/options").StringOption;
|
|
9
|
+
twake_tombstone_reason_header: import("../../config/options").StringOption;
|
|
10
|
+
twake_tombstone_reasons: import("../../config/options").ArrayOption;
|
|
11
|
+
twake_tombstone_clear_attributes: import("../../config/options").ArrayOption;
|
|
12
|
+
twake_tombstone_erase_min_age: import("../../config/options").NumberOption;
|
|
13
|
+
twake_tombstone_group_bases: import("../../config/options").ArrayOption;
|
|
14
|
+
};
|
|
15
|
+
export type TwakeTombstoneOptions = OptionsOf<typeof twakeTombstoneOptions>;
|
|
16
|
+
/** The checked values for a caller that holds a Config instead of the plugin */
|
|
17
|
+
export declare function twakeTombstoneOptionsOf(config: Config): TwakeTombstoneOptions;
|
package/docs/README.md
CHANGED
|
@@ -20,6 +20,7 @@ Create and extend LDAP-Rest with custom plugins.
|
|
|
20
20
|
|
|
21
21
|
- **[Development Guide](plugin-development/README.md)** - Architecture and plugin creation
|
|
22
22
|
- **[Hooks](plugin-development/hooks.md)** - LDAP hooks system
|
|
23
|
+
- **[Routes](plugin-development/routes.md)** - Declaring routes and their input schemas
|
|
23
24
|
- **[Testing](plugin-development/testing.md)** - Testing with embedded LDAP
|
|
24
25
|
- **[Dependencies](plugin-development/dependencies.md)** - Plugin dependencies matrix
|
|
25
26
|
|
|
@@ -156,6 +156,7 @@ curl -H "Accept: application/json" \
|
|
|
156
156
|
{
|
|
157
157
|
"apiPrefix": "/api",
|
|
158
158
|
"ldapBase": "dc=example,dc=com",
|
|
159
|
+
"version": "1.2.1",
|
|
159
160
|
"features": {
|
|
160
161
|
"flatResources": [
|
|
161
162
|
{
|
|
@@ -242,6 +243,10 @@ curl -H "Accept: application/json" \
|
|
|
242
243
|
|
|
243
244
|
- `apiPrefix`: API URL prefix (default: `/api`)
|
|
244
245
|
- `ldapBase`: LDAP base DN
|
|
246
|
+
- `version`: the server's version, as its `package.json` declares it. A client
|
|
247
|
+
compares it with the range it supports and tells an administrator when the
|
|
248
|
+
server is older. Optional: an installation that moved that file leaves it
|
|
249
|
+
out, and a client must then work without it
|
|
245
250
|
- `features.ldapFlatGeneric.flatResources`: Array of flat LDAP resources (users, positions, etc.)
|
|
246
251
|
- `features.ldapGroups`: Group management configuration (if enabled)
|
|
247
252
|
- `features.ldapOrganizations`: Organization tree configuration (if enabled)
|
|
@@ -1078,7 +1083,7 @@ curl -X POST \
|
|
|
1078
1083
|
```
|
|
1079
1084
|
|
|
1080
1085
|
A member that does not exist answers 400 naming it, and none of the members
|
|
1081
|
-
is added (unless `--
|
|
1086
|
+
is added (unless `--groups-allow-unexistent-members` is set). Group creation
|
|
1082
1087
|
checks its `member` list the same way:
|
|
1083
1088
|
|
|
1084
1089
|
```json
|
|
@@ -1335,8 +1340,9 @@ no `limit` was given —
|
|
|
1335
1340
|
|
|
1336
1341
|
#### 500 Internal Server Error
|
|
1337
1342
|
|
|
1338
|
-
|
|
1339
|
-
|
|
1343
|
+
Every 5xx answers this body, whether the route threw or reported the failure
|
|
1344
|
+
through the server's own helper. The failure is in the server's logs, not in
|
|
1345
|
+
the response; the message names it only when the server runs with `--debug`:
|
|
1340
1346
|
|
|
1341
1347
|
```json
|
|
1342
1348
|
{
|