Merge pull request #26038 from backstage/nbs10/delete-backend-tasks-package

[NBS1.0] Mark `backend-tasks` as deprecated
This commit is contained in:
Camila Belo
2024-08-19 16:31:58 +02:00
committed by GitHub
146 changed files with 605 additions and 509 deletions
@@ -15,8 +15,8 @@ import { EntityProvider } from '@backstage/plugin-catalog-node';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { TaskRunner } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
import { UrlReaderService } from '@backstage/backend-plugin-api';
// @public
@@ -96,8 +96,8 @@ export class AwsS3EntityProvider implements EntityProvider {
configRoot: Config,
options: {
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): AwsS3EntityProvider[];
// (undocumented)
+3 -3
View File
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
export interface Config {
catalog?: {
@@ -69,7 +69,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
}
| {
[name: string]: {
@@ -97,7 +97,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
};
};
};
@@ -59,7 +59,6 @@
"@aws-sdk/types": "^3.347.0",
"@backstage/backend-defaults": "workspace:^",
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { catalogModuleAwsS3EntityProvider } from './catalogModuleAwsS3EntityProvider';
@@ -23,7 +23,7 @@ import { AwsS3EntityProvider } from '../providers';
describe('catalogModuleAwsS3EntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array<AwsS3EntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const extensionPoint = {
addEntityProvider: (providers: any) => {
@@ -15,10 +15,10 @@
*/
import {
PluginTaskScheduler,
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
SchedulerService,
SchedulerServiceTaskRunner,
SchedulerServiceTaskInvocationDefinition,
} from '@backstage/backend-plugin-api';
import { ConfigReader } from '@backstage/config';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { AwsS3EntityProvider } from './AwsS3EntityProvider';
@@ -27,14 +27,14 @@ import 'aws-sdk-client-mock-jest';
import { ListObjectsV2Command, S3Client } from '@aws-sdk/client-s3';
import { mockServices } from '@backstage/backend-test-utils';
class PersistingTaskRunner implements TaskRunner {
private tasks: TaskInvocationDefinition[] = [];
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
getTasks() {
return this.tasks;
}
run(task: TaskInvocationDefinition): Promise<void> {
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
this.tasks.push(task);
return Promise.resolve(undefined);
}
@@ -117,7 +117,7 @@ describe('AwsS3EntityProvider', () => {
if (scheduleInConfig) {
schedulingConfig.scheduler = {
createScheduledTaskRunner: (_: any) => schedule,
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
} else {
schedulingConfig.schedule = schedule;
}
@@ -392,7 +392,7 @@ describe('AwsS3EntityProvider', () => {
it('fail with scheduler but no schedule config', () => {
const scheduler = {
createScheduledTaskRunner: (_: any) => jest.fn(),
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const config = new ConfigReader({
catalog: {
providers: {
@@ -14,7 +14,6 @@
* limitations under the License.
*/
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import { Config } from '@backstage/config';
import { AwsS3Integration, ScmIntegrations } from '@backstage/integration';
import {
@@ -36,7 +35,11 @@ import {
AwsCredentialsManager,
DefaultAwsCredentialsManager,
} from '@backstage/integration-aws-node';
import { LoggerService } from '@backstage/backend-plugin-api';
import {
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
// TODO: event-based updates using S3 events (+ queue like SQS)?
/**
@@ -57,8 +60,8 @@ export class AwsS3EntityProvider implements EntityProvider {
configRoot: Config,
options: {
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): AwsS3EntityProvider[] {
const providerConfigs = readAwsS3Configs(configRoot);
@@ -107,7 +110,7 @@ export class AwsS3EntityProvider implements EntityProvider {
private readonly integration: AwsS3Integration,
private readonly awsCredentialsManager: AwsCredentialsManager,
logger: LoggerService,
taskRunner: TaskRunner,
taskRunner: SchedulerServiceTaskRunner,
) {
this.logger = logger.child({
target: this.getProviderName(),
@@ -116,7 +119,9 @@ export class AwsS3EntityProvider implements EntityProvider {
this.scheduleFn = this.createScheduleFn(taskRunner);
}
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
private createScheduleFn(
taskRunner: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = `${this.getProviderName()}:refresh`;
return taskRunner.run({
@@ -14,9 +14,9 @@
* limitations under the License.
*/
import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks';
import { Config } from '@backstage/config';
import { AwsS3Config } from './types';
import { readSchedulerServiceTaskScheduleDefinitionFromConfig } from '@backstage/backend-plugin-api';
const DEFAULT_PROVIDER_ID = 'default';
@@ -49,7 +49,9 @@ function readAwsS3Config(id: string, config: Config): AwsS3Config {
const accountId = config.getOptionalString('accountId');
const schedule = config.has('schedule')
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
config.getConfig('schedule'),
)
: undefined;
return {
@@ -14,13 +14,13 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
export type AwsS3Config = {
id: string;
bucketName: string;
prefix?: string;
region?: string;
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
accountId?: string;
};
@@ -10,9 +10,9 @@ import { EntityProvider } from '@backstage/plugin-catalog-node';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
import { ScmIntegrationRegistry } from '@backstage/integration';
import { TaskRunner } from '@backstage/backend-tasks';
// @public
export class AzureDevOpsDiscoveryProcessor implements CatalogProcessor {
@@ -46,8 +46,8 @@ export class AzureDevOpsEntityProvider implements EntityProvider {
configRoot: Config,
options: {
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): AzureDevOpsEntityProvider[];
// (undocumented)
+2 -2
View File
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
export interface Config {
catalog?: {
@@ -52,7 +52,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
};
};
};
@@ -52,7 +52,6 @@
},
"dependencies": {
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/integration": "workspace:^",
"@backstage/plugin-catalog-common": "workspace:^",
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { catalogModuleAzureDevOpsEntityProvider } from './catalogModuleAzureDevOpsEntityProvider';
@@ -23,7 +23,7 @@ import { AzureDevOpsEntityProvider } from '../providers';
describe('catalogModuleAzureDevOpsEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array<AzureDevOpsEntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const extensionPoint = {
addEntityProvider: (providers: any) => {
@@ -15,10 +15,10 @@
*/
import {
PluginTaskScheduler,
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
SchedulerService,
SchedulerServiceTaskRunner,
SchedulerServiceTaskInvocationDefinition,
} from '@backstage/backend-plugin-api';
import { ConfigReader } from '@backstage/config';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { CodeSearchResultItem } from '../lib';
@@ -29,14 +29,14 @@ import { mockServices } from '@backstage/backend-test-utils';
jest.mock('../lib');
const mockCodeSearch = codeSearch as jest.MockedFunction<typeof codeSearch>;
class PersistingTaskRunner implements TaskRunner {
private tasks: TaskInvocationDefinition[] = [];
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
getTasks() {
return this.tasks;
}
run(task: TaskInvocationDefinition): Promise<void> {
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
this.tasks.push(task);
return Promise.resolve(undefined);
}
@@ -83,7 +83,7 @@ describe('AzureDevOpsEntityProvider', () => {
if (scheduleInConfig) {
schedulingConfig.scheduler = {
createScheduledTaskRunner: (_: any) => schedule,
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
} else {
schedulingConfig.schedule = schedule;
}
@@ -275,7 +275,7 @@ describe('AzureDevOpsEntityProvider', () => {
it('fail with scheduler but no schedule config', () => {
const scheduler = {
createScheduledTaskRunner: (_: any) => jest.fn(),
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const config = new ConfigReader({
catalog: {
providers: {
@@ -14,7 +14,6 @@
* limitations under the License.
*/
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import { Config } from '@backstage/config';
import {
AzureDevOpsCredentialsProvider,
@@ -32,7 +31,11 @@ import { readAzureDevOpsConfigs } from './config';
import { AzureDevOpsConfig } from './types';
import * as uuid from 'uuid';
import { codeSearch, CodeSearchResultItem } from '../lib';
import { LoggerService } from '@backstage/backend-plugin-api';
import {
SchedulerService,
SchedulerServiceTaskRunner,
LoggerService,
} from '@backstage/backend-plugin-api';
/**
* Provider which discovers catalog files within an Azure DevOps repositories.
@@ -50,8 +53,8 @@ export class AzureDevOpsEntityProvider implements EntityProvider {
configRoot: Config,
options: {
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): AzureDevOpsEntityProvider[] {
const providerConfigs = readAzureDevOpsConfigs(configRoot);
@@ -99,7 +102,7 @@ export class AzureDevOpsEntityProvider implements EntityProvider {
private readonly integration: AzureIntegration,
private readonly credentialsProvider: AzureDevOpsCredentialsProvider,
logger: LoggerService,
taskRunner: TaskRunner,
taskRunner: SchedulerServiceTaskRunner,
) {
this.logger = logger.child({
target: this.getProviderName(),
@@ -108,7 +111,9 @@ export class AzureDevOpsEntityProvider implements EntityProvider {
this.scheduleFn = this.createScheduleFn(taskRunner);
}
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
private createScheduleFn(
taskRunner: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = `${this.getProviderName()}:refresh`;
return taskRunner.run({
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks';
import { readSchedulerServiceTaskScheduleDefinitionFromConfig } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import { AzureDevOpsConfig } from './types';
@@ -45,7 +45,9 @@ function readAzureDevOpsConfig(id: string, config: Config): AzureDevOpsConfig {
const path = config.getOptionalString('path') || '/catalog-info.yaml';
const schedule = config.has('schedule')
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
config.getConfig('schedule'),
)
: undefined;
return {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
export type AzureDevOpsConfig = {
id: string;
@@ -24,5 +24,5 @@ export type AzureDevOpsConfig = {
repository: string;
branch?: string;
path: string;
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
};
@@ -35,7 +35,6 @@
"dependencies": {
"@backstage/backend-openapi-utils": "workspace:^",
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
@@ -37,10 +37,11 @@ import {
AuthService,
DiscoveryService,
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
import * as uuid from 'uuid';
import lodash from 'lodash';
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
const HTTP_VERBS: (keyof PathItemObject)[] = [
'get',
@@ -163,7 +164,7 @@ export class InternalOpenApiDocumentationProvider implements EntityProvider {
public readonly discovery: DiscoveryService,
public readonly logger: LoggerService,
public readonly auth: AuthService,
taskRunner: TaskRunner,
taskRunner: SchedulerServiceTaskRunner,
) {
this.scheduleFn = this.createScheduleFn(taskRunner);
}
@@ -173,7 +174,7 @@ export class InternalOpenApiDocumentationProvider implements EntityProvider {
options: {
discovery: DiscoveryService;
logger: LoggerService;
schedule: PluginTaskScheduler;
schedule: SchedulerService;
auth: AuthService;
},
) {
@@ -204,7 +205,9 @@ export class InternalOpenApiDocumentationProvider implements EntityProvider {
return await this.scheduleFn();
}
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
private createScheduleFn(
taskRunner: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = `${this.getProviderName()}:refresh`;
return taskRunner.run({
@@ -10,8 +10,8 @@ import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { Events } from '@backstage/plugin-bitbucket-cloud-common';
import { EventsService } from '@backstage/plugin-events-node';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { TaskRunner } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
import { TokenManager } from '@backstage/backend-common';
// @public
@@ -25,8 +25,8 @@ export class BitbucketCloudEntityProvider implements EntityProvider {
catalogApi?: CatalogApi;
events?: EventsService;
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
tokenManager?: TokenManager;
},
): BitbucketCloudEntityProvider[];
+3 -3
View File
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
export interface Config {
catalog?: {
@@ -58,7 +58,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the discovery.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
}
| {
[name: string]: {
@@ -91,7 +91,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the discovery.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
};
};
};
@@ -53,7 +53,6 @@
"dependencies": {
"@backstage/backend-common": "workspace:^",
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-client": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
@@ -14,8 +14,10 @@
* limitations under the License.
*/
import { createServiceFactory } from '@backstage/backend-plugin-api';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import {
createServiceFactory,
SchedulerServiceTaskScheduleDefinition,
} from '@backstage/backend-plugin-api';
import { startTestBackend, mockServices } from '@backstage/backend-test-utils';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
@@ -35,7 +37,7 @@ describe('catalogModuleBitbucketCloudEntityProvider', () => {
},
});
let addedProviders: Array<BitbucketCloudEntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const catalogExtensionPointImpl = {
addEntityProvider: (providers: any) => {
@@ -16,10 +16,10 @@
import { TokenManager } from '@backstage/backend-common';
import {
PluginTaskScheduler,
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
SchedulerService,
SchedulerServiceTaskInvocationDefinition,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
import {
mockServices,
registerMswTestHooks,
@@ -40,14 +40,14 @@ import {
BitbucketCloudEntityProvider,
} from './BitbucketCloudEntityProvider';
class PersistingTaskRunner implements TaskRunner {
private tasks: TaskInvocationDefinition[] = [];
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
getTasks() {
return this.tasks;
}
run(task: TaskInvocationDefinition): Promise<void> {
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
this.tasks.push(task);
return Promise.resolve(undefined);
}
@@ -190,7 +190,7 @@ describe('BitbucketCloudEntityProvider', () => {
});
it('fail with scheduler but no schedule config', () => {
const scheduler = jest.fn() as unknown as PluginTaskScheduler;
const scheduler = jest.fn() as unknown as SchedulerService;
const config = new ConfigReader({
catalog: {
providers: {
@@ -214,7 +214,7 @@ describe('BitbucketCloudEntityProvider', () => {
it('single simple provider config with schedule in config', () => {
const scheduler = {
createScheduledTaskRunner: (_: any) => jest.fn(),
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const config = new ConfigReader({
catalog: {
providers: {
@@ -15,8 +15,11 @@
*/
import { TokenManager } from '@backstage/backend-common';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import {
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
import { CatalogApi } from '@backstage/catalog-client';
import { LocationEntity } from '@backstage/catalog-model';
import { Config } from '@backstage/config';
@@ -80,8 +83,8 @@ export class BitbucketCloudEntityProvider implements EntityProvider {
catalogApi?: CatalogApi;
events?: EventsService;
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
tokenManager?: TokenManager;
},
): BitbucketCloudEntityProvider[] {
@@ -124,7 +127,7 @@ export class BitbucketCloudEntityProvider implements EntityProvider {
config: BitbucketCloudEntityProviderConfig,
integration: BitbucketCloudIntegration,
logger: LoggerService,
taskRunner: TaskRunner,
taskRunner: SchedulerServiceTaskRunner,
catalogApi?: CatalogApi,
events?: EventsService,
tokenManager?: TokenManager,
@@ -140,7 +143,9 @@ export class BitbucketCloudEntityProvider implements EntityProvider {
this.tokenManager = tokenManager;
}
private createScheduleFn(schedule: TaskRunner): () => Promise<void> {
private createScheduleFn(
schedule: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = this.getTaskId();
return schedule.run({
@@ -15,9 +15,9 @@
*/
import {
readTaskScheduleDefinitionFromConfig,
TaskScheduleDefinition,
} from '@backstage/backend-tasks';
SchedulerServiceTaskScheduleDefinition,
readSchedulerServiceTaskScheduleDefinitionFromConfig,
} from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
const DEFAULT_CATALOG_PATH = '/catalog-info.yaml';
@@ -31,7 +31,7 @@ export type BitbucketCloudEntityProviderConfig = {
projectKey?: RegExp;
repoSlug?: RegExp;
};
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
};
export function readProviderConfigs(
@@ -67,7 +67,9 @@ function readProviderConfig(
const repoSlugPattern = config.getOptionalString('filters.repoSlug');
const schedule = config.has('schedule')
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
config.getConfig('schedule'),
)
: undefined;
return {
@@ -10,9 +10,9 @@ import { EntityProvider } from '@backstage/plugin-catalog-node';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { LocationSpec } from '@backstage/plugin-catalog-node';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { Response as Response_2 } from 'node-fetch';
import { TaskRunner } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
// @public
export class BitbucketServerClient {
@@ -57,8 +57,8 @@ export class BitbucketServerEntityProvider implements EntityProvider {
options: {
logger: LoggerService;
parser?: BitbucketServerLocationParser;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): BitbucketServerEntityProvider[];
// (undocumented)
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
export interface Config {
catalog?: {
@@ -54,7 +54,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
}
| {
[name: string]: {
@@ -86,7 +86,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
};
};
};
@@ -51,7 +51,6 @@
},
"dependencies": {
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { catalogModuleBitbucketServerEntityProvider } from './catalogModuleBitbucketServerEntityProvider';
@@ -23,7 +23,7 @@ import { BitbucketServerEntityProvider } from '../providers';
describe('catalogModuleBitbucketServerEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array<BitbucketServerEntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const extensionPoint = {
addEntityProvider: (providers: any) => {
@@ -15,10 +15,10 @@
*/
import {
PluginTaskScheduler,
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
SchedulerService,
SchedulerServiceTaskRunner,
SchedulerServiceTaskInvocationDefinition,
} from '@backstage/backend-plugin-api';
import {
mockServices,
registerMswTestHooks,
@@ -30,14 +30,14 @@ import { setupServer } from 'msw/node';
import { BitbucketServerEntityProvider } from './BitbucketServerEntityProvider';
import { BitbucketServerPagedResponse } from '../lib';
class PersistingTaskRunner implements TaskRunner {
private tasks: TaskInvocationDefinition[] = [];
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
getTasks() {
return this.tasks;
}
run(task: TaskInvocationDefinition): Promise<void> {
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
this.tasks.push(task);
return Promise.resolve(undefined);
}
@@ -412,7 +412,7 @@ describe('BitbucketServerEntityProvider', () => {
it('fail with scheduler but no schedule config', () => {
const scheduler = {
createScheduledTaskRunner: (_: any) => jest.fn(),
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const config = new ConfigReader({
catalog: {
providers: {
@@ -469,7 +469,7 @@ describe('BitbucketServerEntityProvider', () => {
const schedule = new PersistingTaskRunner();
const scheduler = {
createScheduledTaskRunner: (_: any) => schedule,
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const entityProviderConnection: EntityProviderConnection = {
applyMutation: jest.fn(),
refresh: jest.fn(),
@@ -14,7 +14,6 @@
* limitations under the License.
*/
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import { Entity } from '@backstage/catalog-model';
import { Config } from '@backstage/config';
import { InputError } from '@backstage/errors';
@@ -36,7 +35,11 @@ import {
BitbucketServerLocationParser,
defaultBitbucketServerLocationParser,
} from './BitbucketServerLocationParser';
import { LoggerService } from '@backstage/backend-plugin-api';
import {
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
/**
* Discovers catalog files located in Bitbucket Server.
@@ -59,8 +62,8 @@ export class BitbucketServerEntityProvider implements EntityProvider {
options: {
logger: LoggerService;
parser?: BitbucketServerLocationParser;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): BitbucketServerEntityProvider[] {
const integrations = ScmIntegrations.fromConfig(config);
@@ -103,7 +106,7 @@ export class BitbucketServerEntityProvider implements EntityProvider {
config: BitbucketServerEntityProviderConfig,
integration: BitbucketServerIntegration,
logger: LoggerService,
taskRunner: TaskRunner,
taskRunner: SchedulerServiceTaskRunner,
parser?: BitbucketServerLocationParser,
) {
this.integration = integration;
@@ -115,7 +118,9 @@ export class BitbucketServerEntityProvider implements EntityProvider {
this.scheduleFn = this.createScheduleFn(taskRunner);
}
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
private createScheduleFn(
taskRunner: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = `${this.getProviderName()}:refresh`;
return taskRunner.run({
@@ -15,9 +15,9 @@
*/
import {
readTaskScheduleDefinitionFromConfig,
TaskScheduleDefinition,
} from '@backstage/backend-tasks';
SchedulerServiceTaskScheduleDefinition,
readSchedulerServiceTaskScheduleDefinitionFromConfig,
} from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
const DEFAULT_CATALOG_PATH = '/catalog-info.yaml';
@@ -32,7 +32,7 @@ export type BitbucketServerEntityProviderConfig = {
repoSlug?: RegExp;
skipArchivedRepos?: boolean;
};
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
};
export function readProviderConfigs(
@@ -70,7 +70,9 @@ function readProviderConfig(
);
const schedule = config.has('schedule')
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
config.getConfig('schedule'),
)
: undefined;
return {
+2 -2
View File
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
export interface Config {
catalog?: {
@@ -37,7 +37,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule: TaskScheduleDefinitionConfig;
schedule: SchedulerServiceTaskScheduleDefinitionConfig;
};
};
};
@@ -52,7 +52,6 @@
},
"dependencies": {
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
@@ -15,7 +15,7 @@
*/
import { GkeEntityProvider } from './GkeEntityProvider';
import { TaskRunner } from '@backstage/backend-tasks';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
import * as container from '@google-cloud/container';
import { ConfigReader } from '@backstage/config';
@@ -30,7 +30,7 @@ describe('GkeEntityProvider', () => {
const taskRunner = {
createScheduleFn: jest.fn(),
run: jest.fn(),
} as TaskRunner;
} as SchedulerServiceTaskRunner;
const schedulerMock = {
createScheduledTaskRunner: jest.fn(),
} as any;
@@ -13,10 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {
readTaskScheduleDefinitionFromConfig,
TaskRunner,
} from '@backstage/backend-tasks';
import {
DeferredEntity,
EntityProvider,
@@ -31,7 +27,12 @@ import {
ANNOTATION_KUBERNETES_DASHBOARD_PARAMETERS,
} from '@backstage/plugin-kubernetes-common';
import { Config } from '@backstage/config';
import { LoggerService, SchedulerService } from '@backstage/backend-plugin-api';
import {
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
readSchedulerServiceTaskScheduleDefinitionFromConfig,
} from '@backstage/backend-plugin-api';
import {
ANNOTATION_LOCATION,
ANNOTATION_ORIGIN_LOCATION,
@@ -51,7 +52,7 @@ export class GkeEntityProvider implements EntityProvider {
private constructor(
logger: LoggerService,
taskRunner: TaskRunner,
taskRunner: SchedulerServiceTaskRunner,
gkeParents: string[],
clusterManagerClient: container.v1.ClusterManagerClient,
) {
@@ -90,7 +91,7 @@ export class GkeEntityProvider implements EntityProvider {
clusterManagerClient: container.v1.ClusterManagerClient;
}) {
const gkeProviderConfig = config.getConfig('catalog.providers.gcp.gke');
const schedule = readTaskScheduleDefinitionFromConfig(
const schedule = readSchedulerServiceTaskScheduleDefinitionFromConfig(
gkeProviderConfig.getConfig('schedule'),
);
return new GkeEntityProvider(
@@ -172,7 +173,9 @@ export class GkeEntityProvider implements EntityProvider {
};
}
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
private createScheduleFn(
taskRunner: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = `${this.getProviderName()}:refresh`;
return taskRunner.run({
@@ -7,8 +7,8 @@ import { Config } from '@backstage/config';
import { EntityProvider } from '@backstage/plugin-catalog-node';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { TaskRunner } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
// @public (undocumented)
export class GerritEntityProvider implements EntityProvider {
@@ -19,8 +19,8 @@ export class GerritEntityProvider implements EntityProvider {
configRoot: Config,
options: {
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): GerritEntityProvider[];
// (undocumented)
@@ -48,7 +48,6 @@
},
"dependencies": {
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
"@backstage/integration": "workspace:^",
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { catalogModuleGerritEntityProvider } from './catalogModuleGerritEntityProvider';
@@ -23,7 +23,7 @@ import { GerritEntityProvider } from '../providers/GerritEntityProvider';
describe('catalogModuleGerritEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array<GerritEntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const extensionPoint = {
addEntityProvider: (providers: any) => {
@@ -15,10 +15,10 @@
*/
import {
PluginTaskScheduler,
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
SchedulerService,
SchedulerServiceTaskRunner,
SchedulerServiceTaskInvocationDefinition,
} from '@backstage/backend-plugin-api';
import {
mockServices,
registerMswTestHooks,
@@ -41,14 +41,14 @@ const getJsonFixture = (fileName: string) =>
),
);
class PersistingTaskRunner implements TaskRunner {
private tasks: TaskInvocationDefinition[] = [];
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
getTasks() {
return this.tasks;
}
run(task: TaskInvocationDefinition): Promise<void> {
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
this.tasks.push(task);
return Promise.resolve(undefined);
}
@@ -228,7 +228,7 @@ describe('GerritEntityProvider', () => {
it('fail with scheduler but no schedule config', () => {
const scheduler = {
createScheduledTaskRunner: (_: any) => jest.fn(),
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
expect(() =>
GerritEntityProvider.fromConfig(config, {
logger,
@@ -270,7 +270,7 @@ describe('GerritEntityProvider', () => {
});
const scheduler = {
createScheduledTaskRunner: (_: any) => schedule,
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const repoBuffer = fs.readFileSync(
path.resolve(__dirname, '__fixtures__/listProjectsBody.txt'),
@@ -14,7 +14,6 @@
* limitations under the License.
*/
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import { Config } from '@backstage/config';
import { InputError } from '@backstage/errors';
import {
@@ -35,7 +34,11 @@ import * as uuid from 'uuid';
import { readGerritConfigs } from './config';
import { GerritProjectQueryResult, GerritProviderConfig } from './types';
import { LoggerService } from '@backstage/backend-plugin-api';
import {
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
/** @public */
export class GerritEntityProvider implements EntityProvider {
@@ -49,8 +52,8 @@ export class GerritEntityProvider implements EntityProvider {
configRoot: Config,
options: {
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): GerritEntityProvider[] {
if (!options.schedule && !options.scheduler) {
@@ -95,7 +98,7 @@ export class GerritEntityProvider implements EntityProvider {
config: GerritProviderConfig,
integration: GerritIntegration,
logger: LoggerService,
taskRunner: TaskRunner,
taskRunner: SchedulerServiceTaskRunner,
) {
this.config = config;
this.integration = integration;
@@ -114,7 +117,9 @@ export class GerritEntityProvider implements EntityProvider {
await this.scheduleFn();
}
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
private createScheduleFn(
taskRunner: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = `${this.getProviderName()}:refresh`;
return taskRunner.run({
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks';
import { readSchedulerServiceTaskScheduleDefinitionFromConfig } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import { GerritProviderConfig } from './types';
@@ -24,7 +24,9 @@ function readGerritConfig(id: string, config: Config): GerritProviderConfig {
const query = config.getString('query');
const schedule = config.has('schedule')
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
config.getConfig('schedule'),
)
: undefined;
return {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
export type GerritProjectInfo = {
id: string;
@@ -30,5 +30,5 @@ export type GerritProviderConfig = {
query: string;
id: string;
branch?: string;
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
};
@@ -34,7 +34,6 @@
},
"dependencies": {
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/plugin-catalog-backend-module-github": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import { EntityProvider } from '@backstage/plugin-catalog-node';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
@@ -23,7 +23,7 @@ import { catalogModuleGithubOrgEntityProvider } from './module';
describe('catalogModuleGithubOrgEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array<EntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const extensionPoint = {
addEntityProvider: (...providers: any) => {
@@ -18,11 +18,9 @@ import {
coreServices,
createBackendModule,
createExtensionPoint,
SchedulerServiceTaskScheduleDefinition,
readSchedulerServiceTaskScheduleDefinitionFromConfig,
} from '@backstage/backend-plugin-api';
import {
readTaskScheduleDefinitionFromConfig,
TaskScheduleDefinition,
} from '@backstage/backend-tasks';
import { Config } from '@backstage/config';
import {
GithubMultiOrgEntityProvider,
@@ -134,7 +132,7 @@ function readDefinitionsFromConfig(rootConfig: Config): Array<{
id: string;
githubUrl: string;
orgs?: string[];
schedule: TaskScheduleDefinition;
schedule: SchedulerServiceTaskScheduleDefinition;
}> {
const baseKey = 'catalog.providers.githubOrg';
const baseConfig = rootConfig.getOptional(baseKey);
@@ -150,6 +148,8 @@ function readDefinitionsFromConfig(rootConfig: Config): Array<{
id: c.getString('id'),
githubUrl: c.getString('githubUrl'),
orgs: c.getOptionalStringArray('orgs'),
schedule: readTaskScheduleDefinitionFromConfig(c.getConfig('schedule')),
schedule: readSchedulerServiceTaskScheduleDefinitionFromConfig(
c.getConfig('schedule'),
),
}));
}
@@ -20,10 +20,10 @@ import { graphql } from '@octokit/graphql';
import { LocationSpec } from '@backstage/plugin-catalog-node';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginEndpointDiscovery } from '@backstage/backend-common';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
import { ScmIntegrationRegistry } from '@backstage/integration';
import { ScmLocationAnalyzer } from '@backstage/plugin-catalog-node';
import { TaskRunner } from '@backstage/backend-tasks';
import { TokenManager } from '@backstage/backend-common';
import { UserEntity } from '@backstage/catalog-model';
@@ -70,8 +70,8 @@ export class GitHubEntityProvider implements EntityProvider {
config: Config,
options: {
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): GitHubEntityProvider[];
// (undocumented)
@@ -90,8 +90,8 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber {
options: {
events?: EventsService;
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): GithubEntityProvider[];
// (undocumented)
@@ -173,7 +173,7 @@ export interface GithubMultiOrgEntityProviderOptions {
id: string;
logger: LoggerService;
orgs?: string[];
schedule?: 'manual' | TaskRunner;
schedule?: 'manual' | SchedulerServiceTaskRunner;
teamTransformer?: TeamTransformer;
userTransformer?: UserTransformer;
}
@@ -251,7 +251,7 @@ export interface GithubOrgEntityProviderOptions {
id: string;
logger: LoggerService;
orgUrl: string;
schedule?: 'manual' | TaskRunner;
schedule?: 'manual' | SchedulerServiceTaskRunner;
teamTransformer?: TeamTransformer;
userTransformer?: UserTransformer;
}
+5 -5
View File
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
export interface Config {
catalog?: {
@@ -116,7 +116,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
}
| {
[name: string]: {
@@ -185,7 +185,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
};
};
@@ -220,7 +220,7 @@ export interface Config {
/**
* The refresh schedule to use.
*/
schedule: TaskScheduleDefinitionConfig;
schedule: SchedulerServiceTaskScheduleDefinitionConfig;
}
| Array<{
/**
@@ -249,7 +249,7 @@ export interface Config {
/**
* The refresh schedule to use.
*/
schedule: TaskScheduleDefinitionConfig;
schedule: SchedulerServiceTaskScheduleDefinitionConfig;
}>;
};
};
@@ -53,7 +53,6 @@
"dependencies": {
"@backstage/backend-common": "workspace:^",
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-client": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
@@ -14,7 +14,6 @@
* limitations under the License.
*/
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import { Config } from '@backstage/config';
import {
EntityProvider,
@@ -25,7 +24,11 @@ import {
GithubOrgEntityProvider,
GithubOrgEntityProviderOptions,
} from './providers/GithubOrgEntityProvider';
import { LoggerService } from '@backstage/backend-plugin-api';
import {
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
/**
* @public
@@ -58,8 +61,8 @@ export class GitHubEntityProvider implements EntityProvider {
config: Config,
options: {
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): GitHubEntityProvider[] {
options.logger.warn(
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import { EntityProvider } from '@backstage/plugin-catalog-node';
import {
@@ -27,7 +27,7 @@ import { GithubLocationAnalyzer } from '../analyzers/GithubLocationAnalyzer';
describe('githubCatalogModule', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array<EntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const extensionPoint = {
addEntityProvider: (providers: any) => {
@@ -15,10 +15,10 @@
*/
import {
PluginTaskScheduler,
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
SchedulerService,
SchedulerServiceTaskRunner,
SchedulerServiceTaskInvocationDefinition,
} from '@backstage/backend-plugin-api';
import { Config, ConfigReader } from '@backstage/config';
import {
DeferredEntity,
@@ -41,14 +41,14 @@ jest.mock('../lib/github', () => {
getOrganizationRepositories: jest.fn(),
};
});
class PersistingTaskRunner implements TaskRunner {
private tasks: TaskInvocationDefinition[] = [];
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
getTasks() {
return this.tasks;
}
run(task: TaskInvocationDefinition): Promise<void> {
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
this.tasks.push(task);
return Promise.resolve(undefined);
}
@@ -624,7 +624,7 @@ describe('GithubEntityProvider', () => {
it('fail with scheduler but no schedule config', () => {
const scheduler = {
createScheduledTaskRunner: (_: any) => jest.fn(),
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const config = createSingleProviderConfig();
expect(() =>
@@ -641,7 +641,7 @@ describe('GithubEntityProvider', () => {
const schedule = new PersistingTaskRunner();
const scheduler = {
createScheduledTaskRunner: (_: any) => schedule,
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const config = createSingleProviderConfig({
providerConfig: {
schedule: {
@@ -14,7 +14,6 @@
* limitations under the License.
*/
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import { Config } from '@backstage/config';
import {
GithubCredentialsProvider,
@@ -66,7 +65,11 @@ import {
RepositoryUnarchivedEvent,
} from '@octokit/webhooks-types';
import { Minimatch } from 'minimatch';
import { LoggerService } from '@backstage/backend-plugin-api';
import {
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
const EVENT_TOPICS = ['github.push', 'github.repository'];
@@ -103,8 +106,8 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber {
options: {
events?: EventsService;
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): GithubEntityProvider[] {
if (!options.schedule && !options.scheduler) {
@@ -147,7 +150,7 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber {
config: GithubEntityProviderConfig,
integration: GithubIntegration,
logger: LoggerService,
taskRunner: TaskRunner,
taskRunner: SchedulerServiceTaskRunner,
events?: EventsService,
) {
this.config = config;
@@ -177,7 +180,9 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber {
return await this.scheduleFn();
}
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
private createScheduleFn(
taskRunner: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = `${this.getProviderName()}:refresh`;
return taskRunner.run({
@@ -15,9 +15,9 @@
*/
import {
readTaskScheduleDefinitionFromConfig,
TaskScheduleDefinition,
} from '@backstage/backend-tasks';
SchedulerServiceTaskScheduleDefinition,
readSchedulerServiceTaskScheduleDefinitionFromConfig,
} from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
const DEFAULT_CATALOG_PATH = '/catalog-info.yaml';
@@ -36,7 +36,7 @@ export type GithubEntityProviderConfig = {
visibility?: string[];
};
validateLocationsExist: boolean;
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
};
export type GithubTopicFilters = {
@@ -96,7 +96,9 @@ function readProviderConfig(
}
const schedule = config.has('schedule')
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
config.getConfig('schedule'),
)
: undefined;
return {
@@ -14,7 +14,6 @@
* limitations under the License.
*/
import { TaskRunner } from '@backstage/backend-tasks';
import {
ANNOTATION_LOCATION,
ANNOTATION_ORIGIN_LOCATION,
@@ -78,7 +77,10 @@ import {
} from '../lib/github';
import { splitTeamSlug } from '../lib/util';
import { areGroupEntities, areUserEntities } from '../lib/guards';
import { LoggerService } from '@backstage/backend-plugin-api';
import {
LoggerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
const EVENT_TOPICS = [
'github.installation',
@@ -128,10 +130,10 @@ export interface GithubMultiOrgEntityProviderOptions {
* manually at some interval.
*
* But more commonly you will pass in the result of
* {@link @backstage/backend-tasks#PluginTaskScheduler.createScheduledTaskRunner}
* {@link @backstage/backend-plugin-api#SchedulerService.createScheduledTaskRunner}
* to enable automatic scheduling of tasks.
*/
schedule?: 'manual' | TaskRunner;
schedule?: 'manual' | SchedulerServiceTaskRunner;
/**
* The logger to use.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskRunner } from '@backstage/backend-tasks';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
import { Entity, isGroupEntity } from '@backstage/catalog-model';
import { Config } from '@backstage/config';
import {
@@ -103,10 +103,10 @@ export interface GithubOrgEntityProviderOptions {
* manually at some interval.
*
* But more commonly you will pass in the result of
* {@link @backstage/backend-tasks#PluginTaskScheduler.createScheduledTaskRunner}
* {@link @backstage/backend-plugin-api#SchedulerService.createScheduledTaskRunner}
* to enable automatic scheduling of tasks.
*/
schedule?: 'manual' | TaskRunner;
schedule?: 'manual' | SchedulerServiceTaskRunner;
/**
* The logger to use.
@@ -40,7 +40,6 @@
"@backstage/plugin-events-node": "workspace:^"
},
"devDependencies": {
"@backstage/backend-tasks": "workspace:^",
"@backstage/backend-test-utils": "workspace:^",
"@backstage/cli": "workspace:^",
"@backstage/plugin-events-backend-test-utils": "workspace:^",
@@ -14,8 +14,10 @@
* limitations under the License.
*/
import { createServiceFactory } from '@backstage/backend-plugin-api';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import {
createServiceFactory,
SchedulerServiceTaskScheduleDefinition,
} from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import { GitlabOrgDiscoveryEntityProvider } from '@backstage/plugin-catalog-backend-module-gitlab';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
@@ -35,7 +37,7 @@ describe('catalogModuleGitlabOrgDiscoveryEntityProvider', () => {
},
});
let addedProviders: Array<GitlabOrgDiscoveryEntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const extensionPoint = {
addEntityProvider: (providers: any) => {
@@ -13,9 +13,9 @@ import { GitLabIntegrationConfig } from '@backstage/integration';
import { GroupEntity } from '@backstage/catalog-model';
import { LocationSpec } from '@backstage/plugin-catalog-node';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { TaskRunner } from '@backstage/backend-tasks';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { UserEntity } from '@backstage/catalog-model';
// @public
@@ -28,8 +28,8 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider {
options: {
logger: LoggerService;
events?: EventsService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): GitlabDiscoveryEntityProvider[];
// (undocumented)
@@ -83,8 +83,8 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
options: {
logger: LoggerService;
events?: EventsService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
userTransformer?: UserTransformer;
groupEntitiesTransformer?: GroupTransformer;
groupNameTransformer?: GroupNameTransformer;
@@ -108,7 +108,7 @@ export type GitlabProviderConfig = {
groupPattern: RegExp;
allowInherited?: boolean;
orgEnabled?: boolean;
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
skipForkedRepos?: boolean;
excludeRepos?: string[];
};
+2 -2
View File
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
export interface Config {
catalog?: {
@@ -46,7 +46,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
/**
* (Optional) RegExp for the Project Name Pattern
*/
@@ -53,7 +53,6 @@
"dependencies": {
"@backstage/backend-common": "workspace:^",
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/integration": "workspace:^",
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { GroupEntity, UserEntity } from '@backstage/catalog-model';
import { GitLabIntegrationConfig } from '@backstage/integration';
@@ -196,7 +196,7 @@ export type GitlabProviderConfig = {
allowInherited?: boolean;
orgEnabled?: boolean;
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
/**
* If the project is a fork, skip repository
*/
@@ -14,8 +14,10 @@
* limitations under the License.
*/
import { createServiceFactory } from '@backstage/backend-plugin-api';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import {
createServiceFactory,
SchedulerServiceTaskScheduleDefinition,
} from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
@@ -35,7 +37,7 @@ describe('catalogModuleGitlabDiscoveryEntityProvider', () => {
},
});
let addedProviders: Array<GitlabDiscoveryEntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const extensionPoint = {
addEntityProvider: (providers: any) => {
@@ -15,10 +15,10 @@
*/
import {
PluginTaskScheduler,
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
SchedulerService,
SchedulerServiceTaskRunner,
SchedulerServiceTaskInvocationDefinition,
} from '@backstage/backend-plugin-api';
import {
mockServices,
registerMswTestHooks,
@@ -35,14 +35,14 @@ const server = setupServer(...handlers);
registerMswTestHooks(server);
afterEach(() => jest.clearAllMocks());
class PersistingTaskRunner implements TaskRunner {
private tasks: TaskInvocationDefinition[] = [];
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
getTasks() {
return this.tasks;
}
run(task: TaskInvocationDefinition): Promise<void> {
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
this.tasks.push(task);
return Promise.resolve(undefined);
}
@@ -75,7 +75,7 @@ describe('GitlabDiscoveryEntityProvider - configuration', () => {
it('should fail with scheduler but no schedule config', () => {
const scheduler = {
createScheduledTaskRunner: (_: any) => jest.fn(),
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const config = new ConfigReader(mock.config_no_schedule_integration);
expect(() =>
@@ -14,8 +14,11 @@
* limitations under the License.
*/
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import {
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import { GitLabIntegration, ScmIntegrations } from '@backstage/integration';
import { LocationSpec } from '@backstage/plugin-catalog-common';
@@ -68,8 +71,8 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider {
options: {
logger: LoggerService;
events?: EventsService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
},
): GitlabDiscoveryEntityProvider[] {
if (!options.schedule && !options.scheduler) {
@@ -121,7 +124,7 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider {
integration: GitLabIntegration;
logger: LoggerService;
events?: EventsService;
taskRunner: TaskRunner;
taskRunner: SchedulerServiceTaskRunner;
}) {
this.config = options.config;
this.integration = options.integration;
@@ -165,7 +168,9 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider {
* @param taskRunner - The task runner instance.
* @returns The scheduled function.
*/
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
private createScheduleFn(
taskRunner: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = `${this.getProviderName()}:refresh`;
return taskRunner.run({
@@ -15,10 +15,10 @@
*/
import {
PluginTaskScheduler,
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
SchedulerService,
SchedulerServiceTaskRunner,
SchedulerServiceTaskInvocationDefinition,
} from '@backstage/backend-plugin-api';
import {
mockServices,
registerMswTestHooks,
@@ -36,14 +36,14 @@ const server = setupServer(...handlers);
registerMswTestHooks(server);
afterEach(() => jest.clearAllMocks());
class PersistingTaskRunner implements TaskRunner {
private tasks: TaskInvocationDefinition[] = [];
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
getTasks() {
return this.tasks;
}
run(task: TaskInvocationDefinition): Promise<void> {
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
this.tasks.push(task);
return Promise.resolve(undefined);
}
@@ -113,7 +113,7 @@ describe('GitlabOrgDiscoveryEntityProvider - configuration', () => {
it('should fail with scheduler but no schedule config', () => {
const scheduler = {
createScheduledTaskRunner: (_: any) => jest.fn(),
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const config = new ConfigReader(mock.config_org_integration_saas);
expect(() =>
@@ -130,7 +130,7 @@ describe('GitlabOrgDiscoveryEntityProvider - configuration', () => {
const schedule = new PersistingTaskRunner();
const scheduler = {
createScheduledTaskRunner: (_: any) => schedule,
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const config = new ConfigReader(mock.config_org_integration_saas_sched);
const providers = GitlabOrgDiscoveryEntityProvider.fromConfig(config, {
logger,
@@ -13,8 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import {
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
import {
ANNOTATION_LOCATION,
ANNOTATION_ORIGIN_LOCATION,
@@ -114,8 +117,8 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
options: {
logger: LoggerService;
events?: EventsService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
userTransformer?: UserTransformer;
groupEntitiesTransformer?: GroupEntitiesTransformer;
groupNameTransformer?: GroupNameTransformer;
@@ -176,7 +179,7 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
integration: GitLabIntegration;
logger: LoggerService;
events?: EventsService;
taskRunner: TaskRunner;
taskRunner: SchedulerServiceTaskRunner;
userTransformer?: UserTransformer;
groupEntitiesTransformer?: GroupEntitiesTransformer;
groupNameTransformer?: GroupNameTransformer;
@@ -321,7 +324,9 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
}
}
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
private createScheduleFn(
taskRunner: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = `${this.getProviderName()}:refresh`;
return taskRunner.run({
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks';
import { readSchedulerServiceTaskScheduleDefinitionFromConfig } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import { GitlabProviderConfig } from '../lib';
@@ -51,7 +51,9 @@ function readGitlabConfig(id: string, config: Config): GitlabProviderConfig {
config.getOptionalStringArray('excludeRepos') ?? [];
const schedule = config.has('schedule')
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
config.getConfig('schedule'),
)
: undefined;
const restrictUsersToGroup =
config.getOptionalBoolean('restrictUsersToGroup') ?? false;
@@ -14,8 +14,8 @@ import { EventSubscriber } from '@backstage/plugin-events-node';
import type { Logger } from 'winston';
import type { PermissionEvaluator } from '@backstage/plugin-permission-common';
import type { PluginDatabaseManager } from '@backstage/backend-common';
import type { PluginTaskScheduler } from '@backstage/backend-tasks';
import { Router } from 'express';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { UrlReaderService } from '@backstage/backend-plugin-api';
// @public
@@ -89,7 +89,7 @@ export interface IncrementalEntityProviderOptions {
export type PluginEnvironment = {
logger: Logger;
database: PluginDatabaseManager;
scheduler: PluginTaskScheduler;
scheduler: SchedulerService;
config: Config;
reader: UrlReaderService;
permissions: PermissionEvaluator;
@@ -53,7 +53,6 @@
"dependencies": {
"@backstage/backend-common": "workspace:^",
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { TestDatabases, mockServices } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { IncrementalEntityProvider } from '../types';
@@ -66,8 +66,7 @@ describe('WrapperProviders', () => {
config,
logger,
client,
scheduler:
scheduler as Partial<PluginTaskScheduler> as PluginTaskScheduler,
scheduler: scheduler as Partial<SchedulerService> as SchedulerService,
applyDatabaseMigrations,
});
const wrapped1 = providers.wrap(provider1, {
@@ -15,10 +15,6 @@
*/
import type { PluginDatabaseManager } from '@backstage/backend-common';
import type {
PluginTaskScheduler,
TaskFunction,
} from '@backstage/backend-tasks';
import type { Config } from '@backstage/config';
import type {
DeferredEntity,
@@ -29,7 +25,12 @@ import type { PermissionEvaluator } from '@backstage/plugin-permission-common';
import type { DurationObjectUnits } from 'luxon';
import type { Logger } from 'winston';
import { IncrementalIngestionDatabaseManager } from './database/IncrementalIngestionDatabaseManager';
import { LoggerService, UrlReaderService } from '@backstage/backend-plugin-api';
import {
LoggerService,
UrlReaderService,
SchedulerService,
SchedulerServiceTaskFunction,
} from '@backstage/backend-plugin-api';
/**
* Ingest entities into the catalog in bite-sized chunks.
@@ -187,14 +188,14 @@ export interface IncrementalEntityProviderOptions {
export type PluginEnvironment = {
logger: Logger;
database: PluginDatabaseManager;
scheduler: PluginTaskScheduler;
scheduler: SchedulerService;
config: Config;
reader: UrlReaderService;
permissions: PermissionEvaluator;
};
export interface IterationEngine {
taskFn: TaskFunction;
taskFn: SchedulerServiceTaskFunction;
}
export interface IterationEngineOptions {
@@ -39,7 +39,6 @@
},
"dependencies": {
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
@@ -12,10 +12,10 @@ import { GroupEntity } from '@backstage/catalog-model';
import { LocationSpec } from '@backstage/plugin-catalog-common';
import { LoggerService } from '@backstage/backend-plugin-api';
import * as MicrosoftGraph from '@microsoft/microsoft-graph-types';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { Response as Response_2 } from 'node-fetch';
import { TaskRunner } from '@backstage/backend-tasks';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { TokenCredential } from '@azure/identity';
import { UserEntity } from '@backstage/catalog-model';
@@ -147,7 +147,7 @@ export interface MicrosoftGraphOrgEntityProviderLegacyOptions {
logger: LoggerService;
organizationTransformer?: OrganizationTransformer;
providerConfigTransformer?: ProviderConfigTransformer;
schedule: 'manual' | TaskRunner;
schedule: 'manual' | SchedulerServiceTaskRunner;
target: string;
userTransformer?: UserTransformer;
}
@@ -157,8 +157,8 @@ export type MicrosoftGraphOrgEntityProviderOptions =
| MicrosoftGraphOrgEntityProviderLegacyOptions
| {
logger: LoggerService;
schedule?: 'manual' | TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: 'manual' | SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
userTransformer?: UserTransformer | Record<string, UserTransformer>;
groupTransformer?: GroupTransformer | Record<string, GroupTransformer>;
organizationTransformer?:
@@ -218,7 +218,7 @@ export type MicrosoftGraphProviderConfig = {
groupIncludeSubGroups?: boolean;
queryMode?: 'basic' | 'advanced';
loadUserPhotos?: boolean;
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
};
// @public
+3 -3
View File
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinitionConfig } from '@backstage/backend-plugin-api';
export interface Config {
catalog?: {
@@ -217,7 +217,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
}
| {
[name: string]: {
@@ -304,7 +304,7 @@ export interface Config {
/**
* (Optional) TaskScheduleDefinition for the refresh.
*/
schedule?: TaskScheduleDefinitionConfig;
schedule?: SchedulerServiceTaskScheduleDefinitionConfig;
};
};
};
@@ -53,7 +53,6 @@
"dependencies": {
"@azure/identity": "^4.0.0",
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/plugin-catalog-common": "workspace:^",
@@ -15,9 +15,9 @@
*/
import {
readTaskScheduleDefinitionFromConfig,
TaskScheduleDefinition,
} from '@backstage/backend-tasks';
SchedulerServiceTaskScheduleDefinition,
readSchedulerServiceTaskScheduleDefinitionFromConfig,
} from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import { trimEnd } from 'lodash';
@@ -141,7 +141,7 @@ export type MicrosoftGraphProviderConfig = {
/**
* Schedule configuration for refresh tasks.
*/
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
};
/**
@@ -338,7 +338,9 @@ export function readProviderConfig(
}
const schedule = config.has('schedule')
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
config.getConfig('schedule'),
)
: undefined;
return {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { catalogModuleMicrosoftGraphOrgEntityProvider } from './catalogModuleMicrosoftGraphOrgEntityProvider';
@@ -23,7 +23,7 @@ import { MicrosoftGraphOrgEntityProvider } from '../processors';
describe('catalogModuleMicrosoftGraphOrgEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array<MicrosoftGraphOrgEntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const extensionPoint = {
addEntityProvider: (providers: any) => {
@@ -14,10 +14,10 @@
* limitations under the License.
*/
import {
PluginTaskScheduler,
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
SchedulerService,
SchedulerServiceTaskRunner,
SchedulerServiceTaskInvocationDefinition,
} from '@backstage/backend-plugin-api';
import { ConfigReader } from '@backstage/config';
import {
ANNOTATION_LOCATION,
@@ -48,14 +48,14 @@ const readMicrosoftGraphOrgMocked = readMicrosoftGraphOrg as jest.Mock<
Promise<{ users: UserEntity[]; groups: GroupEntity[] }>
>;
class PersistingTaskRunner implements TaskRunner {
private tasks: TaskInvocationDefinition[] = [];
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
getTasks() {
return this.tasks;
}
run(task: TaskInvocationDefinition): Promise<void> {
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
this.tasks.push(task);
return Promise.resolve(undefined);
}
@@ -102,7 +102,7 @@ describe('MicrosoftGraphOrgEntityProvider', () => {
const taskRunner = new PersistingTaskRunner();
const scheduler = {
createScheduledTaskRunner: (_: any) => taskRunner,
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const entityProviderConnection: EntityProviderConnection = {
applyMutation: jest.fn(),
refresh: jest.fn(),
@@ -14,7 +14,6 @@
* limitations under the License.
*/
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import {
ANNOTATION_LOCATION,
ANNOTATION_ORIGIN_LOCATION,
@@ -41,7 +40,11 @@ import {
UserTransformer,
} from '../microsoftGraph';
import { readProviderConfigs } from '../microsoftGraph/config';
import { LoggerService } from '@backstage/backend-plugin-api';
import {
LoggerService,
SchedulerService,
SchedulerServiceTaskRunner,
} from '@backstage/backend-plugin-api';
/**
* Options for {@link MicrosoftGraphOrgEntityProvider}.
@@ -65,16 +68,16 @@ export type MicrosoftGraphOrgEntityProviderOptions =
* manually at some interval.
*
* But more commonly you will pass in the result of
* {@link @backstage/backend-tasks#PluginTaskScheduler.createScheduledTaskRunner}
* {@link @backstage/backend-plugin-api#SchedulerService.createScheduledTaskRunner}
* to enable automatic scheduling of tasks.
*/
schedule?: 'manual' | TaskRunner;
schedule?: 'manual' | SchedulerServiceTaskRunner;
/**
* Scheduler used to schedule refreshes based on
* the schedule config.
*/
scheduler?: PluginTaskScheduler;
scheduler?: SchedulerService;
/**
* The function that transforms a user entry in msgraph to an entity.
@@ -141,10 +144,10 @@ export interface MicrosoftGraphOrgEntityProviderLegacyOptions {
* manually at some interval.
*
* But more commonly you will pass in the result of
* {@link @backstage/backend-tasks#PluginTaskScheduler.createScheduledTaskRunner}
* {@link @backstage/backend-plugin-api#SchedulerService.createScheduledTaskRunner}
* to enable automatic scheduling of tasks.
*/
schedule: 'manual' | TaskRunner;
schedule: 'manual' | SchedulerServiceTaskRunner;
/**
* The function that transforms a user entry in msgraph to an entity.
@@ -360,7 +363,7 @@ export class MicrosoftGraphOrgEntityProvider implements EntityProvider {
markCommitComplete();
}
private schedule(taskRunner: TaskRunner) {
private schedule(taskRunner: SchedulerServiceTaskRunner) {
this.scheduleFn = async () => {
const id = `${this.getProviderName()}:refresh`;
await taskRunner.run({
@@ -8,10 +8,10 @@ import { EntityProvider } from '@backstage/plugin-catalog-node';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { JsonValue } from '@backstage/types';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { ResourceEntity } from '@backstage/catalog-model';
import { TaskRunner } from '@backstage/backend-tasks';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskRunner } from '@backstage/backend-plugin-api';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
// @public
export const ANNOTATION_PUPPET_CERTNAME = 'puppet.com/certname';
@@ -30,8 +30,8 @@ export class PuppetDbEntityProvider implements EntityProvider {
config: Config,
deps: {
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
transformer?: ResourceTransformer;
},
): PuppetDbEntityProvider[];
@@ -45,7 +45,7 @@ export type PuppetDbEntityProviderConfig = {
id: string;
baseUrl: string;
query?: string;
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
};
// @public
+3 -3
View File
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
/**
* Represents the configuration for the Backstage.
@@ -44,7 +44,7 @@ export interface Config {
/**
* (Optional) Task schedule definition for the refresh.
*/
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
}
| {
[name: string]: {
@@ -59,7 +59,7 @@ export interface Config {
/**
* (Optional) Task schedule definition for the refresh.
*/
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
};
};
};
@@ -54,7 +54,6 @@
},
"dependencies": {
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha';
import { catalogModulePuppetDbEntityProvider } from './catalogModulePuppetDbEntityProvider';
@@ -23,7 +23,7 @@ import { PuppetDbEntityProvider } from '../providers/PuppetDbEntityProvider';
describe('catalogModulePuppetDbEntityProvider', () => {
it('should register provider at the catalog extension point', async () => {
let addedProviders: Array<PuppetDbEntityProvider> | undefined;
let usedSchedule: TaskScheduleDefinition | undefined;
let usedSchedule: SchedulerServiceTaskScheduleDefinition | undefined;
const extensionPoint = {
addEntityProvider: (providers: any) => {
@@ -14,7 +14,10 @@
* limitations under the License.
*/
import { TaskInvocationDefinition, TaskRunner } from '@backstage/backend-tasks';
import {
SchedulerServiceTaskRunner,
SchedulerServiceTaskInvocationDefinition,
} from '@backstage/backend-plugin-api';
import { ConfigReader } from '@backstage/config';
import { PuppetDbEntityProvider } from './PuppetDbEntityProvider';
import {
@@ -39,14 +42,14 @@ jest.mock('../puppet/read', () => {
const logger = mockServices.logger.mock();
class PersistingTaskRunner implements TaskRunner {
private tasks: TaskInvocationDefinition[] = [];
class PersistingTaskRunner implements SchedulerServiceTaskRunner {
private tasks: SchedulerServiceTaskInvocationDefinition[] = [];
getTasks() {
return this.tasks;
}
run(task: TaskInvocationDefinition): Promise<void> {
run(task: SchedulerServiceTaskInvocationDefinition): Promise<void> {
this.tasks.push(task);
return Promise.resolve(undefined);
}
@@ -23,7 +23,6 @@ import {
readProviderConfigs,
} from './PuppetDbEntityProviderConfig';
import { Config } from '@backstage/config';
import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks';
import * as uuid from 'uuid';
import { defaultResourceTransformer, ResourceTransformer } from '../puppet';
import {
@@ -34,7 +33,11 @@ import {
import { merge } from 'lodash';
import { readPuppetNodes } from '../puppet/read';
import { ENDPOINT_NODES } from '../puppet/constants';
import { LoggerService } from '@backstage/backend-plugin-api';
import {
SchedulerService,
SchedulerServiceTaskRunner,
LoggerService,
} from '@backstage/backend-plugin-api';
/**
* Reads nodes from [PuppetDB](https://www.puppet.com/docs/puppet/6/puppetdb_overview.html)
@@ -61,8 +64,8 @@ export class PuppetDbEntityProvider implements EntityProvider {
config: Config,
deps: {
logger: LoggerService;
schedule?: TaskRunner;
scheduler?: PluginTaskScheduler;
schedule?: SchedulerServiceTaskRunner;
scheduler?: SchedulerService;
transformer?: ResourceTransformer;
},
): PuppetDbEntityProvider[] {
@@ -97,7 +100,7 @@ export class PuppetDbEntityProvider implements EntityProvider {
*
* @param config - Configuration of the provider.
* @param logger - The instance of a {@link LoggerService}.
* @param taskRunner - The instance of {@link TaskRunner}.
* @param taskRunner - The instance of {@link SchedulerServiceTaskRunner}.
* @param transformer - A {@link ResourceTransformer} function.
*
* @private
@@ -105,7 +108,7 @@ export class PuppetDbEntityProvider implements EntityProvider {
private constructor(
config: PuppetDbEntityProviderConfig,
logger: LoggerService,
taskRunner: TaskRunner,
taskRunner: SchedulerServiceTaskRunner,
transformer: ResourceTransformer,
) {
this.config = config;
@@ -130,11 +133,13 @@ export class PuppetDbEntityProvider implements EntityProvider {
/**
* Creates a function that can be used to schedule a refresh of the catalog.
*
* @param taskRunner - The instance of {@link TaskRunner}.
* @param taskRunner - The instance of {@link SchedulerServiceTaskRunner}.
*
* @private
*/
private createScheduleFn(taskRunner: TaskRunner): () => Promise<void> {
private createScheduleFn(
taskRunner: SchedulerServiceTaskRunner,
): () => Promise<void> {
return async () => {
const taskId = `${this.getProviderName()}:refresh`;
return taskRunner.run({
@@ -15,9 +15,9 @@
*/
import {
readTaskScheduleDefinitionFromConfig,
TaskScheduleDefinition,
} from '@backstage/backend-tasks';
SchedulerServiceTaskScheduleDefinition,
readSchedulerServiceTaskScheduleDefinitionFromConfig,
} from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import { DEFAULT_PROVIDER_ID } from './constants';
@@ -42,7 +42,7 @@ export type PuppetDbEntityProviderConfig = {
/**
* (Optional) Task schedule definition for the refresh.
*/
schedule?: TaskScheduleDefinition;
schedule?: SchedulerServiceTaskScheduleDefinition;
};
/**
@@ -87,7 +87,9 @@ function readProviderConfig(
const query = config.getOptionalString('query');
const schedule = config.has('schedule')
? readTaskScheduleDefinitionFromConfig(config.getConfig('schedule'))
? readSchedulerServiceTaskScheduleDefinitionFromConfig(
config.getConfig('schedule'),
)
: undefined;
return {
+2 -2
View File
@@ -58,9 +58,9 @@ import { PlaceholderResolverParams as PlaceholderResolverParams_2 } from '@backs
import { PlaceholderResolverRead as PlaceholderResolverRead_2 } from '@backstage/plugin-catalog-node';
import { PlaceholderResolverResolveUrl as PlaceholderResolverResolveUrl_2 } from '@backstage/plugin-catalog-node';
import { PluginEndpointDiscovery } from '@backstage/backend-common';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { RootConfigService } from '@backstage/backend-plugin-api';
import { Router } from 'express';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { ScmIntegrationRegistry } from '@backstage/integration';
import { ScmLocationAnalyzer as ScmLocationAnalyzer_2 } from '@backstage/plugin-catalog-node';
import { TokenManager } from '@backstage/backend-common';
@@ -200,7 +200,7 @@ export type CatalogEnvironment = {
config: RootConfigService;
reader: UrlReaderService;
permissions: PermissionsService | PermissionAuthorizer;
scheduler?: PluginTaskScheduler;
scheduler?: SchedulerService;
discovery?: DiscoveryService;
auth?: AuthService;
httpAuth?: HttpAuthService;
-1
View File
@@ -64,7 +64,6 @@
"@backstage/backend-common": "workspace:^",
"@backstage/backend-openapi-utils": "workspace:^",
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-client": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
@@ -29,7 +29,6 @@ import { createCounterMetric, createSummaryMetric } from '../util/metrics';
import { CatalogProcessingOrchestrator, EntityProcessingResult } from './types';
import { Stitcher, stitchingStrategyFromConfig } from '../stitching/types';
import { startTaskPipeline } from './TaskPipeline';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { Config } from '@backstage/config';
import {
addEntityAttributes,
@@ -39,7 +38,7 @@ import {
import { deleteOrphanedEntities } from '../database/operations/util/deleteOrphanedEntities';
import { EventBroker, EventsService } from '@backstage/plugin-events-node';
import { CATALOG_ERRORS_TOPIC } from '../constants';
import { LoggerService } from '@backstage/backend-plugin-api';
import { LoggerService, SchedulerService } from '@backstage/backend-plugin-api';
const CACHE_TTL = 5;
@@ -55,7 +54,7 @@ export type ProgressTracker = ReturnType<typeof progressTracker>;
// is just one.
export class DefaultCatalogProcessingEngine {
private readonly config: Config;
private readonly scheduler?: PluginTaskScheduler;
private readonly scheduler?: SchedulerService;
private readonly logger: LoggerService;
private readonly knex: Knex;
private readonly processingDatabase: ProcessingDatabase;
@@ -75,7 +74,7 @@ export class DefaultCatalogProcessingEngine {
constructor(options: {
config: Config;
scheduler?: PluginTaskScheduler;
scheduler?: SchedulerService;
logger: LoggerService;
knex: Knex;
processingDatabase: ProcessingDatabase;
@@ -18,7 +18,6 @@ import {
createLegacyAuthAdapters,
HostDiscovery,
} from '@backstage/backend-common';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import {
DefaultNamespaceEntityPolicy,
Entity,
@@ -113,6 +112,7 @@ import {
PermissionsService,
RootConfigService,
UrlReaderService,
SchedulerService,
} from '@backstage/backend-plugin-api';
/**
@@ -134,7 +134,7 @@ export type CatalogEnvironment = {
config: RootConfigService;
reader: UrlReaderService;
permissions: PermissionsService | PermissionAuthorizer;
scheduler?: PluginTaskScheduler;
scheduler?: SchedulerService;
discovery?: DiscoveryService;
auth?: AuthService;
httpAuth?: HttpAuthService;
@@ -47,12 +47,12 @@ import {
validateRequestBody,
} from './util';
import { createOpenApiRouter } from '../schema/openapi.generated';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { parseEntityPaginationParams } from './request/parseEntityPaginationParams';
import {
AuthService,
HttpAuthService,
LoggerService,
SchedulerService,
} from '@backstage/backend-plugin-api';
import { LocationAnalyzer } from '@backstage/plugin-catalog-node';
@@ -68,7 +68,7 @@ export interface RouterOptions {
locationService: LocationService;
orchestrator?: CatalogProcessingOrchestrator;
refreshService?: RefreshService;
scheduler?: PluginTaskScheduler;
scheduler?: SchedulerService;
logger: LoggerService;
config: Config;
permissionIntegrationRouter?: express.Router;
@@ -6,7 +6,7 @@
import { Config } from '@backstage/config';
import { EventsService } from '@backstage/plugin-events-node';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
// @public
export class AwsSqsConsumingEventPublisher {
@@ -15,7 +15,7 @@ export class AwsSqsConsumingEventPublisher {
config: Config;
events: EventsService;
logger: LoggerService;
scheduler: PluginTaskScheduler;
scheduler: SchedulerService;
}): AwsSqsConsumingEventPublisher[];
// (undocumented)
start(): Promise<void>;
@@ -50,7 +50,6 @@
"@aws-sdk/client-sqs": "^3.350.0",
"@backstage/backend-common": "workspace:^",
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/plugin-events-node": "workspace:^",
"@backstage/types": "workspace:^",
@@ -19,7 +19,7 @@ import {
ReceiveMessageCommand,
SQSClient,
} from '@aws-sdk/client-sqs';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { ConfigReader } from '@backstage/config';
import { TestEventsService } from '@backstage/plugin-events-backend-test-utils';
import { mockClient } from 'aws-sdk-client-mock';
@@ -56,7 +56,7 @@ describe('AwsSqsConsumingEventPublisher', () => {
const events = new TestEventsService();
const scheduler = {
scheduleTask: jest.fn(),
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const publishers = AwsSqsConsumingEventPublisher.fromConfig({
config,
@@ -90,7 +90,7 @@ describe('AwsSqsConsumingEventPublisher', () => {
const events = new TestEventsService();
const scheduler = {
scheduleTask: jest.fn(),
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
const publishers = AwsSqsConsumingEventPublisher.fromConfig({
config,
@@ -141,7 +141,7 @@ describe('AwsSqsConsumingEventPublisher', () => {
scheduleTask: (spec: { fn: () => Promise<void> }) => {
taskFn = spec.fn;
},
} as unknown as PluginTaskScheduler;
} as unknown as SchedulerService;
// on the first attempt, we will return 1 message and 0 messages afterwards
const sqsMock = mockClient(SQSClient);
@@ -22,7 +22,7 @@ import {
SQSClient,
} from '@aws-sdk/client-sqs';
import { LoggerService } from '@backstage/backend-plugin-api';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import { EventsService } from '@backstage/plugin-events-node';
import { AwsSqsEventSourceConfig, readConfig } from './config';
@@ -46,7 +46,7 @@ export class AwsSqsConsumingEventPublisher {
config: Config;
events: EventsService;
logger: LoggerService;
scheduler: PluginTaskScheduler;
scheduler: SchedulerService;
}): AwsSqsConsumingEventPublisher[] {
return readConfig(env.config).map(
config =>
@@ -62,7 +62,7 @@ export class AwsSqsConsumingEventPublisher {
private constructor(
private readonly logger: LoggerService,
private readonly events: EventsService,
private readonly scheduler: PluginTaskScheduler,
private readonly scheduler: SchedulerService,
config: AwsSqsEventSourceConfig,
) {
this.topic = config.topic;
@@ -34,7 +34,7 @@ export interface AwsSqsEventSourceConfig {
endpoint?: string;
}
// TODO(pjungermann): validation could be improved similar to `convertToHumanDuration` at @backstage/backend-tasks
// TODO(pjungermann): validation could be improved similar to `convertToHumanDuration` at @backstage/backend-plugin-api
function readOptionalHumanDuration(
config: Config,
key: string,
+2 -2
View File
@@ -37,10 +37,10 @@ import { PermissionRule } from '@backstage/plugin-permission-node';
import { PermissionRuleParams } from '@backstage/plugin-permission-common';
import { PermissionsService } from '@backstage/backend-plugin-api';
import { PluginDatabaseManager } from '@backstage/backend-common';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { RESOURCE_TYPE_SCAFFOLDER_ACTION } from '@backstage/plugin-scaffolder-common/alpha';
import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE } from '@backstage/plugin-scaffolder-common/alpha';
import { ScaffolderEntitiesProcessor as ScaffolderEntitiesProcessor_2 } from '@backstage/plugin-catalog-backend-module-scaffolder-entity-model';
import { SchedulerService } from '@backstage/backend-plugin-api';
import { Schema } from 'jsonschema';
import { ScmIntegrationRegistry } from '@backstage/integration';
import { ScmIntegrations } from '@backstage/integration';
@@ -509,7 +509,7 @@ export interface RouterOptions {
// (undocumented)
reader: UrlReaderService;
// (undocumented)
scheduler?: PluginTaskScheduler;
scheduler?: SchedulerService;
// (undocumented)
taskBroker?: TaskBroker_2;
// @deprecated (undocumented)
-1
View File
@@ -64,7 +64,6 @@
"@backstage/backend-common": "workspace:^",
"@backstage/backend-defaults": "workspace:^",
"@backstage/backend-plugin-api": "workspace:^",
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-client": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
@@ -19,7 +19,6 @@ import {
HostDiscovery,
PluginDatabaseManager,
} from '@backstage/backend-common';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { CatalogApi } from '@backstage/catalog-client';
import {
CompoundEntityRef,
@@ -88,6 +87,7 @@ import {
LifecycleService,
PermissionsService,
UrlReaderService,
SchedulerService,
} from '@backstage/backend-plugin-api';
import {
IdentityApi,
@@ -148,7 +148,7 @@ export interface RouterOptions {
lifecycle?: LifecycleService;
database: PluginDatabaseManager;
catalogClient: CatalogApi;
scheduler?: PluginTaskScheduler;
scheduler?: SchedulerService;
actions?: TemplateAction<any, any>[];
/**
* @deprecated taskWorkers is deprecated in favor of concurrentTasksLimit option with a single TaskWorker

Some files were not shown because too many files have changed in this diff Show More