@onlineapps/conn-orch-registry 1.1.6 → 1.1.8
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/package.json +1 -1
- package/src/registryClient.js +70 -15
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onlineapps/conn-orch-registry",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Connector-registry-client provides the core communication mechanism for microservices in this environment. It enables them to interact with a services_registry to receive and fulfill tasks by submitting heartbeats or their API descriptions.",
|
|
6
6
|
"keywords": [
|
package/src/registryClient.js
CHANGED
|
@@ -66,7 +66,9 @@ class ServiceRegistryClient extends EventEmitter {
|
|
|
66
66
|
await this.queueManager.init();
|
|
67
67
|
|
|
68
68
|
// Load validation proof if exists
|
|
69
|
+
console.error(`[RegistryClient] ${this.serviceName}: === CALLING _loadValidationProof() ===`);
|
|
69
70
|
await this._loadValidationProof();
|
|
71
|
+
console.error(`[RegistryClient] ${this.serviceName}: === FINISHED _loadValidationProof() ===`);
|
|
70
72
|
|
|
71
73
|
// Create service-specific response queue
|
|
72
74
|
this.serviceResponseQueue = `${this.serviceName}.responses`;
|
|
@@ -99,24 +101,74 @@ class ServiceRegistryClient extends EventEmitter {
|
|
|
99
101
|
* @returns {Promise<void>}
|
|
100
102
|
*/
|
|
101
103
|
async _loadValidationProof() {
|
|
104
|
+
const proofPath = path.join(process.cwd(), '.validation-proof.json');
|
|
105
|
+
const debugLogPath = path.join(process.cwd(), '.validation-debug.log');
|
|
106
|
+
|
|
107
|
+
// Write to file for debugging (append mode)
|
|
108
|
+
const log = (msg) => {
|
|
109
|
+
const timestamp = new Date().toISOString();
|
|
110
|
+
const logLine = `${timestamp} [${this.serviceName}] ${msg}\n`;
|
|
111
|
+
fs.appendFileSync(debugLogPath, logLine);
|
|
112
|
+
console.log(`[RegistryClient] ${msg}`);
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
log('=== _loadValidationProof() CALLED ===');
|
|
116
|
+
log(`CWD: ${process.cwd()}`);
|
|
117
|
+
log(`Proof path: ${proofPath}`);
|
|
118
|
+
|
|
102
119
|
try {
|
|
103
|
-
//
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
120
|
+
// Check file existence explicitly
|
|
121
|
+
if (!fs.existsSync(proofPath)) {
|
|
122
|
+
log(`⚠️ Validation proof file NOT FOUND`);
|
|
123
|
+
log(`Service will use Tier 2 validation`);
|
|
124
|
+
this.validationProof = null;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
log(`✓ Proof file exists, reading...`);
|
|
129
|
+
|
|
130
|
+
// Read and parse file
|
|
131
|
+
const fileContent = fs.readFileSync(proofPath, 'utf8');
|
|
132
|
+
log(`✓ File read, size: ${fileContent.length} bytes`);
|
|
133
|
+
|
|
134
|
+
const proofData = JSON.parse(fileContent);
|
|
135
|
+
log(`✓ JSON parsed successfully`);
|
|
136
|
+
|
|
137
|
+
// Validate structure
|
|
138
|
+
if (!proofData.validationProof) {
|
|
139
|
+
log(`❌ ERROR: Missing 'validationProof' field`);
|
|
140
|
+
log(`Available fields: ${Object.keys(proofData).join(', ')}`);
|
|
141
|
+
this.validationProof = null;
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (!proofData.validationData) {
|
|
146
|
+
log(`❌ ERROR: Missing 'validationData' field`);
|
|
147
|
+
log(`Available fields: ${Object.keys(proofData).join(', ')}`);
|
|
148
|
+
this.validationProof = null;
|
|
149
|
+
return;
|
|
116
150
|
}
|
|
151
|
+
|
|
152
|
+
// Store proof
|
|
153
|
+
this.validationProof = {
|
|
154
|
+
hash: proofData.validationProof,
|
|
155
|
+
data: proofData.validationData
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
log(`✅ SUCCESS - Validation proof loaded`);
|
|
159
|
+
log(` Proof hash: ${this.validationProof.hash.substring(0, 32)}...`);
|
|
160
|
+
log(` Validator: ${this.validationProof.data.validator}`);
|
|
161
|
+
log(` Tests passed: ${this.validationProof.data.testsPassed}/${this.validationProof.data.testsRun}`);
|
|
162
|
+
log(` Validated at: ${this.validationProof.data.validatedAt}`);
|
|
163
|
+
|
|
117
164
|
} catch (error) {
|
|
118
165
|
// Non-critical error - service can still register without proof (will trigger Tier 2 validation)
|
|
119
|
-
|
|
166
|
+
log(`❌ EXCEPTION while loading validation proof`);
|
|
167
|
+
log(` Error: ${error.message}`);
|
|
168
|
+
log(` Stack: ${error.stack}`);
|
|
169
|
+
log(` Path attempted: ${proofPath}`);
|
|
170
|
+
log(`Service will use Tier 2 validation`);
|
|
171
|
+
this.validationProof = null;
|
|
120
172
|
}
|
|
121
173
|
}
|
|
122
174
|
|
|
@@ -207,7 +259,10 @@ class ServiceRegistryClient extends EventEmitter {
|
|
|
207
259
|
if (this.validationProof) {
|
|
208
260
|
msg.validationProof = this.validationProof.hash;
|
|
209
261
|
msg.validationData = this.validationProof.data;
|
|
210
|
-
console.log(`[RegistryClient] Including validation proof in registration
|
|
262
|
+
console.log(`[RegistryClient] ${this.serviceName}: ✅ Including validation proof in registration message`);
|
|
263
|
+
console.log(`[RegistryClient] ${this.serviceName}: Proof hash: ${this.validationProof.hash.substring(0, 32)}...`);
|
|
264
|
+
} else {
|
|
265
|
+
console.log(`[RegistryClient] ${this.serviceName}: ⚠️ NO validation proof available - Registry will perform Tier 2 validation`);
|
|
211
266
|
}
|
|
212
267
|
|
|
213
268
|
// Create promise to wait for registration response
|