diff --git a/plugins/tech-insights-backend/api-report.md b/plugins/tech-insights-backend/api-report.md index faca4a615c..7d1d7583ae 100644 --- a/plugins/tech-insights-backend/api-report.md +++ b/plugins/tech-insights-backend/api-report.md @@ -5,7 +5,6 @@ ```ts import { CheckResult } from '@backstage/plugin-tech-insights-common'; import { Config } from '@backstage/config'; -import { DateTime } from 'luxon'; import { Duration } from 'luxon'; import express from 'express'; import { FactChecker } from '@backstage/plugin-tech-insights-node'; @@ -14,16 +13,12 @@ import { FactLifecycle } from '@backstage/plugin-tech-insights-node'; import { FactRetriever } from '@backstage/plugin-tech-insights-node'; import { FactRetrieverRegistration } from '@backstage/plugin-tech-insights-node'; import { FactSchema } from '@backstage/plugin-tech-insights-node'; -import { FactSchemaDefinition } from '@backstage/plugin-tech-insights-node'; -import { FlatTechInsightFact } from '@backstage/plugin-tech-insights-node'; import { HumanDuration } from '@backstage/types'; -import { Knex } from 'knex'; import { Logger } from 'winston'; import { PluginDatabaseManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { TechInsightCheck } from '@backstage/plugin-tech-insights-node'; -import { TechInsightFact } from '@backstage/plugin-tech-insights-node'; import { TechInsightsStore } from '@backstage/plugin-tech-insights-node'; import { TokenManager } from '@backstage/backend-common'; @@ -35,6 +30,11 @@ export const buildTechInsightsContext: < options: TechInsightsOptions, ) => Promise>; +// @public +export type CreateDatabaseOptions = { + logger: Logger; +}; + // @public export function createFactRetrieverRegistration( options: FactRetrieverRegistrationOptions, @@ -82,6 +82,12 @@ export interface FactRetrieverRegistry { register(registration: FactRetrieverRegistration): Promise; } +// @public +export const initializePersistenceContext: ( + database: PluginDatabaseManager, + options?: CreateDatabaseOptions, +) => Promise; + // @public export type PersistenceContext = { techInsightsStore: TechInsightsStore; @@ -111,41 +117,6 @@ export type TechInsightsContext< factRetrieverEngine: FactRetrieverEngine; }; -// @public -export class TechInsightsDatabase implements TechInsightsStore { - constructor(db: Knex, logger: Logger); - // (undocumented) - getFactsBetweenTimestampsByIds( - ids: string[], - entityTriplet: string, - startDateTime: DateTime, - endDateTime: DateTime, - ): Promise<{ - [factId: string]: FlatTechInsightFact[]; - }>; - // (undocumented) - getLatestFactsByIds( - ids: string[], - entityTriplet: string, - ): Promise<{ - [factId: string]: FlatTechInsightFact; - }>; - // (undocumented) - getLatestSchemas(ids?: string[]): Promise; - // (undocumented) - insertFacts({ - id, - facts, - lifecycle, - }: { - id: string; - facts: TechInsightFact[]; - lifecycle?: FactLifecycle; - }): Promise; - // (undocumented) - insertFactSchema(schemaDefinition: FactSchemaDefinition): Promise; -} - // @public (undocumented) export interface TechInsightsOptions< CheckType extends TechInsightCheck, diff --git a/plugins/tech-insights-backend/src/index.ts b/plugins/tech-insights-backend/src/index.ts index 8106517a3f..2071acd263 100644 --- a/plugins/tech-insights-backend/src/index.ts +++ b/plugins/tech-insights-backend/src/index.ts @@ -18,13 +18,16 @@ export * from './service/router'; export type { RouterOptions } from './service/router'; export { buildTechInsightsContext } from './service/techInsightsContextBuilder'; +export { initializePersistenceContext } from './service/persistence/persistenceContext'; export type { TechInsightsOptions, TechInsightsContext, } from './service/techInsightsContextBuilder'; export type { FactRetrieverEngine } from './service/fact/FactRetrieverEngine'; -export type { TechInsightsDatabase } from './service/persistence/TechInsightsDatabase'; -export type { PersistenceContext } from './service/persistence/persistenceContext'; +export type { + PersistenceContext, + CreateDatabaseOptions, +} from './service/persistence/persistenceContext'; export { createFactRetrieverRegistration } from './service/fact/createFactRetriever'; export type { FactRetrieverRegistry } from './service/fact/FactRetrieverRegistry'; export type { FactRetrieverRegistrationOptions } from './service/fact/createFactRetriever'; diff --git a/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.ts b/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.ts index 65db088431..0b14f80843 100644 --- a/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.ts +++ b/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.ts @@ -49,7 +49,7 @@ type RawDbFactSchemaRow = { /** * Default TechInsightsDatabase implementation. * - * @public + * @internal */ export class TechInsightsDatabase implements TechInsightsStore { private readonly CHUNK_SIZE = 50; diff --git a/plugins/tech-insights-backend/src/service/persistence/persistenceContext.ts b/plugins/tech-insights-backend/src/service/persistence/persistenceContext.ts index 575ee67bdf..87efcd8a3d 100644 --- a/plugins/tech-insights-backend/src/service/persistence/persistenceContext.ts +++ b/plugins/tech-insights-backend/src/service/persistence/persistenceContext.ts @@ -36,6 +36,11 @@ export type PersistenceContext = { techInsightsStore: TechInsightsStore; }; +/** + * A Container for persistence context initialization options + * + * @public + */ export type CreateDatabaseOptions = { logger: Logger; }; @@ -45,7 +50,7 @@ const defaultOptions: CreateDatabaseOptions = { }; /** - * A factory method to construct persistence context for running implementation. + * A factory function to construct persistence context for running implementation. * * @public */