Yuki Takei 8 месяцев назад
Родитель
Сommit
46a23f5ce5

+ 1 - 1
apps/app/src/features/opentelemetry/server/custom-metrics/application-metrics.ts

@@ -32,7 +32,7 @@ export function addApplicationMetrics(): void {
       try {
         // Dynamic import to avoid circular dependencies
         const { growiInfoService } = await import('~/server/service/growi-info');
-        const growiInfo = await growiInfoService.getGrowiInfo(true);
+        const growiInfo = await growiInfoService.getGrowiInfo({ includeAttachmentInfo: true });
 
         const isAppSiteUrlHashed = configManager.getConfig('otel:isAppSiteUrlHashed');
 

+ 1 - 1
apps/app/src/features/opentelemetry/server/custom-metrics/user-counts-metrics.ts

@@ -29,7 +29,7 @@ export function addUserCountsMetrics(): void {
         // Dynamic import to avoid circular dependencies
         const { growiInfoService } = await import('~/server/service/growi-info');
 
-        const growiInfo = await growiInfoService.getGrowiInfo(true);
+        const growiInfo = await growiInfoService.getGrowiInfo({ includeUserCountInfo: true });
 
         // Observe user count metrics
         result.observe(userCountGauge, growiInfo.additionalInfo?.currentUsersCount || 0);

+ 1 - 1
apps/app/src/features/opentelemetry/server/custom-resource-attributes/application-resource-attributes.ts

@@ -15,7 +15,7 @@ export async function getApplicationResourceAttributes(): Promise<Attributes> {
     // Dynamic import to avoid circular dependencies
     const { growiInfoService } = await import('~/server/service/growi-info');
 
-    const growiInfo = await growiInfoService.getGrowiInfo(true);
+    const growiInfo = await growiInfoService.getGrowiInfo({ includeInstalledInfo: true });
 
     const attributes: Attributes = {
       // Service configuration (rarely changes after system setup)

+ 6 - 6
apps/app/src/server/service/growi-info/growi-info.integ.ts

@@ -115,7 +115,7 @@ describe('GrowiInfoService', () => {
 
     test('Should get correct GROWI info with specific options - attachment only', async() => {
       // act
-      const growiInfo = await growiInfoService.getGrowiInfo({ includeAttachment: true });
+      const growiInfo = await growiInfoService.getGrowiInfo({ includeAttachmentInfo: true });
 
       // assert
       assert(growiInfo != null);
@@ -127,7 +127,7 @@ describe('GrowiInfoService', () => {
 
     test('Should get correct GROWI info with specific options - user count only', async() => {
       // act
-      const growiInfo = await growiInfoService.getGrowiInfo({ includeUserCount: true });
+      const growiInfo = await growiInfoService.getGrowiInfo({ includeUserCountInfo: true });
 
       // assert
       assert(growiInfo != null);
@@ -156,8 +156,8 @@ describe('GrowiInfoService', () => {
     test('Should get correct GROWI info with combined options', async() => {
       // act
       const growiInfo = await growiInfoService.getGrowiInfo({
-        includeAttachment: true,
-        includeUserCount: true,
+        includeAttachmentInfo: true,
+        includeUserCountInfo: true,
       });
 
       // assert
@@ -173,9 +173,9 @@ describe('GrowiInfoService', () => {
     test('Should get correct GROWI info with all options', async() => {
       // act
       const growiInfo = await growiInfoService.getGrowiInfo({
-        includeAttachment: true,
+        includeAttachmentInfo: true,
         includeInstalledInfo: true,
-        includeUserCount: true,
+        includeUserCountInfo: true,
       });
 
       // assert

+ 4 - 4
apps/app/src/server/service/growi-info/growi-info.ts

@@ -19,9 +19,9 @@ import { getGrowiVersion } from '~/utils/growi-version';
 
 // Local preset for full additional info
 const FULL_ADDITIONAL_INFO_OPTIONS = {
-  includeAttachment: true,
+  includeAttachmentInfo: true,
   includeInstalledInfo: true,
-  includeUserCount: true,
+  includeUserCountInfo: true,
 } as const;
 
 
@@ -118,7 +118,7 @@ export class GrowiInfoService {
     const User = mongoose.model<IUser, Model<IUser>>('User');
 
     // Check if any option is enabled to determine if we should return additional info
-    const hasAnyOption = options.includeAttachment || options.includeInstalledInfo || options.includeUserCount;
+    const hasAnyOption = options.includeAttachmentInfo || options.includeInstalledInfo || options.includeUserCountInfo;
 
     if (!hasAnyOption) {
       return undefined as IGrowiAdditionalInfoResult<T>;
@@ -155,7 +155,7 @@ export class GrowiInfoService {
       partialResult.installedAtByOldestUser = installedAtByOldestUser;
     }
 
-    if (options.includeUserCount) {
+    if (options.includeUserCountInfo) {
       const currentUsersCount = await User.countDocuments();
       const currentActiveUsersCount = await (User as unknown as { countActiveUsers: () => Promise<number> }).countActiveUsers();
 

+ 15 - 15
packages/core/src/interfaces/growi-app-info.ts

@@ -7,9 +7,9 @@ type GrowiWikiType = (typeof GrowiWikiType)[keyof typeof GrowiWikiType];
 
 // Info options for additionalInfo selection
 export interface GrowiInfoOptions {
-  includeAttachment?: boolean;
+  includeAttachmentInfo?: boolean;
   includeInstalledInfo?: boolean;
-  includeUserCount?: boolean;
+  includeUserCountInfo?: boolean;
   // Future extensions can be added here
   // includePageCount?: boolean;
 }
@@ -21,45 +21,45 @@ interface IGrowiOSInfo {
   totalmem?: ReturnType<typeof os.totalmem>;
 }
 
-export interface IAttachmentInfo {
+interface IAdditionalAttachmentInfo {
   attachmentType: string;
   activeExternalAccountTypes: string[];
 }
 
-export interface IInstalledAtInfo {
+interface IAdditionalInstalledAtInfo {
   installedAt: Date;
   installedAtByOldestUser: Date | null;
 }
 
-export interface IUserCountInfo {
+interface IAdditionalUserCountInfo {
   currentUsersCount: number;
   currentActiveUsersCount: number;
 }
 
 export interface IGrowiAdditionalInfo
-  extends IInstalledAtInfo,
-    IUserCountInfo,
-    IAttachmentInfo {}
+  extends IAdditionalInstalledAtInfo,
+    IAdditionalUserCountInfo,
+    IAdditionalAttachmentInfo {}
 
 // Type mapping for flexible options
 export type IGrowiAdditionalInfoByOptions<T extends GrowiInfoOptions> =
-  (T['includeAttachment'] extends true
-    ? IAttachmentInfo
+  (T['includeAttachmentInfo'] extends true
+    ? IAdditionalAttachmentInfo
     : Record<string, never>) &
     (T['includeInstalledInfo'] extends true
-      ? IInstalledAtInfo
+      ? IAdditionalInstalledAtInfo
       : Record<string, never>) &
-    (T['includeUserCount'] extends true
-      ? IUserCountInfo
+    (T['includeUserCountInfo'] extends true
+      ? IAdditionalUserCountInfo
       : Record<string, never>);
 
 // Helper type to check if any option is enabled
 export type HasAnyOption<T extends GrowiInfoOptions> =
-  T['includeAttachment'] extends true
+  T['includeAttachmentInfo'] extends true
     ? true
     : T['includeInstalledInfo'] extends true
       ? true
-      : T['includeUserCount'] extends true
+      : T['includeUserCountInfo'] extends true
         ? true
         : false;