@alacard-project/shared 1.1.0 → 1.1.2
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.
- package/dist/dto/index.d.ts +1 -0
- package/dist/dto/index.js +1 -0
- package/dist/dto/index.js.map +1 -1
- package/dist/dto/invoice.dto.d.ts +12 -0
- package/dist/dto/invoice.dto.js +62 -0
- package/dist/dto/invoice.dto.js.map +1 -0
- package/dist/enums/auth.enum.d.ts +2 -3
- package/dist/enums/auth.enum.js +2 -3
- package/dist/enums/auth.enum.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/resilience/circuit-breaker.service.d.ts +2 -3
- package/dist/resilience/circuit-breaker.service.js +9 -15
- package/dist/resilience/circuit-breaker.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/{filters/http-exception.filter.js → utils/filters.js} +3 -12
- package/dist/utils/filters.js.map +1 -0
- package/dist/{interceptors/transform.interceptor.d.ts → utils/interceptors.d.ts} +0 -1
- package/dist/{interceptors/transform.interceptor.js → utils/interceptors.js} +3 -3
- package/dist/utils/interceptors.js.map +1 -0
- package/dist/utils/tracing.utils.js +7 -0
- package/dist/utils/tracing.utils.js.map +1 -0
- package/package.json +24 -26
- package/dist/config/base-config.service.d.ts +0 -25
- package/dist/config/base-config.service.js +0 -87
- package/dist/config/base-config.service.js.map +0 -1
- package/dist/constants/logging.constants.d.ts +0 -24
- package/dist/constants/logging.constants.js +0 -28
- package/dist/constants/logging.constants.js.map +0 -1
- package/dist/constants/monitoring.constants.d.ts +0 -51
- package/dist/constants/monitoring.constants.js +0 -55
- package/dist/constants/monitoring.constants.js.map +0 -1
- package/dist/constants/tokens.constants.d.ts +0 -6
- package/dist/constants/tokens.constants.js +0 -10
- package/dist/constants/tokens.constants.js.map +0 -1
- package/dist/filters/http-exception.filter.js.map +0 -1
- package/dist/filters/index.d.ts +0 -1
- package/dist/filters/index.js +0 -18
- package/dist/filters/index.js.map +0 -1
- package/dist/interceptors/http-logging.interceptor.d.ts +0 -10
- package/dist/interceptors/http-logging.interceptor.js +0 -74
- package/dist/interceptors/http-logging.interceptor.js.map +0 -1
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/index.js +0 -19
- package/dist/interceptors/index.js.map +0 -1
- package/dist/interceptors/logging.interceptor.d.ts +0 -6
- package/dist/interceptors/logging.interceptor.js +0 -41
- package/dist/interceptors/logging.interceptor.js.map +0 -1
- package/dist/interceptors/transform.interceptor.js.map +0 -1
- package/dist/observability/index.d.ts +0 -2
- package/dist/observability/index.js +0 -19
- package/dist/observability/index.js.map +0 -1
- package/dist/observability/metrics/metrics.module.d.ts +0 -2
- package/dist/observability/metrics/metrics.module.js +0 -28
- package/dist/observability/metrics/metrics.module.js.map +0 -1
- package/dist/observability/tracing.js +0 -28
- package/dist/observability/tracing.js.map +0 -1
- package/dist/utils/logging-client.d.ts +0 -9
- package/dist/utils/logging-client.js +0 -58
- package/dist/utils/logging-client.js.map +0 -1
- package/dist/utils/prometheus.utils.d.ts +0 -9
- package/dist/utils/prometheus.utils.js +0 -66
- package/dist/utils/prometheus.utils.js.map +0 -1
- package/proto/auth.proto +0 -123
- package/proto/card.proto +0 -43
- package/proto/client.proto +0 -45
- package/proto/config.proto +0 -39
- package/proto/dbf.proto +0 -183
- package/proto/logging.proto +0 -143
- package/proto/partner.proto +0 -18
- package/proto/terminal.proto +0 -18
- package/proto/transaction.proto +0 -45
- package/proto/user.proto +0 -122
- package/src/constants/auth-config.constants.ts +0 -16
- package/src/constants/auth.constants.ts +0 -50
- package/src/constants/common.constants.ts +0 -16
- package/src/constants/env.constants.ts +0 -49
- package/src/constants/error-messages.ts +0 -10
- package/src/constants/grpc.constants.ts +0 -43
- package/src/constants/http.constants.ts +0 -11
- package/src/constants/index.ts +0 -11
- package/src/constants/logging-messages.constants.ts +0 -60
- package/src/constants/microservices.constants.ts +0 -62
- package/src/constants/queue.constants.ts +0 -8
- package/src/constants/routes.constants.ts +0 -21
- package/src/contracts/auth.contract.ts +0 -146
- package/src/contracts/config.contract.ts +0 -14
- package/src/contracts/index.ts +0 -14
- package/src/contracts/logging.contract.ts +0 -115
- package/src/contracts/token.contract.ts +0 -47
- package/src/decorators/index.ts +0 -3
- package/src/decorators/permissions.decorator.ts +0 -5
- package/src/decorators/roles.decorator.ts +0 -5
- package/src/decorators/scopes.decorator.ts +0 -4
- package/src/dto/account.dto.ts +0 -28
- package/src/dto/auth.dto.ts +0 -233
- package/src/dto/card.dto.ts +0 -64
- package/src/dto/client.dto.ts +0 -137
- package/src/dto/index.ts +0 -8
- package/src/dto/logging.dto.ts +0 -101
- package/src/dto/partner.dto.ts +0 -18
- package/src/dto/transaction.dto.ts +0 -52
- package/src/dto/user.dto.ts +0 -28
- package/src/enums/auth.enum.ts +0 -13
- package/src/enums/env.enum.ts +0 -7
- package/src/enums/error.enum.ts +0 -28
- package/src/enums/events.enum.ts +0 -22
- package/src/enums/health.enum.ts +0 -7
- package/src/enums/iam.enum.ts +0 -28
- package/src/enums/index.ts +0 -10
- package/src/enums/logging.enum.ts +0 -7
- package/src/enums/notification.enum.ts +0 -5
- package/src/enums/permission.enum.ts +0 -31
- package/src/enums/user.enum.ts +0 -27
- package/src/errors/app.error.ts +0 -33
- package/src/errors/error-map.ts +0 -105
- package/src/filters/http-exception.filter.ts +0 -49
- package/src/filters/index.ts +0 -2
- package/src/index.ts +0 -17
- package/src/interceptors/index.ts +0 -3
- package/src/interceptors/logging.interceptor.ts +0 -37
- package/src/interceptors/transform.interceptor.ts +0 -21
- package/src/observability/index.ts +0 -3
- package/src/observability/metrics/metrics.module.ts +0 -16
- package/src/observability/tracing.ts +0 -33
- package/src/resilience/circuit-breaker.service.ts +0 -46
- package/src/resilience/resilience.module.ts +0 -9
- package/src/types/auth.types.ts +0 -38
- package/src/types/common.types.ts +0 -18
- package/src/types/config.types.ts +0 -32
- package/src/types/iam.types.ts +0 -78
- package/src/types/index.ts +0 -6
- package/src/types/monitoring.types.ts +0 -77
- package/src/types/user.types.ts +0 -11
- package/src/utils/app.utils.ts +0 -52
- package/src/utils/health.utils.ts +0 -24
- package/src/utils/proto-path.ts +0 -21
- package/src/utils/user.utils.ts +0 -3
- package/tsconfig.json +0 -28
- /package/dist/{filters/http-exception.filter.d.ts → utils/filters.d.ts} +0 -0
- /package/dist/{observability/tracing.d.ts → utils/tracing.utils.d.ts} +0 -0
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.MetricsModule = void 0;
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const nestjs_prometheus_1 = require("@willsoto/nestjs-prometheus");
|
|
12
|
-
let MetricsModule = class MetricsModule {
|
|
13
|
-
};
|
|
14
|
-
exports.MetricsModule = MetricsModule;
|
|
15
|
-
exports.MetricsModule = MetricsModule = __decorate([
|
|
16
|
-
(0, common_1.Module)({
|
|
17
|
-
imports: [
|
|
18
|
-
nestjs_prometheus_1.PrometheusModule.register({
|
|
19
|
-
path: '/metrics',
|
|
20
|
-
defaultMetrics: {
|
|
21
|
-
enabled: true,
|
|
22
|
-
},
|
|
23
|
-
}),
|
|
24
|
-
],
|
|
25
|
-
exports: [nestjs_prometheus_1.PrometheusModule],
|
|
26
|
-
})
|
|
27
|
-
], MetricsModule);
|
|
28
|
-
//# sourceMappingURL=metrics.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.module.js","sourceRoot":"","sources":["../../../src/observability/metrics/metrics.module.ts"],"names":[],"mappings":";;;;;;;;;AACA,2CAAwC;AACxC,mEAA+D;AAaxD,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAI,CAAA;AAAjB,sCAAa;wBAAb,aAAa;IAXzB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE;YACL,oCAAgB,CAAC,QAAQ,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,cAAc,EAAE;oBACZ,OAAO,EAAE,IAAI;iBAChB;aACJ,CAAC;SACL;QACD,OAAO,EAAE,CAAC,oCAAgB,CAAC;KAC9B,CAAC;GACW,aAAa,CAAI"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.initTracing = initTracing;
|
|
4
|
-
const sdk_node_1 = require("@opentelemetry/sdk-node");
|
|
5
|
-
const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
|
|
6
|
-
const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node");
|
|
7
|
-
const common_1 = require("@nestjs/common");
|
|
8
|
-
const logger = new common_1.Logger('Tracing');
|
|
9
|
-
function initTracing(serviceName) {
|
|
10
|
-
const otelExporterOtlpEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'http://jaeger:4318/v1/traces';
|
|
11
|
-
const traceExporter = new exporter_trace_otlp_http_1.OTLPTraceExporter({
|
|
12
|
-
url: otelExporterOtlpEndpoint,
|
|
13
|
-
});
|
|
14
|
-
process.env.OTEL_SERVICE_NAME = serviceName;
|
|
15
|
-
const sdk = new sdk_node_1.NodeSDK({
|
|
16
|
-
traceExporter,
|
|
17
|
-
instrumentations: [(0, auto_instrumentations_node_1.getNodeAutoInstrumentations)()],
|
|
18
|
-
});
|
|
19
|
-
sdk.start();
|
|
20
|
-
logger.log(`Initialized tracing for ${serviceName} sending to ${otelExporterOtlpEndpoint}`);
|
|
21
|
-
process.on('SIGTERM', () => {
|
|
22
|
-
sdk.shutdown()
|
|
23
|
-
.then(() => console.log('Tracing terminated'))
|
|
24
|
-
.catch((error) => console.log('Error terminating tracing', error))
|
|
25
|
-
.finally(() => process.exit(0));
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=tracing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/observability/tracing.ts"],"names":[],"mappings":";;AAOA,kCAyBC;AAhCD,sDAAkD;AAClD,sFAA4E;AAC5E,0FAAwF;AACxF,2CAAwC;AAExC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,CAAC;AAErC,SAAgB,WAAW,CAAC,WAAmB;IAC3C,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,8BAA8B,CAAC;IAE3G,MAAM,aAAa,GAAG,IAAI,4CAAiB,CAAC;QACxC,GAAG,EAAE,wBAAwB;KAChC,CAAC,CAAC;IAGH,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,WAAW,CAAC;IAE5C,MAAM,GAAG,GAAG,IAAI,kBAAO,CAAC;QACpB,aAAa;QACb,gBAAgB,EAAE,CAAC,IAAA,wDAA2B,GAAE,CAAC;KACpD,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,CAAC,GAAG,CAAC,2BAA2B,WAAW,eAAe,wBAAwB,EAAE,CAAC,CAAC;IAE5F,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,GAAG,CAAC,QAAQ,EAAE;aACT,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;aAC7C,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;aACjE,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ClientKafka } from '@nestjs/microservices';
|
|
2
|
-
export declare class LoggingClient {
|
|
3
|
-
private readonly client;
|
|
4
|
-
private readonly logger;
|
|
5
|
-
constructor(client: ClientKafka);
|
|
6
|
-
logInfo(message: string, metadata?: any): void;
|
|
7
|
-
logWarn(message: string, metadata?: any): void;
|
|
8
|
-
logError(message: string, error?: any, metadata?: any): void;
|
|
9
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
var LoggingClient_1;
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.LoggingClient = void 0;
|
|
17
|
-
const common_1 = require("@nestjs/common");
|
|
18
|
-
const microservices_1 = require("@nestjs/microservices");
|
|
19
|
-
let LoggingClient = LoggingClient_1 = class LoggingClient {
|
|
20
|
-
constructor(client) {
|
|
21
|
-
this.client = client;
|
|
22
|
-
this.logger = new common_1.Logger(LoggingClient_1.name);
|
|
23
|
-
}
|
|
24
|
-
logInfo(message, metadata) {
|
|
25
|
-
this.logger.log(`${message} ${metadata ? JSON.stringify(metadata) : ''}`);
|
|
26
|
-
this.client.emit('log_event', {
|
|
27
|
-
level: 'info',
|
|
28
|
-
message,
|
|
29
|
-
metadata: JSON.stringify(metadata),
|
|
30
|
-
timestamp: new Date().toISOString(),
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
logWarn(message, metadata) {
|
|
34
|
-
this.logger.warn(`${message} ${metadata ? JSON.stringify(metadata) : ''}`);
|
|
35
|
-
this.client.emit('log_event', {
|
|
36
|
-
level: 'warn',
|
|
37
|
-
message,
|
|
38
|
-
metadata: JSON.stringify(metadata),
|
|
39
|
-
timestamp: new Date().toISOString(),
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
logError(message, error, metadata) {
|
|
43
|
-
this.logger.error(`${message} ${error?.message || ''}`, error?.stack);
|
|
44
|
-
this.client.emit('log_event', {
|
|
45
|
-
level: 'error',
|
|
46
|
-
message,
|
|
47
|
-
metadata: JSON.stringify({ ...metadata, error: error?.message, stack: error?.stack }),
|
|
48
|
-
timestamp: new Date().toISOString(),
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
exports.LoggingClient = LoggingClient;
|
|
53
|
-
exports.LoggingClient = LoggingClient = LoggingClient_1 = __decorate([
|
|
54
|
-
(0, common_1.Injectable)(),
|
|
55
|
-
__param(0, (0, common_1.Inject)('LOGGING_SERVICE')),
|
|
56
|
-
__metadata("design:paramtypes", [microservices_1.ClientKafka])
|
|
57
|
-
], LoggingClient);
|
|
58
|
-
//# sourceMappingURL=logging-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logging-client.js","sourceRoot":"","sources":["../../src/utils/logging-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA4D;AAC5D,yDAAoD;AAG7C,IAAM,aAAa,qBAAnB,MAAM,aAAa;IAGtB,YAC+B,MAAoC;QAAnB,WAAM,GAAN,MAAM,CAAa;QAHlD,WAAM,GAAG,IAAI,eAAM,CAAC,eAAa,CAAC,IAAI,CAAC,CAAC;IAIrD,CAAC;IAEL,OAAO,CAAC,OAAe,EAAE,QAAc;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;YAC1B,KAAK,EAAE,MAAM;YACb,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,QAAc;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;YAC1B,KAAK,EAAE,MAAM;YACb,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,OAAe,EAAE,KAAW,EAAE,QAAc;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,OAAO,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;YAC1B,KAAK,EAAE,OAAO;YACd,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACrF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AApCY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;IAKJ,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;qCAA0B,2BAAW;GAJ1D,aAAa,CAoCzB"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { PrometheusMetric, MetricValue } from '../types/monitoring.types';
|
|
2
|
-
export declare function formatPrometheusMetric(metric: PrometheusMetric, value: MetricValue): string;
|
|
3
|
-
export declare function createCounter(name: string, help: string, labelNames?: string[]): PrometheusMetric;
|
|
4
|
-
export declare function createGauge(name: string, help: string, labelNames?: string[]): PrometheusMetric;
|
|
5
|
-
export declare function createHistogram(name: string, help: string, labelNames?: string[]): PrometheusMetric;
|
|
6
|
-
export declare function calculatePercentile(values: number[], percentile: number): number;
|
|
7
|
-
export declare function formatDuration(milliseconds: number): number;
|
|
8
|
-
export declare function bytesToMegabytes(bytes: number): number;
|
|
9
|
-
export declare function calculateErrorRate(errorCount: number, totalCount: number): number;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatPrometheusMetric = formatPrometheusMetric;
|
|
4
|
-
exports.createCounter = createCounter;
|
|
5
|
-
exports.createGauge = createGauge;
|
|
6
|
-
exports.createHistogram = createHistogram;
|
|
7
|
-
exports.calculatePercentile = calculatePercentile;
|
|
8
|
-
exports.formatDuration = formatDuration;
|
|
9
|
-
exports.bytesToMegabytes = bytesToMegabytes;
|
|
10
|
-
exports.calculateErrorRate = calculateErrorRate;
|
|
11
|
-
function formatPrometheusMetric(metric, value) {
|
|
12
|
-
const labels = value.labels
|
|
13
|
-
? Object.entries(value.labels)
|
|
14
|
-
.map(([key, val]) => `${key}="${val}"`)
|
|
15
|
-
.join(',')
|
|
16
|
-
: '';
|
|
17
|
-
const metricLine = labels
|
|
18
|
-
? `${metric.name}{${labels}} ${value.value}`
|
|
19
|
-
: `${metric.name} ${value.value}`;
|
|
20
|
-
return value.timestamp
|
|
21
|
-
? `${metricLine} ${value.timestamp}`
|
|
22
|
-
: metricLine;
|
|
23
|
-
}
|
|
24
|
-
function createCounter(name, help, labelNames) {
|
|
25
|
-
return {
|
|
26
|
-
name,
|
|
27
|
-
help,
|
|
28
|
-
type: 'counter',
|
|
29
|
-
labelNames,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function createGauge(name, help, labelNames) {
|
|
33
|
-
return {
|
|
34
|
-
name,
|
|
35
|
-
help,
|
|
36
|
-
type: 'gauge',
|
|
37
|
-
labelNames,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
function createHistogram(name, help, labelNames) {
|
|
41
|
-
return {
|
|
42
|
-
name,
|
|
43
|
-
help,
|
|
44
|
-
type: 'histogram',
|
|
45
|
-
labelNames,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
function calculatePercentile(values, percentile) {
|
|
49
|
-
if (values.length === 0)
|
|
50
|
-
return 0;
|
|
51
|
-
const sorted = [...values].sort((a, b) => a - b);
|
|
52
|
-
const index = Math.ceil((percentile / 100) * sorted.length) - 1;
|
|
53
|
-
return sorted[index];
|
|
54
|
-
}
|
|
55
|
-
function formatDuration(milliseconds) {
|
|
56
|
-
return milliseconds / 1000;
|
|
57
|
-
}
|
|
58
|
-
function bytesToMegabytes(bytes) {
|
|
59
|
-
return bytes / (1024 * 1024);
|
|
60
|
-
}
|
|
61
|
-
function calculateErrorRate(errorCount, totalCount) {
|
|
62
|
-
if (totalCount === 0)
|
|
63
|
-
return 0;
|
|
64
|
-
return (errorCount / totalCount) * 100;
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=prometheus.utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prometheus.utils.js","sourceRoot":"","sources":["../../src/utils/prometheus.utils.ts"],"names":[],"mappings":";;AASA,wDAiBC;AAKD,sCAWC;AAKD,kCAWC;AAKD,0CAWC;AAKD,kDASC;AAKD,wCAEC;AAKD,4CAEC;AAKD,gDAMC;AAxGD,SAAgB,sBAAsB,CAClC,MAAwB,EACxB,KAAkB;IAElB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;QACvB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;aACzB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;aACtC,IAAI,CAAC,GAAG,CAAC;QACd,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,UAAU,GAAG,MAAM;QACrB,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE;QAC5C,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAEtC,OAAO,KAAK,CAAC,SAAS;QAClB,CAAC,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,SAAS,EAAE;QACpC,CAAC,CAAC,UAAU,CAAC;AACrB,CAAC;AAKD,SAAgB,aAAa,CACzB,IAAY,EACZ,IAAY,EACZ,UAAqB;IAErB,OAAO;QACH,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,SAAS;QACf,UAAU;KACb,CAAC;AACN,CAAC;AAKD,SAAgB,WAAW,CACvB,IAAY,EACZ,IAAY,EACZ,UAAqB;IAErB,OAAO;QACH,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,OAAO;QACb,UAAU;KACb,CAAC;AACN,CAAC;AAKD,SAAgB,eAAe,CAC3B,IAAY,EACZ,IAAY,EACZ,UAAqB;IAErB,OAAO;QACH,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,WAAW;QACjB,UAAU;KACb,CAAC;AACN,CAAC;AAKD,SAAgB,mBAAmB,CAC/B,MAAgB,EAChB,UAAkB;IAElB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAElC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAKD,SAAgB,cAAc,CAAC,YAAoB;IAC/C,OAAO,YAAY,GAAG,IAAI,CAAC;AAC/B,CAAC;AAKD,SAAgB,gBAAgB,CAAC,KAAa;IAC1C,OAAO,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACjC,CAAC;AAKD,SAAgB,kBAAkB,CAC9B,UAAkB,EAClB,UAAkB;IAElB,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC;AAC3C,CAAC"}
|
package/proto/auth.proto
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
package auth;
|
|
4
|
-
|
|
5
|
-
service AuthService {
|
|
6
|
-
rpc CreateIdentity (CreateIdentityRequest) returns (TokenResponse);
|
|
7
|
-
rpc Login (LoginRequest) returns (TokenResponse);
|
|
8
|
-
rpc Validate (ValidateRequest) returns (ValidateResponse);
|
|
9
|
-
rpc GetUserById (GetUserByIdRequest) returns (UserResponse);
|
|
10
|
-
rpc GetUserByEmail (GetUserByEmailRequest) returns (UserResponse);
|
|
11
|
-
rpc ValidateToken (ValidateTokenRequest) returns (ValidateTokenResponse);
|
|
12
|
-
rpc RefreshToken (RefreshTokenRequest) returns (TokenResponse);
|
|
13
|
-
rpc RevokeToken (RevokeTokenRequest) returns (RevokeTokenResponse);
|
|
14
|
-
rpc GenerateTokens (GenerateTokensRequest) returns (TokenResponse);
|
|
15
|
-
rpc CheckPermission (CheckPermissionRequest) returns (CheckPermissionResponse);
|
|
16
|
-
rpc GetUserPermissions (GetUserPermissionsRequest) returns (GetUserPermissionsResponse);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
message GenerateTokensRequest {
|
|
20
|
-
string userId = 1;
|
|
21
|
-
string email = 2;
|
|
22
|
-
string role = 3;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
message CreateIdentityRequest {
|
|
26
|
-
string email = 1;
|
|
27
|
-
string password = 2;
|
|
28
|
-
string name = 3;
|
|
29
|
-
string userId = 4;
|
|
30
|
-
string role = 5;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
message LoginRequest {
|
|
34
|
-
string email = 1;
|
|
35
|
-
string password = 2;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
message TokenResponse {
|
|
39
|
-
string accessToken = 1;
|
|
40
|
-
string refreshToken = 2;
|
|
41
|
-
int32 expiresIn = 3;
|
|
42
|
-
string userId = 4;
|
|
43
|
-
string role = 5;
|
|
44
|
-
string email = 6;
|
|
45
|
-
string status = 7;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
message ValidateRequest {
|
|
49
|
-
string token = 1;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
message ValidateResponse {
|
|
53
|
-
bool valid = 1;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
message GetUserByIdRequest {
|
|
57
|
-
string userId = 1;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
message GetUserByEmailRequest {
|
|
61
|
-
string email = 1;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
message UserResponse {
|
|
65
|
-
string id = 1;
|
|
66
|
-
string email = 2;
|
|
67
|
-
string name = 3;
|
|
68
|
-
string role = 4;
|
|
69
|
-
bool isActive = 5;
|
|
70
|
-
bool emailVerified = 6;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
message ValidateTokenRequest {
|
|
74
|
-
string token = 1;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
message ValidateTokenResponse {
|
|
78
|
-
bool valid = 1;
|
|
79
|
-
string userId = 2;
|
|
80
|
-
string email = 3;
|
|
81
|
-
string role = 4;
|
|
82
|
-
string status = 5;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
message RefreshTokenRequest {
|
|
86
|
-
string refreshToken = 1;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
message RevokeTokenRequest {
|
|
90
|
-
string refreshToken = 1;
|
|
91
|
-
string userId = 2;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
message RevokeTokenResponse {
|
|
95
|
-
bool success = 1;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
message CheckPermissionRequest {
|
|
99
|
-
string userId = 1;
|
|
100
|
-
string resource = 2;
|
|
101
|
-
string action = 3;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
message CheckPermissionResponse {
|
|
105
|
-
bool hasPermission = 1;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
message GetUserPermissionsRequest {
|
|
109
|
-
string userId = 1;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
message Permission {
|
|
113
|
-
string id = 1;
|
|
114
|
-
string name = 2;
|
|
115
|
-
string resource = 3;
|
|
116
|
-
string action = 4;
|
|
117
|
-
string description = 5;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
message GetUserPermissionsResponse {
|
|
121
|
-
repeated Permission permissions = 1;
|
|
122
|
-
}
|
|
123
|
-
|
package/proto/card.proto
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
package card;
|
|
4
|
-
|
|
5
|
-
service CardService {
|
|
6
|
-
rpc Create (CreateCardDto) returns (Card) {}
|
|
7
|
-
rpc FindAll (FindCardsDto) returns (CardsResponse) {}
|
|
8
|
-
rpc FindOne (FindOneCardDto) returns (Card) {}
|
|
9
|
-
rpc Update (UpdateCardDto) returns (Card) {}
|
|
10
|
-
rpc Remove (FindOneCardDto) returns (Card) {}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
message Card {
|
|
14
|
-
string id = 1;
|
|
15
|
-
string cardNumber = 2;
|
|
16
|
-
string status = 3;
|
|
17
|
-
string clientId = 4;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
message CreateCardDto {
|
|
21
|
-
string cardNumber = 1;
|
|
22
|
-
string clientId = 2;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
message UpdateCardDto {
|
|
26
|
-
string id = 1;
|
|
27
|
-
string status = 2;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
message FindOneCardDto {
|
|
31
|
-
string id = 1;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
message FindCardsDto {
|
|
35
|
-
string clientId = 1;
|
|
36
|
-
int32 skip = 2;
|
|
37
|
-
int32 take = 3;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
message CardsResponse {
|
|
41
|
-
repeated Card cards = 1;
|
|
42
|
-
int32 total = 2;
|
|
43
|
-
}
|
package/proto/client.proto
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
package client;
|
|
4
|
-
|
|
5
|
-
service ClientService {
|
|
6
|
-
rpc Create (CreateClientDto) returns (Client) {}
|
|
7
|
-
rpc FindAll (FindClientsDto) returns (ClientsResponse) {}
|
|
8
|
-
rpc FindOne (FindOneClientDto) returns (Client) {}
|
|
9
|
-
rpc Update (UpdateClientDto) returns (Client) {}
|
|
10
|
-
rpc Remove (FindOneClientDto) returns (Client) {}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
message Client {
|
|
14
|
-
string id = 1;
|
|
15
|
-
string clientNumber = 2;
|
|
16
|
-
string fullName = 3;
|
|
17
|
-
string createdAt = 4;
|
|
18
|
-
string updatedAt = 5;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
message CreateClientDto {
|
|
22
|
-
string clientNumber = 1;
|
|
23
|
-
string fullName = 2;
|
|
24
|
-
string clientType = 3;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
message UpdateClientDto {
|
|
28
|
-
string id = 1;
|
|
29
|
-
string fullName = 2;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
message FindOneClientDto {
|
|
33
|
-
string id = 1;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
message FindClientsDto {
|
|
37
|
-
string search = 1;
|
|
38
|
-
int32 skip = 2;
|
|
39
|
-
int32 take = 3;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
message ClientsResponse {
|
|
43
|
-
repeated Client clients = 1;
|
|
44
|
-
int32 total = 2;
|
|
45
|
-
}
|
package/proto/config.proto
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
package config;
|
|
4
|
-
|
|
5
|
-
service ConfigService {
|
|
6
|
-
rpc GetConfig (GetConfigRequest) returns (ConfigResponse);
|
|
7
|
-
rpc SetConfig (SetConfigRequest) returns (ConfigResponse);
|
|
8
|
-
rpc ListConfigs (ListConfigsRequest) returns (ListConfigsResponse);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
message GetConfigRequest {
|
|
12
|
-
string serviceName = 1;
|
|
13
|
-
string environment = 2;
|
|
14
|
-
string version = 3;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
message ConfigResponse {
|
|
18
|
-
map<string, string> values = 1;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
message SetConfigRequest {
|
|
22
|
-
string serviceName = 1;
|
|
23
|
-
string environment = 2;
|
|
24
|
-
string key = 3;
|
|
25
|
-
string value = 4;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
message ListConfigsRequest {
|
|
29
|
-
string environment = 1;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
message ServiceConfig {
|
|
33
|
-
string serviceName = 1;
|
|
34
|
-
map<string, string> values = 2;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
message ListConfigsResponse {
|
|
38
|
-
repeated ServiceConfig configs = 1;
|
|
39
|
-
}
|
package/proto/dbf.proto
DELETED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
package dbf;
|
|
4
|
-
|
|
5
|
-
// ==================== Service Definition ====================
|
|
6
|
-
|
|
7
|
-
service DbfService {
|
|
8
|
-
// Read DBF file with optional filtering
|
|
9
|
-
rpc ReadDbf(ReadDbfRequest) returns (ReadDbfResponse);
|
|
10
|
-
|
|
11
|
-
// Update a single field in specific record(s)
|
|
12
|
-
rpc UpdateField(UpdateFieldRequest) returns (UpdateFieldResponse);
|
|
13
|
-
|
|
14
|
-
// Batch update multiple records
|
|
15
|
-
rpc BatchUpdate(BatchUpdateRequest) returns (BatchUpdateResponse);
|
|
16
|
-
|
|
17
|
-
// Get DBF file schema/structure
|
|
18
|
-
rpc GetSchema(GetSchemaRequest) returns (GetSchemaResponse);
|
|
19
|
-
|
|
20
|
-
// List available DBF files
|
|
21
|
-
rpc ListFiles(ListFilesRequest) returns (ListFilesResponse);
|
|
22
|
-
|
|
23
|
-
// Pack DBF - remove deleted records (PACK in FoxPro)
|
|
24
|
-
rpc Pack(PackRequest) returns (PackResponse);
|
|
25
|
-
|
|
26
|
-
// Reindex DBF - rebuild indexes (REINDEX in FoxPro)
|
|
27
|
-
rpc Reindex(ReindexRequest) returns (ReindexResponse);
|
|
28
|
-
|
|
29
|
-
// Mark record for deletion (DELETE in FoxPro)
|
|
30
|
-
rpc MarkForDeletion(MarkForDeletionRequest) returns (MarkForDeletionResponse);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// ==================== Read Operations ====================
|
|
34
|
-
|
|
35
|
-
message ReadDbfRequest {
|
|
36
|
-
string filename = 1;
|
|
37
|
-
optional string filter = 2; // JSON filter conditions
|
|
38
|
-
optional int32 limit = 3;
|
|
39
|
-
optional int32 offset = 4;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
message ReadDbfResponse {
|
|
43
|
-
bool success = 1;
|
|
44
|
-
repeated Record records = 2;
|
|
45
|
-
int32 total = 3;
|
|
46
|
-
optional string error = 4;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
message Record {
|
|
50
|
-
map<string, string> fields = 1; // Field name -> value
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// ==================== Update Operations ====================
|
|
54
|
-
|
|
55
|
-
message UpdateFieldRequest {
|
|
56
|
-
string filename = 1;
|
|
57
|
-
string field_name = 2;
|
|
58
|
-
string new_value = 3;
|
|
59
|
-
optional string filter = 4; // JSON filter to identify records
|
|
60
|
-
optional int32 record_index = 5; // Direct record index
|
|
61
|
-
string user_id = 6; // For audit logging
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
message UpdateFieldResponse {
|
|
65
|
-
bool success = 1;
|
|
66
|
-
int32 records_updated = 2;
|
|
67
|
-
optional string backup_path = 3;
|
|
68
|
-
optional string error = 4;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
message BatchUpdateRequest {
|
|
72
|
-
string filename = 1;
|
|
73
|
-
repeated FieldUpdate updates = 2;
|
|
74
|
-
string user_id = 3;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
message FieldUpdate {
|
|
78
|
-
int32 record_index = 1;
|
|
79
|
-
string field_name = 2;
|
|
80
|
-
string new_value = 3;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
message BatchUpdateResponse {
|
|
84
|
-
bool success = 1;
|
|
85
|
-
int32 records_updated = 2;
|
|
86
|
-
int32 records_failed = 3;
|
|
87
|
-
repeated FailedUpdate failures = 4;
|
|
88
|
-
optional string backup_path = 5;
|
|
89
|
-
optional string error = 6;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
message FailedUpdate {
|
|
93
|
-
int32 record_index = 1;
|
|
94
|
-
string error = 2;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// ==================== Schema Operations ====================
|
|
98
|
-
|
|
99
|
-
message GetSchemaRequest {
|
|
100
|
-
string filename = 1;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
message GetSchemaResponse {
|
|
104
|
-
bool success = 1;
|
|
105
|
-
repeated FieldDefinition fields = 2;
|
|
106
|
-
int32 record_count = 3;
|
|
107
|
-
optional string error = 4;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
message FieldDefinition {
|
|
111
|
-
string name = 1;
|
|
112
|
-
string type = 2; // C, N, L, D, etc.
|
|
113
|
-
int32 length = 3;
|
|
114
|
-
int32 decimal_count = 4;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// ==================== File Listing ====================
|
|
118
|
-
|
|
119
|
-
message ListFilesRequest {
|
|
120
|
-
optional string directory = 1;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
message ListFilesResponse {
|
|
124
|
-
bool success = 1;
|
|
125
|
-
repeated DbfFile files = 2;
|
|
126
|
-
optional string error = 3;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
message DbfFile {
|
|
130
|
-
string filename = 1;
|
|
131
|
-
string path = 2;
|
|
132
|
-
int64 size_bytes = 3;
|
|
133
|
-
int32 record_count = 4;
|
|
134
|
-
string last_modified = 5; // ISO string
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// ==================== Pack Operation ====================
|
|
138
|
-
|
|
139
|
-
message PackRequest {
|
|
140
|
-
string filename = 1;
|
|
141
|
-
string user_id = 2;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
message PackResponse {
|
|
145
|
-
bool success = 1;
|
|
146
|
-
int32 records_before = 2;
|
|
147
|
-
int32 records_after = 3;
|
|
148
|
-
int32 removed_count = 4;
|
|
149
|
-
optional string backup_path = 5;
|
|
150
|
-
optional string error = 6;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// ==================== Reindex Operation ====================
|
|
154
|
-
|
|
155
|
-
message ReindexRequest {
|
|
156
|
-
string filename = 1;
|
|
157
|
-
optional string index_field = 2; // Specific field to reindex
|
|
158
|
-
optional string user_id = 3;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
message ReindexResponse {
|
|
162
|
-
bool success = 1;
|
|
163
|
-
string message = 2;
|
|
164
|
-
repeated string index_files = 3; // .CDX, .IDX files found
|
|
165
|
-
optional string recommendation = 4;
|
|
166
|
-
optional string error = 5;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// ==================== Mark for Deletion ====================
|
|
170
|
-
|
|
171
|
-
message MarkForDeletionRequest {
|
|
172
|
-
string filename = 1;
|
|
173
|
-
int32 record_index = 2;
|
|
174
|
-
string user_id = 3;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
message MarkForDeletionResponse {
|
|
178
|
-
bool success = 1;
|
|
179
|
-
int32 record_index = 2;
|
|
180
|
-
bool marked_for_deletion = 3;
|
|
181
|
-
optional string backup_path = 4;
|
|
182
|
-
optional string error = 5;
|
|
183
|
-
}
|