catalog: use LoggerService instead of winston Logger in ldap module

Signed-off-by: Elias Rieb <e.rieb@posteo.de>
This commit is contained in:
Elias Rieb
2024-05-07 16:44:14 +02:00
parent 9c45fa1399
commit 76999670d7
8 changed files with 31 additions and 26 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-ldap': patch
---
Remove dependency to Winston Logger and use Backstage LoggerService instead
@@ -12,7 +12,7 @@ import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { GroupEntity } from '@backstage/catalog-model';
import { JsonValue } from '@backstage/types';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import { Logger } from 'winston';
import { LoggerService } from '@backstage/backend-plugin-api';
import { SearchEntry } from 'ldapjs';
import { SearchOptions } from 'ldapjs';
import { TaskRunner } from '@backstage/backend-tasks';
@@ -76,10 +76,10 @@ export const LDAP_UUID_ANNOTATION = 'backstage.io/ldap-uuid';
// @public
export class LdapClient {
constructor(client: Client, logger: Logger);
constructor(client: Client, logger: LoggerService);
// (undocumented)
static create(
logger: Logger,
logger: LoggerService,
target: string,
bind?: BindConfig,
tls?: TLSConfig,
@@ -99,7 +99,7 @@ export class LdapOrgEntityProvider implements EntityProvider {
constructor(options: {
id: string;
provider: LdapProviderConfig;
logger: Logger;
logger: LoggerService;
userTransformer?: UserTransformer;
groupTransformer?: GroupTransformer;
});
@@ -112,14 +112,14 @@ export class LdapOrgEntityProvider implements EntityProvider {
): LdapOrgEntityProvider;
// (undocumented)
getProviderName(): string;
read(options?: { logger?: Logger }): Promise<void>;
read(options?: { logger?: LoggerService }): Promise<void>;
}
// @public
export interface LdapOrgEntityProviderOptions {
groupTransformer?: GroupTransformer;
id: string;
logger: Logger;
logger: LoggerService;
schedule: 'manual' | TaskRunner;
target: string;
userTransformer?: UserTransformer;
@@ -129,7 +129,7 @@ export interface LdapOrgEntityProviderOptions {
export class LdapOrgReaderProcessor implements CatalogProcessor {
constructor(options: {
providers: LdapProviderConfig[];
logger: Logger;
logger: LoggerService;
groupTransformer?: GroupTransformer;
userTransformer?: UserTransformer;
});
@@ -137,7 +137,7 @@ export class LdapOrgReaderProcessor implements CatalogProcessor {
static fromConfig(
configRoot: Config,
options: {
logger: Logger;
logger: LoggerService;
groupTransformer?: GroupTransformer;
userTransformer?: UserTransformer;
},
@@ -187,7 +187,7 @@ export function readLdapOrg(
options: {
groupTransformer?: GroupTransformer;
userTransformer?: UserTransformer;
logger: Logger;
logger: LoggerService;
},
): Promise<{
users: UserEntity[];
@@ -36,6 +36,7 @@
"test": "backstage-cli package test"
},
"dependencies": {
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
@@ -46,8 +47,7 @@
"@types/ldapjs": "^2.2.5",
"ldapjs": "^2.3.3",
"lodash": "^4.17.21",
"uuid": "^9.0.0",
"winston": "^3.2.1"
"uuid": "^9.0.0"
},
"devDependencies": {
"@backstage/cli": "workspace:^",
@@ -19,7 +19,6 @@ import { readFile } from 'fs/promises';
import ldap, { Client, SearchEntry, SearchOptions } from 'ldapjs';
import { cloneDeep } from 'lodash';
import tlsLib from 'tls';
import { Logger } from 'winston';
import { BindConfig, TLSConfig } from './config';
import { createOptions, errorString } from './util';
import {
@@ -29,6 +28,7 @@ import {
FreeIpaVendor,
LdapVendor,
} from './vendors';
import { LoggerService } from '@backstage/backend-plugin-api';
/**
* Basic wrapper for the `ldapjs` library.
@@ -41,7 +41,7 @@ export class LdapClient {
private vendor: Promise<LdapVendor> | undefined;
static async create(
logger: Logger,
logger: LoggerService,
target: string,
bind?: BindConfig,
tls?: TLSConfig,
@@ -89,7 +89,7 @@ export class LdapClient {
constructor(
private readonly client: Client,
private readonly logger: Logger,
private readonly logger: LoggerService,
) {}
/**
@@ -31,9 +31,9 @@ import {
LDAP_UUID_ANNOTATION,
} from './constants';
import { LdapVendor } from './vendors';
import { Logger } from 'winston';
import { GroupTransformer, UserTransformer } from './types';
import { mapStringAttr } from './util';
import { LoggerService } from '@backstage/backend-plugin-api';
/**
* The default implementation of the transformation from an LDAP entry to a
@@ -269,7 +269,7 @@ export async function readLdapOrg(
options: {
groupTransformer?: GroupTransformer;
userTransformer?: UserTransformer;
logger: Logger;
logger: LoggerService;
},
): Promise<{
users: UserEntity[];
@@ -27,7 +27,6 @@ import {
} from '@backstage/plugin-catalog-node';
import { merge } from 'lodash';
import * as uuid from 'uuid';
import { Logger } from 'winston';
import {
GroupTransformer,
LdapClient,
@@ -37,6 +36,7 @@ import {
readLdapOrg,
UserTransformer,
} from '../ldap';
import { LoggerService } from '@backstage/backend-plugin-api';
/**
* Options for {@link LdapOrgEntityProvider}.
@@ -64,7 +64,7 @@ export interface LdapOrgEntityProviderOptions {
/**
* The logger to use.
*/
logger: Logger;
logger: LoggerService;
/**
* The refresh schedule to use.
@@ -143,7 +143,7 @@ export class LdapOrgEntityProvider implements EntityProvider {
private options: {
id: string;
provider: LdapProviderConfig;
logger: Logger;
logger: LoggerService;
userTransformer?: UserTransformer;
groupTransformer?: GroupTransformer;
},
@@ -164,7 +164,7 @@ export class LdapOrgEntityProvider implements EntityProvider {
* Runs one single complete ingestion. This is only necessary if you use
* manual scheduling.
*/
async read(options?: { logger?: Logger }) {
async read(options?: { logger?: LoggerService }) {
if (!this.connection) {
throw new Error('Not initialized');
}
@@ -237,7 +237,7 @@ export class LdapOrgEntityProvider implements EntityProvider {
}
// Helps wrap the timing and logging behaviors
function trackProgress(logger: Logger) {
function trackProgress(logger: LoggerService) {
let timestamp = Date.now();
let summary: string;
@@ -15,7 +15,6 @@
*/
import { Config } from '@backstage/config';
import { Logger } from 'winston';
import {
GroupTransformer,
LdapClient,
@@ -30,6 +29,7 @@ import {
processingResult,
} from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import { LoggerService } from '@backstage/backend-plugin-api';
/**
* Extracts teams and users out of an LDAP server.
@@ -38,14 +38,14 @@ import { LocationSpec } from '@backstage/plugin-catalog-common';
*/
export class LdapOrgReaderProcessor implements CatalogProcessor {
private readonly providers: LdapProviderConfig[];
private readonly logger: Logger;
private readonly logger: LoggerService;
private readonly groupTransformer?: GroupTransformer;
private readonly userTransformer?: UserTransformer;
static fromConfig(
configRoot: Config,
options: {
logger: Logger;
logger: LoggerService;
groupTransformer?: GroupTransformer;
userTransformer?: UserTransformer;
},
@@ -62,7 +62,7 @@ export class LdapOrgReaderProcessor implements CatalogProcessor {
constructor(options: {
providers: LdapProviderConfig[];
logger: Logger;
logger: LoggerService;
groupTransformer?: GroupTransformer;
userTransformer?: UserTransformer;
}) {
+1 -1
View File
@@ -5269,6 +5269,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@backstage/plugin-catalog-backend-module-ldap@workspace:plugins/catalog-backend-module-ldap"
dependencies:
"@backstage/backend-plugin-api": "workspace:^"
"@backstage/backend-tasks": "workspace:^"
"@backstage/catalog-model": "workspace:^"
"@backstage/cli": "workspace:^"
@@ -5282,7 +5283,6 @@ __metadata:
ldapjs: ^2.3.3
lodash: ^4.17.21
uuid: ^9.0.0
winston: ^3.2.1
languageName: unknown
linkType: soft