@abyss-project/storage 1.0.21 → 1.0.23

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.
Files changed (25) hide show
  1. package/dist/api/hourly-metrics.api.d.ts +4 -0
  2. package/dist/api/hourly-metrics.api.js +16 -0
  3. package/dist/api/index.d.ts +1 -0
  4. package/dist/api/index.js +1 -0
  5. package/dist/types/interface/api/index.d.ts +4 -0
  6. package/dist/types/interface/api/index.js +4 -0
  7. package/dist/types/interface/api/requests/hourly-metrics.request.d.ts +28 -0
  8. package/dist/types/interface/api/requests/hourly-metrics.request.js +2 -0
  9. package/dist/types/interface/api/requests/metrics.admin.request.d.ts +13 -0
  10. package/dist/types/interface/api/requests/metrics.admin.request.js +2 -0
  11. package/dist/types/interface/api/responses/hourly-metrics.response.d.ts +82 -0
  12. package/dist/types/interface/api/responses/hourly-metrics.response.js +2 -0
  13. package/dist/types/interface/api/responses/metrics.admin.response.d.ts +19 -0
  14. package/dist/types/interface/api/responses/metrics.admin.response.js +2 -0
  15. package/dist/types/interface/api/responses/report.admin.response.d.ts +13 -25
  16. package/dist/types/interface/index.d.ts +2 -0
  17. package/dist/types/interface/index.js +2 -0
  18. package/dist/types/interface/models/application-file-thumbnail.model.d.ts +1 -0
  19. package/dist/types/interface/models/application-file.model.d.ts +1 -0
  20. package/dist/types/interface/models/application-hourly-metrics.model.d.ts +41 -0
  21. package/dist/types/interface/models/application-hourly-metrics.model.js +2 -0
  22. package/dist/types/interface/models/application-lifetime-metrics.model.d.ts +27 -0
  23. package/dist/types/interface/models/application-lifetime-metrics.model.js +2 -0
  24. package/dist/types/interface/models/application-store-entry.model.d.ts +1 -0
  25. package/package.json +1 -1
@@ -0,0 +1,4 @@
1
+ import { IGetStorageHourlyMetricsParams, IGetStorageHourlyMetricsQuery, IGetStorageHourlyMetricsResponse, IGetAggregatedStorageHourlyMetricsParams, IGetAggregatedStorageHourlyMetricsQuery, IGetAggregatedStorageHourlyMetricsResponse, IGetStorageHourlyMetricsComparisonParams, IGetStorageHourlyMetricsComparisonQuery, IGetStorageHourlyMetricsComparisonResponse } from '../types';
2
+ export declare const getStorageHourlyMetrics: (params: IGetStorageHourlyMetricsParams, query: IGetStorageHourlyMetricsQuery) => Promise<IGetStorageHourlyMetricsResponse>;
3
+ export declare const getAggregatedStorageHourlyMetrics: (params: IGetAggregatedStorageHourlyMetricsParams, query: IGetAggregatedStorageHourlyMetricsQuery) => Promise<IGetAggregatedStorageHourlyMetricsResponse>;
4
+ export declare const getStorageHourlyMetricsComparison: (params: IGetStorageHourlyMetricsComparisonParams, query: IGetStorageHourlyMetricsComparisonQuery) => Promise<IGetStorageHourlyMetricsComparisonResponse>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStorageHourlyMetricsComparison = exports.getAggregatedStorageHourlyMetrics = exports.getStorageHourlyMetrics = void 0;
4
+ const __1 = require("..");
5
+ const getStorageHourlyMetrics = async (params, query) => {
6
+ return (await __1.AbyssStorageCore.axios.get(`metrics/hourly/${params.projectId}`, { params: query })).data;
7
+ };
8
+ exports.getStorageHourlyMetrics = getStorageHourlyMetrics;
9
+ const getAggregatedStorageHourlyMetrics = async (params, query) => {
10
+ return (await __1.AbyssStorageCore.axios.get(`metrics/hourly/${params.projectId}/aggregated`, { params: query })).data;
11
+ };
12
+ exports.getAggregatedStorageHourlyMetrics = getAggregatedStorageHourlyMetrics;
13
+ const getStorageHourlyMetricsComparison = async (params, query) => {
14
+ return (await __1.AbyssStorageCore.axios.get(`metrics/hourly/${params.projectId}/comparison`, { params: query })).data;
15
+ };
16
+ exports.getStorageHourlyMetricsComparison = getStorageHourlyMetricsComparison;
@@ -17,3 +17,4 @@ export * from './application-store.admin.api';
17
17
  export * from './application-store.public.api';
18
18
  export * from './application-store.api';
19
19
  export * from './report.admin.api';
20
+ export * from './hourly-metrics.api';
package/dist/api/index.js CHANGED
@@ -33,3 +33,4 @@ __exportStar(require("./application-store.admin.api"), exports);
33
33
  __exportStar(require("./application-store.public.api"), exports);
34
34
  __exportStar(require("./application-store.api"), exports);
35
35
  __exportStar(require("./report.admin.api"), exports);
36
+ __exportStar(require("./hourly-metrics.api"), exports);
@@ -20,6 +20,8 @@ export * from './requests/application-store.admin.request';
20
20
  export * from './requests/application-store.public.request';
21
21
  export * from './requests/application-store.request';
22
22
  export * from './requests/report.admin.request';
23
+ export * from './requests/metrics.admin.request';
24
+ export * from './requests/hourly-metrics.request';
23
25
  export * from './responses/application.response';
24
26
  export * from './responses/application.admin.response';
25
27
  export * from './responses/application-file.admin.response';
@@ -38,3 +40,5 @@ export * from './responses/application-store.admin.response';
38
40
  export * from './responses/application-store.public.response';
39
41
  export * from './responses/application-store.response';
40
42
  export * from './responses/report.admin.response';
43
+ export * from './responses/metrics.admin.response';
44
+ export * from './responses/hourly-metrics.response';
@@ -36,6 +36,8 @@ __exportStar(require("./requests/application-store.admin.request"), exports);
36
36
  __exportStar(require("./requests/application-store.public.request"), exports);
37
37
  __exportStar(require("./requests/application-store.request"), exports);
38
38
  __exportStar(require("./requests/report.admin.request"), exports);
39
+ __exportStar(require("./requests/metrics.admin.request"), exports);
40
+ __exportStar(require("./requests/hourly-metrics.request"), exports);
39
41
  __exportStar(require("./responses/application.response"), exports);
40
42
  __exportStar(require("./responses/application.admin.response"), exports);
41
43
  __exportStar(require("./responses/application-file.admin.response"), exports);
@@ -54,3 +56,5 @@ __exportStar(require("./responses/application-store.admin.response"), exports);
54
56
  __exportStar(require("./responses/application-store.public.response"), exports);
55
57
  __exportStar(require("./responses/application-store.response"), exports);
56
58
  __exportStar(require("./responses/report.admin.response"), exports);
59
+ __exportStar(require("./responses/metrics.admin.response"), exports);
60
+ __exportStar(require("./responses/hourly-metrics.response"), exports);
@@ -0,0 +1,28 @@
1
+ export interface IGetStorageHourlyMetricsParams {
2
+ projectId: string;
3
+ }
4
+ export interface IGetStorageHourlyMetricsQuery {
5
+ applicationIds?: string[];
6
+ startDate?: Date;
7
+ endDate?: Date;
8
+ limit?: number;
9
+ offset?: number;
10
+ granularity?: 'hour' | 'day' | 'week' | 'month';
11
+ }
12
+ export interface IGetAggregatedStorageHourlyMetricsParams {
13
+ projectId: string;
14
+ }
15
+ export interface IGetAggregatedStorageHourlyMetricsQuery {
16
+ applicationIds?: string[];
17
+ startDate?: Date;
18
+ endDate?: Date;
19
+ }
20
+ export interface IGetStorageHourlyMetricsComparisonParams {
21
+ projectId: string;
22
+ }
23
+ export interface IGetStorageHourlyMetricsComparisonQuery {
24
+ applicationIds: string[];
25
+ startDate?: Date;
26
+ endDate?: Date;
27
+ metrics?: string[];
28
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ export interface IFillLifetimeMetricsAdminBody {
2
+ applicationIds?: string[];
3
+ force?: boolean;
4
+ }
5
+ export interface IFillHourlyMetricsAdminBody {
6
+ applicationIds?: string[];
7
+ days?: number;
8
+ force?: boolean;
9
+ }
10
+ export interface IAggregateHourAdminBody {
11
+ applicationIds?: string[];
12
+ applicationCronTaskHistoryId?: string;
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,82 @@
1
+ import { IResponse, IApplicationHourlyMetrics, FilesByType } from '../..';
2
+ export interface IStorageHourlyMetricsRecord extends Omit<IApplicationHourlyMetrics, 'application'> {
3
+ }
4
+ export interface IAggregatedStorageMetricsSummary {
5
+ totalFiles: number;
6
+ totalFilesSize: number;
7
+ totalCreatedFiles: number;
8
+ totalCreatedFilesSize: number;
9
+ totalDeletedFiles: number;
10
+ totalDeletedFilesSize: number;
11
+ netFileChange: number;
12
+ netSizeChange: number;
13
+ totalThumbnails: number;
14
+ totalThumbnailsSize: number;
15
+ totalCreatedThumbnails: number;
16
+ totalCreatedThumbnailsSize: number;
17
+ totalDeletedThumbnails: number;
18
+ totalDeletedThumbnailsSize: number;
19
+ totalPreSignUrls: number;
20
+ usedPreSignUrls: number;
21
+ preSignUrlUsageRate: number;
22
+ uploadPreSignUrls: number;
23
+ downloadPreSignUrls: number;
24
+ writePreSignUrls: number;
25
+ usedUploadPreSignUrls: number;
26
+ usedDownloadPreSignUrls: number;
27
+ usedWritePreSignUrls: number;
28
+ totalWebhooks: number;
29
+ successfulWebhooks: number;
30
+ failedWebhooks: number;
31
+ webhookSuccessRate: number;
32
+ totalStoreEntries: number;
33
+ filesByMimeType: Record<string, FilesByType>;
34
+ }
35
+ export interface IStorageMetricsTimeSeriesPoint {
36
+ timestamp: string;
37
+ value: number;
38
+ }
39
+ export interface IStorageMetricsTimeSeries {
40
+ metricName: string;
41
+ applicationId: string;
42
+ applicationName?: string;
43
+ data: IStorageMetricsTimeSeriesPoint[];
44
+ }
45
+ export interface IGetStorageHourlyMetricsData {
46
+ metricsByApplication: Record<string, IStorageHourlyMetricsRecord[]>;
47
+ totalByApplication: Record<string, number>;
48
+ periodStart: string;
49
+ periodEnd: string;
50
+ }
51
+ export type IGetStorageHourlyMetricsResponse = IResponse<IGetStorageHourlyMetricsData>;
52
+ export interface IGetAggregatedStorageHourlyMetricsData {
53
+ aggregatedByApplication: Record<string, IAggregatedStorageMetricsSummary>;
54
+ overallAggregated: IAggregatedStorageMetricsSummary;
55
+ periodStart: string;
56
+ periodEnd: string;
57
+ hoursInPeriod: number;
58
+ }
59
+ export type IGetAggregatedStorageHourlyMetricsResponse = IResponse<IGetAggregatedStorageHourlyMetricsData>;
60
+ export interface IApplicationStorageMetricsComparison {
61
+ applicationId: string;
62
+ applicationName?: string;
63
+ aggregated: IAggregatedStorageMetricsSummary;
64
+ trends: {
65
+ totalFiles: IStorageMetricsTimeSeriesPoint[];
66
+ totalFilesSize: IStorageMetricsTimeSeriesPoint[];
67
+ createdFiles: IStorageMetricsTimeSeriesPoint[];
68
+ preSignUrls: IStorageMetricsTimeSeriesPoint[];
69
+ };
70
+ }
71
+ export interface IGetStorageHourlyMetricsComparisonData {
72
+ applications: IApplicationStorageMetricsComparison[];
73
+ periodStart: string;
74
+ periodEnd: string;
75
+ }
76
+ export type IGetStorageHourlyMetricsComparisonResponse = IResponse<IGetStorageHourlyMetricsComparisonData>;
77
+ export interface IGetStorageMetricsTimeSeriesData {
78
+ series: IStorageMetricsTimeSeries[];
79
+ periodStart: string;
80
+ periodEnd: string;
81
+ }
82
+ export type IGetStorageMetricsTimeSeriesResponse = IResponse<IGetStorageMetricsTimeSeriesData>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,19 @@
1
+ import { IResponse } from '../..';
2
+ export interface IFillLifetimeMetricsData {
3
+ success: boolean;
4
+ message: string;
5
+ requestId: string;
6
+ }
7
+ export type IFillLifetimeMetricsAdminResponse = IResponse<IFillLifetimeMetricsData>;
8
+ export interface IFillHourlyMetricsData {
9
+ success: boolean;
10
+ message: string;
11
+ requestId: string;
12
+ }
13
+ export type IFillHourlyMetricsAdminResponse = IResponse<IFillHourlyMetricsData>;
14
+ export interface IAggregateHourData {
15
+ success: boolean;
16
+ message: string;
17
+ requestId: string;
18
+ }
19
+ export type IAggregateHourAdminResponse = IResponse<IAggregateHourData>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -10,42 +10,30 @@ export interface PreSignUrlsByType {
10
10
  write: PreSignUrlTypeStats;
11
11
  }
12
12
  export interface FilesByType {
13
- mimeType: string;
14
13
  count: number;
15
14
  totalSize: number;
16
15
  }
17
- export interface LifetimeMetrics {
16
+ export interface CoreLifetimeMetrics {
18
17
  totalFiles: number;
19
18
  totalSize: number;
20
19
  totalPreSignUrlsGenerated: number;
21
20
  totalPreSignUrlsUsed: number;
22
21
  averageFileSize: number;
23
- filesByType: Array<FilesByType>;
22
+ filesByType: Record<string, FilesByType>;
24
23
  preSignUrlsByType: PreSignUrlsByType;
25
- largestFile: {
26
- id: string;
27
- name: string;
28
- size: number;
29
- mimeType: string;
30
- } | null;
31
24
  mostUploadedFileType: string;
32
- topFilesByPreSignUrlUsage: Array<{
33
- fileId: string;
34
- fileName: string;
35
- uploadCount: number;
36
- downloadCount: number;
37
- writeCount: number;
38
- totalUsageCount: number;
39
- }>;
40
25
  }
41
- export interface ApplicationMetrics {
42
- totalFiles: number;
43
- totalSize: number;
44
- totalPreSignUrlsGenerated: number;
45
- totalPreSignUrlsUsed: number;
46
- averageFileSize: number;
47
- filesByType: Array<FilesByType>;
48
- preSignUrlsByType: PreSignUrlsByType;
26
+ export interface LifetimeMetrics extends CoreLifetimeMetrics {
27
+ }
28
+ export interface ApplicationMetrics extends CoreLifetimeMetrics {
29
+ createdFiles: number;
30
+ createdFilesSize: number;
31
+ deletedFiles: number;
32
+ deletedFilesSize: number;
33
+ createdThumbnails: number;
34
+ createdThumbnailsSize: number;
35
+ deletedThumbnails: number;
36
+ deletedThumbnailsSize: number;
49
37
  largestFile: {
50
38
  id: string;
51
39
  name: string;
@@ -6,6 +6,8 @@ export * from './models/pre-sign-url.model';
6
6
  export * from './models/application-file-thumbnail.model';
7
7
  export * from './models/stream-media.model';
8
8
  export * from './models/application-store-entry.model';
9
+ export * from './models/application-hourly-metrics.model';
10
+ export * from './models/application-lifetime-metrics.model';
9
11
  export * from './api';
10
12
  export * from './dto';
11
13
  export * from './constants';
@@ -22,6 +22,8 @@ __exportStar(require("./models/pre-sign-url.model"), exports);
22
22
  __exportStar(require("./models/application-file-thumbnail.model"), exports);
23
23
  __exportStar(require("./models/stream-media.model"), exports);
24
24
  __exportStar(require("./models/application-store-entry.model"), exports);
25
+ __exportStar(require("./models/application-hourly-metrics.model"), exports);
26
+ __exportStar(require("./models/application-lifetime-metrics.model"), exports);
25
27
  __exportStar(require("./api"), exports);
26
28
  __exportStar(require("./dto"), exports);
27
29
  __exportStar(require("./constants"), exports);
@@ -11,5 +11,6 @@ export interface IApplicationFileThumbnail {
11
11
  applicationFileId: string;
12
12
  updatedAt?: Date;
13
13
  createdAt?: Date;
14
+ deletedAt?: Date | null;
14
15
  applicationFile?: IApplicationFile;
15
16
  }
@@ -23,6 +23,7 @@ export interface IApplicationFile {
23
23
  applicationId: string;
24
24
  updatedAt?: Date;
25
25
  createdAt?: Date;
26
+ deletedAt?: Date | null;
26
27
  application?: IApplication;
27
28
  applicationFileThumbnail?: IApplicationFileThumbnail[];
28
29
  }
@@ -0,0 +1,41 @@
1
+ import { FilesByType } from '../api';
2
+ import { IApplication } from './application.model';
3
+ export interface IApplicationHourlyMetrics {
4
+ id: string;
5
+ applicationId: string;
6
+ hour: Date;
7
+ totalFiles: number;
8
+ totalFilesSize: number;
9
+ createdFiles: number;
10
+ createdFilesSize: number;
11
+ deletedFiles: number;
12
+ deletedFilesSize: number;
13
+ totalThumbnails: number;
14
+ totalThumbnailsSize: number;
15
+ createdThumbnails: number;
16
+ createdThumbnailsSize: number;
17
+ deletedThumbnails: number;
18
+ deletedThumbnailsSize: number;
19
+ totalPreSignUrls: number;
20
+ usedPreSignUrls: number;
21
+ uploadPreSignUrls: number;
22
+ downloadPreSignUrls: number;
23
+ writePreSignUrls: number;
24
+ usedUploadPreSignUrls: number;
25
+ usedDownloadPreSignUrls: number;
26
+ usedWritePreSignUrls: number;
27
+ totalWebhooks: number;
28
+ successfulWebhooks: number;
29
+ failedWebhooks: number;
30
+ totalStoreEntries: number;
31
+ filesByMimeType: Record<string, FilesByType>;
32
+ topLargestFiles: {
33
+ id: string;
34
+ name: string;
35
+ size: number;
36
+ mimeType: string;
37
+ }[];
38
+ createdAt?: Date;
39
+ updatedAt?: Date;
40
+ application?: IApplication;
41
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,27 @@
1
+ import { IApplication } from './application.model';
2
+ export interface IApplicationLifetimeMetrics {
3
+ id: string;
4
+ applicationId: string;
5
+ totalFiles: number;
6
+ totalFilesSize: number;
7
+ deletedFiles: number;
8
+ deletedFilesSize: number;
9
+ totalThumbnails: number;
10
+ totalThumbnailsSize: number;
11
+ totalPreSignUrls: number;
12
+ usedPreSignUrls: number;
13
+ uploadPreSignUrls: number;
14
+ downloadPreSignUrls: number;
15
+ writePreSignUrls: number;
16
+ usedUploadPreSignUrls: number;
17
+ usedDownloadPreSignUrls: number;
18
+ usedWritePreSignUrls: number;
19
+ totalWebhooks: number;
20
+ successfulWebhooks: number;
21
+ failedWebhooks: number;
22
+ totalStoreEntries: number;
23
+ lastCalculatedAt: Date;
24
+ createdAt?: Date;
25
+ updatedAt?: Date;
26
+ application?: IApplication;
27
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -10,5 +10,6 @@ export interface IApplicationStoreEntry {
10
10
  countAccess: number;
11
11
  updatedAt?: Date;
12
12
  createdAt?: Date;
13
+ deletedAt?: Date;
13
14
  application?: IApplication;
14
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abyss-project/storage",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "Core package to interact with Abyss-Storage",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",