diff --git a/.changeset/smart-snails-switch.md b/.changeset/smart-snails-switch.md new file mode 100644 index 0000000000..59bc948f8b --- /dev/null +++ b/.changeset/smart-snails-switch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-ldap': patch +--- + +Add config support for LDAP search options. diff --git a/plugins/catalog-backend-module-ldap/config.d.ts b/plugins/catalog-backend-module-ldap/config.d.ts index df167bc520..2605eb62f3 100644 --- a/plugins/catalog-backend-module-ldap/config.d.ts +++ b/plugins/catalog-backend-module-ldap/config.d.ts @@ -79,6 +79,10 @@ export interface Config { scope?: 'base' | 'one' | 'sub'; filter?: string; attributes?: string | string[]; + sizeLimit?: number; + timeLimit?: number; + derefAliases?: number; + typesOnly?: boolean; paged?: | boolean | { @@ -159,6 +163,10 @@ export interface Config { scope?: 'base' | 'one' | 'sub'; filter?: string; attributes?: string | string[]; + sizeLimit?: number; + timeLimit?: number; + derefAliases?: number; + typesOnly?: boolean; paged?: | boolean | { diff --git a/plugins/catalog-backend-module-ldap/src/ldap/config.test.ts b/plugins/catalog-backend-module-ldap/src/ldap/config.test.ts index 06ac24d3ae..292e9a218e 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/config.test.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/config.test.ts @@ -87,6 +87,10 @@ describe('readLdapConfig', () => { attributes: ['*'], filter: 'f', paged: true, + timeLimit: 42, + sizeLimit: 100, + derefAliases: 0, + typesOnly: false, }, set: { p: 'v' }, map: { @@ -109,6 +113,10 @@ describe('readLdapConfig', () => { pageSize: 7, pagePause: true, }, + timeLimit: 42, + sizeLimit: 100, + derefAliases: 1, + typesOnly: true, }, set: { p: 'v' }, map: { @@ -138,6 +146,10 @@ describe('readLdapConfig', () => { attributes: ['*'], filter: 'f', paged: true, + timeLimit: 42, + sizeLimit: 100, + derefAliases: 0, + typesOnly: false, }, set: { p: 'v' }, map: { @@ -160,6 +172,10 @@ describe('readLdapConfig', () => { pageSize: 7, pagePause: true, }, + timeLimit: 42, + sizeLimit: 100, + derefAliases: 1, + typesOnly: true, }, set: { p: 'v' }, map: { diff --git a/plugins/catalog-backend-module-ldap/src/ldap/config.ts b/plugins/catalog-backend-module-ldap/src/ldap/config.ts index 526467962e..f4d589974f 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/config.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/config.ts @@ -208,6 +208,10 @@ export function readLdapConfig(config: Config): LdapProviderConfig[] { scope: c.getOptionalString('scope') as SearchOptions['scope'], filter: formatFilter(c.getOptionalString('filter')), attributes: c.getOptionalStringArray('attributes'), + sizeLimit: c.getOptionalNumber('sizeLimit'), + timeLimit: c.getOptionalNumber('timeLimit'), + derefAliases: c.getOptionalNumber('derefAliases'), + typesOnly: c.getOptionalBoolean('typesOnly'), ...(paged !== undefined ? { paged } : undefined), }; }