@drodil/backstage-plugin-search-backend-module-qeta 3.17.3 → 3.17.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,7 @@ var backstagePluginQetaCommon = require('@drodil/backstage-plugin-qeta-common');
5
5
 
6
6
  class DefaultQetaCollatorFactory {
7
7
  type = "qeta";
8
+ visibilityPermission = backstagePluginQetaCommon.qetaReadPostPermission;
8
9
  logger;
9
10
  auth;
10
11
  api;
@@ -70,13 +71,11 @@ ${post.content}`;
70
71
  title: post.title,
71
72
  text: `${postContent}
72
73
 
73
- ${answersContent.join(
74
- "\n\n"
75
- )}
74
+ ${answersContent.join("\n\n")}
76
75
 
77
- Comments:
76
+ ${commentsContent.length > 0 ? `Comments:
78
77
 
79
- ${commentsContent.join("\n\n")}`,
78
+ ${commentsContent.join("\n\n")}` : ""}`,
80
79
  location: post.type === "question" ? `/qeta/questions/${post.id}` : `/qeta/articles/${post.id}`,
81
80
  docType: "qeta_post",
82
81
  author: post.author,
@@ -84,7 +83,10 @@ ${commentsContent.join("\n\n")}`,
84
83
  entityRefs: post.entities,
85
84
  answerCount: post.answersCount,
86
85
  views: post.views,
87
- tags: post.tags
86
+ tags: post.tags,
87
+ authorization: {
88
+ resourceRef: `qeta:post:${post.id}`
89
+ }
88
90
  };
89
91
  }
90
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultQetaCollatorFactory.cjs.js","sources":["../../src/collators/DefaultQetaCollatorFactory.ts"],"sourcesContent":["import { Config } from '@backstage/config';\nimport { Readable } from 'stream';\nimport { DocumentCollatorFactory } from '@backstage/plugin-search-common';\nimport {\n QetaApi,\n QetaClient,\n QetaCollectionDocument,\n QetaPostDocument,\n} from '@drodil/backstage-plugin-qeta-common';\nimport {\n AuthService,\n DiscoveryService,\n LoggerService,\n} from '@backstage/backend-plugin-api';\n\nexport type QetaCollatorFactoryOptions = {\n logger: LoggerService;\n discovery: DiscoveryService;\n auth?: AuthService;\n};\n\nexport class DefaultQetaCollatorFactory implements DocumentCollatorFactory {\n public readonly type: string = 'qeta';\n private readonly logger: LoggerService;\n private readonly auth?: AuthService;\n private readonly api: QetaApi;\n\n private constructor(_config: Config, options: QetaCollatorFactoryOptions) {\n this.logger = options.logger;\n this.auth = options.auth;\n this.api = new QetaClient({ discoveryApi: options.discovery });\n }\n\n static fromConfig(config: Config, options: QetaCollatorFactoryOptions) {\n return new DefaultQetaCollatorFactory(config, options);\n }\n\n async getCollator() {\n return Readable.from(this.execute());\n }\n\n async *execute(): AsyncGenerator<QetaPostDocument | QetaCollectionDocument> {\n this.logger.info('Executing QetaCollator');\n let totalPosts = Number.MAX_VALUE;\n let indexedPosts = 0;\n\n while (totalPosts > indexedPosts) {\n let tok = undefined;\n\n if (this.auth) {\n const { token } = await this.auth.getPluginRequestToken({\n onBehalfOf: await this.auth.getOwnServiceCredentials(),\n targetPluginId: 'qeta',\n });\n tok = token;\n }\n\n const data = await this.api.getPosts(\n {\n includeAnswers: true,\n includeComments: true,\n orderBy: 'created',\n order: 'asc',\n limit: 50,\n offset: indexedPosts,\n },\n { token: tok },\n );\n\n if (!data || 'errors' in data || !('posts' in data)) {\n this.logger.error(\n `Error while fetching posts from qeta: ${JSON.stringify(data)}`,\n );\n return;\n }\n\n const posts = data.posts;\n this.logger.info(`Indexing ${posts.length} posts`);\n totalPosts = data.total;\n indexedPosts += posts.length;\n\n for (const post of posts) {\n const postContent = `# ${\n post.type === 'question' ? 'Question' : 'Article'\n }: ${post.title}\\n\\n${post.content}`;\n const answersContent = (post.answers ?? []).map(a => {\n return `## ${a.correct ? 'Correct answer' : 'Answer'} by ${\n a.author\n }: ${a.content}`;\n });\n\n const allComments = (post.comments ?? []).concat(\n (post.answers ?? []).flatMap(a => a.comments ?? []),\n );\n const commentsContent = allComments.map(c => {\n return `* Comment by ${c.author}: ${c.content}`;\n });\n\n yield {\n title: post.title,\n text: `${postContent}\\n\\n${answersContent.join(\n '\\n\\n',\n )}\\n\\nComments:\\n\\n${commentsContent.join('\\n\\n')}`,\n location:\n post.type === 'question'\n ? `/qeta/questions/${post.id}`\n : `/qeta/articles/${post.id}`,\n docType: 'qeta_post',\n author: post.author,\n score: post.score,\n entityRefs: post.entities,\n answerCount: post.answersCount,\n views: post.views,\n tags: post.tags,\n };\n }\n }\n\n let totalCollections = Number.MAX_VALUE;\n let indexedCollections = 0;\n\n while (totalCollections > indexedCollections) {\n let tok = undefined;\n\n if (this.auth) {\n const { token } = await this.auth.getPluginRequestToken({\n onBehalfOf: await this.auth.getOwnServiceCredentials(),\n targetPluginId: 'qeta',\n });\n tok = token;\n }\n\n const data = await this.api.getCollections(\n {\n orderBy: 'created',\n order: 'asc',\n limit: 50,\n offset: indexedCollections,\n },\n { token: tok },\n );\n\n if (!data || 'errors' in data || !('collections' in data)) {\n this.logger.error(\n `Error while fetching collections from qeta: ${JSON.stringify(data)}`,\n );\n return;\n }\n\n const collections = data.collections;\n this.logger.info(`Indexing ${collections.length} collections`);\n totalCollections = data.total;\n indexedCollections += collections.length;\n\n for (const collection of collections) {\n yield {\n title: collection.title,\n text: collection.description ?? '',\n location: `/qeta/collections/${collection.id}`,\n docType: 'qeta_collection',\n owner: collection.owner,\n created: collection.created,\n headerImage: collection.headerImage,\n };\n }\n }\n }\n}\n"],"names":["QetaClient","Readable"],"mappings":"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"}
1
+ {"version":3,"file":"DefaultQetaCollatorFactory.cjs.js","sources":["../../src/collators/DefaultQetaCollatorFactory.ts"],"sourcesContent":["import { Config } from '@backstage/config';\nimport { Readable } from 'stream';\nimport { DocumentCollatorFactory } from '@backstage/plugin-search-common';\nimport {\n QetaApi,\n QetaClient,\n QetaCollectionDocument,\n QetaPostDocument,\n qetaReadPostPermission,\n} from '@drodil/backstage-plugin-qeta-common';\nimport {\n AuthService,\n DiscoveryService,\n LoggerService,\n} from '@backstage/backend-plugin-api';\n\nexport type QetaCollatorFactoryOptions = {\n logger: LoggerService;\n discovery: DiscoveryService;\n auth?: AuthService;\n};\n\nexport class DefaultQetaCollatorFactory implements DocumentCollatorFactory {\n public readonly type: string = 'qeta';\n visibilityPermission = qetaReadPostPermission;\n private readonly logger: LoggerService;\n private readonly auth?: AuthService;\n private readonly api: QetaApi;\n\n private constructor(_config: Config, options: QetaCollatorFactoryOptions) {\n this.logger = options.logger;\n this.auth = options.auth;\n this.api = new QetaClient({ discoveryApi: options.discovery });\n }\n\n static fromConfig(config: Config, options: QetaCollatorFactoryOptions) {\n return new DefaultQetaCollatorFactory(config, options);\n }\n\n async getCollator() {\n return Readable.from(this.execute());\n }\n\n async *execute(): AsyncGenerator<QetaPostDocument | QetaCollectionDocument> {\n this.logger.info('Executing QetaCollator');\n let totalPosts = Number.MAX_VALUE;\n let indexedPosts = 0;\n\n while (totalPosts > indexedPosts) {\n let tok = undefined;\n\n if (this.auth) {\n const { token } = await this.auth.getPluginRequestToken({\n onBehalfOf: await this.auth.getOwnServiceCredentials(),\n targetPluginId: 'qeta',\n });\n tok = token;\n }\n\n const data = await this.api.getPosts(\n {\n includeAnswers: true,\n includeComments: true,\n orderBy: 'created',\n order: 'asc',\n limit: 50,\n offset: indexedPosts,\n },\n { token: tok },\n );\n\n if (!data || 'errors' in data || !('posts' in data)) {\n this.logger.error(\n `Error while fetching posts from qeta: ${JSON.stringify(data)}`,\n );\n return;\n }\n\n const posts = data.posts;\n this.logger.info(`Indexing ${posts.length} posts`);\n totalPosts = data.total;\n indexedPosts += posts.length;\n\n for (const post of posts) {\n const postContent = `# ${\n post.type === 'question' ? 'Question' : 'Article'\n }: ${post.title}\\n\\n${post.content}`;\n const answersContent = (post.answers ?? []).map(a => {\n return `## ${a.correct ? 'Correct answer' : 'Answer'} by ${\n a.author\n }: ${a.content}`;\n });\n\n const allComments = (post.comments ?? []).concat(\n (post.answers ?? []).flatMap(a => a.comments ?? []),\n );\n const commentsContent = allComments.map(c => {\n return `* Comment by ${c.author}: ${c.content}`;\n });\n\n yield {\n title: post.title,\n text: `${postContent}\\n\\n${answersContent.join('\\n\\n')}\\n\\n${\n commentsContent.length > 0\n ? `Comments:\\n\\n${commentsContent.join('\\n\\n')}`\n : ''\n }`,\n location:\n post.type === 'question'\n ? `/qeta/questions/${post.id}`\n : `/qeta/articles/${post.id}`,\n docType: 'qeta_post',\n author: post.author,\n score: post.score,\n entityRefs: post.entities,\n answerCount: post.answersCount,\n views: post.views,\n tags: post.tags,\n authorization: {\n resourceRef: `qeta:post:${post.id}`,\n },\n };\n }\n }\n\n let totalCollections = Number.MAX_VALUE;\n let indexedCollections = 0;\n\n while (totalCollections > indexedCollections) {\n let tok = undefined;\n\n if (this.auth) {\n const { token } = await this.auth.getPluginRequestToken({\n onBehalfOf: await this.auth.getOwnServiceCredentials(),\n targetPluginId: 'qeta',\n });\n tok = token;\n }\n\n const data = await this.api.getCollections(\n {\n orderBy: 'created',\n order: 'asc',\n limit: 50,\n offset: indexedCollections,\n },\n { token: tok },\n );\n\n if (!data || 'errors' in data || !('collections' in data)) {\n this.logger.error(\n `Error while fetching collections from qeta: ${JSON.stringify(data)}`,\n );\n return;\n }\n\n const collections = data.collections;\n this.logger.info(`Indexing ${collections.length} collections`);\n totalCollections = data.total;\n indexedCollections += collections.length;\n\n for (const collection of collections) {\n yield {\n title: collection.title,\n text: collection.description ?? '',\n location: `/qeta/collections/${collection.id}`,\n docType: 'qeta_collection',\n owner: collection.owner,\n created: collection.created,\n headerImage: collection.headerImage,\n };\n }\n }\n }\n}\n"],"names":["qetaReadPostPermission","QetaClient","Readable"],"mappings":";;;;;AAsBO,MAAM,0BAA8D,CAAA;AAAA,EACzD,IAAe,GAAA,MAAA;AAAA,EAC/B,oBAAuB,GAAAA,gDAAA;AAAA,EACN,MAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EAET,WAAA,CAAY,SAAiB,OAAqC,EAAA;AACxE,IAAA,IAAA,CAAK,SAAS,OAAQ,CAAA,MAAA;AACtB,IAAA,IAAA,CAAK,OAAO,OAAQ,CAAA,IAAA;AACpB,IAAA,IAAA,CAAK,MAAM,IAAIC,oCAAA,CAAW,EAAE,YAAc,EAAA,OAAA,CAAQ,WAAW,CAAA;AAAA;AAC/D,EAEA,OAAO,UAAW,CAAA,MAAA,EAAgB,OAAqC,EAAA;AACrE,IAAO,OAAA,IAAI,0BAA2B,CAAA,MAAA,EAAQ,OAAO,CAAA;AAAA;AACvD,EAEA,MAAM,WAAc,GAAA;AAClB,IAAA,OAAOC,eAAS,CAAA,IAAA,CAAK,IAAK,CAAA,OAAA,EAAS,CAAA;AAAA;AACrC,EAEA,OAAO,OAAqE,GAAA;AAC1E,IAAK,IAAA,CAAA,MAAA,CAAO,KAAK,wBAAwB,CAAA;AACzC,IAAA,IAAI,aAAa,MAAO,CAAA,SAAA;AACxB,IAAA,IAAI,YAAe,GAAA,CAAA;AAEnB,IAAA,OAAO,aAAa,YAAc,EAAA;AAChC,MAAA,IAAI,GAAM,GAAA,KAAA,CAAA;AAEV,MAAA,IAAI,KAAK,IAAM,EAAA;AACb,QAAA,MAAM,EAAE,KAAM,EAAA,GAAI,MAAM,IAAA,CAAK,KAAK,qBAAsB,CAAA;AAAA,UACtD,UAAY,EAAA,MAAM,IAAK,CAAA,IAAA,CAAK,wBAAyB,EAAA;AAAA,UACrD,cAAgB,EAAA;AAAA,SACjB,CAAA;AACD,QAAM,GAAA,GAAA,KAAA;AAAA;AAGR,MAAM,MAAA,IAAA,GAAO,MAAM,IAAA,CAAK,GAAI,CAAA,QAAA;AAAA,QAC1B;AAAA,UACE,cAAgB,EAAA,IAAA;AAAA,UAChB,eAAiB,EAAA,IAAA;AAAA,UACjB,OAAS,EAAA,SAAA;AAAA,UACT,KAAO,EAAA,KAAA;AAAA,UACP,KAAO,EAAA,EAAA;AAAA,UACP,MAAQ,EAAA;AAAA,SACV;AAAA,QACA,EAAE,OAAO,GAAI;AAAA,OACf;AAEA,MAAA,IAAI,CAAC,IAAQ,IAAA,QAAA,IAAY,IAAQ,IAAA,EAAE,WAAW,IAAO,CAAA,EAAA;AACnD,QAAA,IAAA,CAAK,MAAO,CAAA,KAAA;AAAA,UACV,CAAyC,sCAAA,EAAA,IAAA,CAAK,SAAU,CAAA,IAAI,CAAC,CAAA;AAAA,SAC/D;AACA,QAAA;AAAA;AAGF,MAAA,MAAM,QAAQ,IAAK,CAAA,KAAA;AACnB,MAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,CAAY,SAAA,EAAA,KAAA,CAAM,MAAM,CAAQ,MAAA,CAAA,CAAA;AACjD,MAAA,UAAA,GAAa,IAAK,CAAA,KAAA;AAClB,MAAA,YAAA,IAAgB,KAAM,CAAA,MAAA;AAEtB,MAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,QAAM,MAAA,WAAA,GAAc,KAClB,IAAK,CAAA,IAAA,KAAS,aAAa,UAAa,GAAA,SAC1C,CAAK,EAAA,EAAA,IAAA,CAAK,KAAK;;AAAA,EAAO,KAAK,OAAO,CAAA,CAAA;AAClC,QAAA,MAAM,kBAAkB,IAAK,CAAA,OAAA,IAAW,EAAC,EAAG,IAAI,CAAK,CAAA,KAAA;AACnD,UAAO,OAAA,CAAA,GAAA,EAAM,CAAE,CAAA,OAAA,GAAU,gBAAmB,GAAA,QAAQ,OAClD,CAAE,CAAA,MACJ,CAAK,EAAA,EAAA,CAAA,CAAE,OAAO,CAAA,CAAA;AAAA,SACf,CAAA;AAED,QAAA,MAAM,WAAe,GAAA,CAAA,IAAA,CAAK,QAAY,IAAA,EAAI,EAAA,MAAA;AAAA,UACvC,CAAA,IAAA,CAAK,WAAW,EAAC,EAAG,QAAQ,CAAK,CAAA,KAAA,CAAA,CAAE,QAAY,IAAA,EAAE;AAAA,SACpD;AACA,QAAM,MAAA,eAAA,GAAkB,WAAY,CAAA,GAAA,CAAI,CAAK,CAAA,KAAA;AAC3C,UAAA,OAAO,CAAgB,aAAA,EAAA,CAAA,CAAE,MAAM,CAAA,EAAA,EAAK,EAAE,OAAO,CAAA,CAAA;AAAA,SAC9C,CAAA;AAED,QAAM,MAAA;AAAA,UACJ,OAAO,IAAK,CAAA,KAAA;AAAA,UACZ,IAAA,EAAM,GAAG,WAAW;;AAAA,EAAO,cAAA,CAAe,IAAK,CAAA,MAAM,CAAC;;AAAA,EACpD,eAAA,CAAgB,SAAS,CACrB,GAAA,CAAA;;AAAA,EAAgB,eAAgB,CAAA,IAAA,CAAK,MAAM,CAAC,KAC5C,EACN,CAAA,CAAA;AAAA,UACA,QAAA,EACE,IAAK,CAAA,IAAA,KAAS,UACV,GAAA,CAAA,gBAAA,EAAmB,KAAK,EAAE,CAAA,CAAA,GAC1B,CAAkB,eAAA,EAAA,IAAA,CAAK,EAAE,CAAA,CAAA;AAAA,UAC/B,OAAS,EAAA,WAAA;AAAA,UACT,QAAQ,IAAK,CAAA,MAAA;AAAA,UACb,OAAO,IAAK,CAAA,KAAA;AAAA,UACZ,YAAY,IAAK,CAAA,QAAA;AAAA,UACjB,aAAa,IAAK,CAAA,YAAA;AAAA,UAClB,OAAO,IAAK,CAAA,KAAA;AAAA,UACZ,MAAM,IAAK,CAAA,IAAA;AAAA,UACX,aAAe,EAAA;AAAA,YACb,WAAA,EAAa,CAAa,UAAA,EAAA,IAAA,CAAK,EAAE,CAAA;AAAA;AACnC,SACF;AAAA;AACF;AAGF,IAAA,IAAI,mBAAmB,MAAO,CAAA,SAAA;AAC9B,IAAA,IAAI,kBAAqB,GAAA,CAAA;AAEzB,IAAA,OAAO,mBAAmB,kBAAoB,EAAA;AAC5C,MAAA,IAAI,GAAM,GAAA,KAAA,CAAA;AAEV,MAAA,IAAI,KAAK,IAAM,EAAA;AACb,QAAA,MAAM,EAAE,KAAM,EAAA,GAAI,MAAM,IAAA,CAAK,KAAK,qBAAsB,CAAA;AAAA,UACtD,UAAY,EAAA,MAAM,IAAK,CAAA,IAAA,CAAK,wBAAyB,EAAA;AAAA,UACrD,cAAgB,EAAA;AAAA,SACjB,CAAA;AACD,QAAM,GAAA,GAAA,KAAA;AAAA;AAGR,MAAM,MAAA,IAAA,GAAO,MAAM,IAAA,CAAK,GAAI,CAAA,cAAA;AAAA,QAC1B;AAAA,UACE,OAAS,EAAA,SAAA;AAAA,UACT,KAAO,EAAA,KAAA;AAAA,UACP,KAAO,EAAA,EAAA;AAAA,UACP,MAAQ,EAAA;AAAA,SACV;AAAA,QACA,EAAE,OAAO,GAAI;AAAA,OACf;AAEA,MAAA,IAAI,CAAC,IAAQ,IAAA,QAAA,IAAY,IAAQ,IAAA,EAAE,iBAAiB,IAAO,CAAA,EAAA;AACzD,QAAA,IAAA,CAAK,MAAO,CAAA,KAAA;AAAA,UACV,CAA+C,4CAAA,EAAA,IAAA,CAAK,SAAU,CAAA,IAAI,CAAC,CAAA;AAAA,SACrE;AACA,QAAA;AAAA;AAGF,MAAA,MAAM,cAAc,IAAK,CAAA,WAAA;AACzB,MAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,CAAY,SAAA,EAAA,WAAA,CAAY,MAAM,CAAc,YAAA,CAAA,CAAA;AAC7D,MAAA,gBAAA,GAAmB,IAAK,CAAA,KAAA;AACxB,MAAA,kBAAA,IAAsB,WAAY,CAAA,MAAA;AAElC,MAAA,KAAA,MAAW,cAAc,WAAa,EAAA;AACpC,QAAM,MAAA;AAAA,UACJ,OAAO,UAAW,CAAA,KAAA;AAAA,UAClB,IAAA,EAAM,WAAW,WAAe,IAAA,EAAA;AAAA,UAChC,QAAA,EAAU,CAAqB,kBAAA,EAAA,UAAA,CAAW,EAAE,CAAA,CAAA;AAAA,UAC5C,OAAS,EAAA,iBAAA;AAAA,UACT,OAAO,UAAW,CAAA,KAAA;AAAA,UAClB,SAAS,UAAW,CAAA,OAAA;AAAA,UACpB,aAAa,UAAW,CAAA;AAAA,SAC1B;AAAA;AACF;AACF;AAEJ;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
2
2
  import { LoggerService, DiscoveryService, AuthService } from '@backstage/backend-plugin-api';
3
+ import * as _backstage_plugin_permission_common_index from '@backstage/plugin-permission-common/index';
3
4
  import { Config } from '@backstage/config';
4
5
  import { Readable } from 'stream';
5
6
  import { DocumentCollatorFactory } from '@backstage/plugin-search-common';
@@ -14,6 +15,7 @@ type QetaCollatorFactoryOptions = {
14
15
  };
15
16
  declare class DefaultQetaCollatorFactory implements DocumentCollatorFactory {
16
17
  readonly type: string;
18
+ visibilityPermission: _backstage_plugin_permission_common_index.ResourcePermission<"post">;
17
19
  private readonly logger;
18
20
  private readonly auth?;
19
21
  private readonly api;
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "search",
8
8
  "backstage.io"
9
9
  ],
10
- "version": "3.17.3",
10
+ "version": "3.17.5",
11
11
  "main": "dist/index.cjs.js",
12
12
  "types": "dist/index.d.ts",
13
13
  "prepublishOnly": "yarn tsc && yarn build",
@@ -46,11 +46,11 @@
46
46
  "@backstage/errors": "^1.2.7",
47
47
  "@backstage/plugin-search-backend-node": "^1.3.7",
48
48
  "@backstage/plugin-search-common": "^1.2.17",
49
- "@drodil/backstage-plugin-qeta-common": "^3.17.3"
49
+ "@drodil/backstage-plugin-qeta-common": "^3.17.5"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@backstage/backend-test-utils": "^1.2.1",
53
- "@backstage/cli": "^0.29.5",
53
+ "@backstage/cli": "^0.29.6",
54
54
  "msw": "^1.2.1"
55
55
  },
56
56
  "files": [