From 9743bc788cd71d2cca37b5b8f5f6f86ab36be79b Mon Sep 17 00:00:00 2001 From: Kiss Miklos Date: Wed, 7 Sep 2022 17:16:54 +0200 Subject: [PATCH] use object as param in refresh function Signed-off-by: Kiss Miklos --- .changeset/flat-crabs-love.md | 5 +++++ .changeset/rude-weeks-retire.md | 2 +- .../src/processing/connectEntityProviders.ts | 5 +++-- plugins/catalog-node/api-report.md | 7 ++++++- plugins/catalog-node/src/api/index.ts | 1 + plugins/catalog-node/src/api/provider.ts | 9 ++++++++- 6 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 .changeset/flat-crabs-love.md diff --git a/.changeset/flat-crabs-love.md b/.changeset/flat-crabs-love.md new file mode 100644 index 0000000000..96f566d712 --- /dev/null +++ b/.changeset/flat-crabs-love.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-node': minor +--- + +Added refresh function to the `EntityProviderConnection` to be able to schedule refreshes from entity providers. diff --git a/.changeset/rude-weeks-retire.md b/.changeset/rude-weeks-retire.md index fddddd7a9c..c2073c5826 100644 --- a/.changeset/rude-weeks-retire.md +++ b/.changeset/rude-weeks-retire.md @@ -2,4 +2,4 @@ '@backstage/plugin-catalog-backend': minor --- -Added refresh function to the EntityProviderConnection to be able to schedule refreshes from entity providers. +Added the `refresh` function to the Connection of the entity providers. diff --git a/plugins/catalog-backend/src/processing/connectEntityProviders.ts b/plugins/catalog-backend/src/processing/connectEntityProviders.ts index 8325e2bcac..a4795532f0 100644 --- a/plugins/catalog-backend/src/processing/connectEntityProviders.ts +++ b/plugins/catalog-backend/src/processing/connectEntityProviders.ts @@ -22,6 +22,7 @@ import { ProcessingDatabase } from '../database/types'; import { EntityProvider, EntityProviderConnection, + EntityProviderRefreshOptions, EntityProviderMutation, } from '@backstage/plugin-catalog-node'; @@ -61,12 +62,12 @@ class Connection implements EntityProviderConnection { } } - async refresh(keys: string[]): Promise { + async refresh(options: EntityProviderRefreshOptions): Promise { const db = this.config.processingDatabase; await db.transaction(async (tx: any) => { return db.refreshByRefreshKeys(tx, { - keys, + keys: options.keys, }); }); } diff --git a/plugins/catalog-node/api-report.md b/plugins/catalog-node/api-report.md index 7ffae771ef..3873e3376d 100644 --- a/plugins/catalog-node/api-report.md +++ b/plugins/catalog-node/api-report.md @@ -126,7 +126,7 @@ export interface EntityProvider { // @public export interface EntityProviderConnection { applyMutation(mutation: EntityProviderMutation): Promise; - refresh(keys: string[]): Promise; + refresh(options: EntityProviderRefreshOptions): Promise; } // @public @@ -141,6 +141,11 @@ export type EntityProviderMutation = removed: DeferredEntity[]; }; +// @public (undocumented) +export type EntityProviderRefreshOptions = { + keys: string[]; +}; + // @public export type EntityRelationSpec = { source: CompoundEntityRef; diff --git a/plugins/catalog-node/src/api/index.ts b/plugins/catalog-node/src/api/index.ts index 136c23d20d..66e8d6bd21 100644 --- a/plugins/catalog-node/src/api/index.ts +++ b/plugins/catalog-node/src/api/index.ts @@ -32,4 +32,5 @@ export type { EntityProvider, EntityProviderConnection, EntityProviderMutation, + EntityProviderRefreshOptions, } from './provider'; diff --git a/plugins/catalog-node/src/api/provider.ts b/plugins/catalog-node/src/api/provider.ts index a29df7bcba..fc9a172e0d 100644 --- a/plugins/catalog-node/src/api/provider.ts +++ b/plugins/catalog-node/src/api/provider.ts @@ -26,6 +26,13 @@ export type EntityProviderMutation = | { type: 'full'; entities: DeferredEntity[] } | { type: 'delta'; added: DeferredEntity[]; removed: DeferredEntity[] }; +/** + * @public + */ +export type EntityProviderRefreshOptions = { + keys: string[]; +}; + /** * The EntityProviderConnection is the connection between the catalog and the entity provider. * The EntityProvider use this connection to add and remove entities from the catalog. @@ -40,7 +47,7 @@ export interface EntityProviderConnection { /** * Schedules a refresh on all of the entities that has a matching refresh key associated with the provided keys. */ - refresh(keys: string[]): Promise; + refresh(options: EntityProviderRefreshOptions): Promise; } /**