Merge pull request #16747 from backstage/revert-16368-catalog-backend_add-customizable-type-field

Revert "Allow to change default document type of indexed files by catalog col…"
This commit is contained in:
Patrik Oldsberg
2023-03-07 18:13:57 +01:00
committed by GitHub
4 changed files with 2 additions and 54 deletions
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend': patch
---
Added optional parameter `documentType` to `DefaultCatalogCollatorFactoryOptions` which allows to override default document type `software-catalog`. For more details, see [How to customize document type in the Software Catalog index](../docs/features/search/how-to-guides.md#how-to-customize-document-type-in-the-software-catalog-index).
-43
View File
@@ -184,49 +184,6 @@ indexBuilder.addCollator({
As shown above, you can add a catalog entity filter to narrow down what catalog
entities are indexed by the search engine.
## How to customize document type in the Software Catalog index
In some cases you might want to have the ability to change the document type in which catalog entities will be indexed by catalog collator.
Such option gives a possibility to customize SearchPage results and filters depending on which document type you would like to see results for.
You can achieve that by passing additional parameter `documentType` to the `DefaultCatalogCollatorFactory`.
Let's say that you want to have two different document types for some entities.
Our example will cover a use case in which we want to:
- Store entities of kind `User` or `Group` under document type `yourCustomDocumentType`,
- Store rest of entities under default document type `software-catalog`
To achieve that you will have to remove `User` and `Group` from your previous collator `filter` and register new `DefaultCatalogCollatorFactory` with new parameter `documentType`.
```diff
// packages/backend/src/plugins/search.ts
indexBuilder.addCollator({
schedule,
factory: DefaultCatalogCollatorFactory.fromConfig(env.config, {
discovery: env.discovery,
tokenManager: env.tokenManager,
filter: {
- kind: ['API', 'Component', 'Domain', 'Resource', 'System', 'Template', 'User', 'Group'],
+ kind: ['API', 'Component', 'Domain', 'Resource', 'System', 'Template'],
},
}),
});
+ indexBuilder.addCollator({
+ schedule,
+ factory: DefaultCatalogCollatorFactory.fromConfig(env.config, {
+ discovery: env.discovery,
+ tokenManager: env.tokenManager,
+ filter: {
+ kind: ['User', 'Group'],
+ },
+ documentType: 'yourCustomDocumentType',
+ }),
+ });
```
## How to customize search results highlighting styling
The default highlighting styling for matched terms in search results is your
+1 -2
View File
@@ -288,7 +288,7 @@ export class DefaultCatalogCollatorFactory implements DocumentCollatorFactory {
// (undocumented)
getCollator(): Promise<Readable>;
// (undocumented)
readonly type: string;
readonly type = 'software-catalog';
// (undocumented)
readonly visibilityPermission: Permission;
}
@@ -302,7 +302,6 @@ export type DefaultCatalogCollatorFactoryOptions = {
batchSize?: number;
catalogClient?: CatalogApi;
entityTransformer?: CatalogCollatorEntityTransformer;
documentType?: string;
};
export { DeferredEntity };
@@ -42,12 +42,11 @@ export type DefaultCatalogCollatorFactoryOptions = {
batchSize?: number;
catalogClient?: CatalogApi;
entityTransformer?: CatalogCollatorEntityTransformer;
documentType?: string;
};
/** @public */
export class DefaultCatalogCollatorFactory implements DocumentCollatorFactory {
public readonly type: string;
public readonly type = 'software-catalog';
public readonly visibilityPermission: Permission =
catalogEntityReadPermission;
@@ -74,7 +73,6 @@ export class DefaultCatalogCollatorFactory implements DocumentCollatorFactory {
catalogClient,
tokenManager,
entityTransformer,
documentType,
} = options;
this.locationTemplate =
@@ -86,7 +84,6 @@ export class DefaultCatalogCollatorFactory implements DocumentCollatorFactory {
this.tokenManager = tokenManager;
this.entityTransformer =
entityTransformer ?? defaultCatalogCollatorEntityTransformer;
this.type = documentType ?? 'software-catalog';
}
async getCollator(): Promise<Readable> {