@onlineapps/conn-orch-registry 5.0.0 → 6.0.1
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 +2 -2
- package/src/registryClient.js +10 -18
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onlineapps/conn-orch-registry",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "conn-orch-registry 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": [
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@onlineapps/logger-contract": "2.0.0",
|
|
40
|
-
"@onlineapps/mq-client-core": "4.0.
|
|
40
|
+
"@onlineapps/mq-client-core": "4.0.1",
|
|
41
41
|
"uuid": "^9.0.1"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
package/src/registryClient.js
CHANGED
|
@@ -36,9 +36,10 @@ const DEFAULTS = require('./defaults');
|
|
|
36
36
|
const { assertLogger } = require('@onlineapps/logger-contract');
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
|
-
* Keys `register()` REFUSES, with the reason the caller needs to act on
|
|
39
|
+
* Keys `register()` REFUSES, with the reason the caller needs to act on
|
|
40
|
+
* (d.562, extended by d.592).
|
|
40
41
|
*
|
|
41
|
-
*
|
|
42
|
+
* Each of them used to travel on every registration and nothing ever read them:
|
|
42
43
|
* `api/infra/api_services_registry/src/listeners/registry.listener.js`
|
|
43
44
|
* destructures the `register` message without them, and no other reader exists on
|
|
44
45
|
* the platform (`api/docs/biz/30-operations/registration-wire.md` §2.1).
|
|
@@ -58,7 +59,13 @@ const RETIRED_SERVICE_INFO_KEYS = Object.freeze({
|
|
|
58
59
|
secret: 'the shared secret of that same token API, whose last reader (HTTP POST /validate) was deleted '
|
|
59
60
|
+ '2026-08-22; nothing verifies a token with it, and a broker message is no place for a secret',
|
|
60
61
|
tokenSecret: 'the shared secret of that same token API, whose last reader (HTTP POST /validate) was '
|
|
61
|
-
+ 'deleted 2026-08-22; nothing verifies a token with it, and a broker message is no place for a secret'
|
|
62
|
+
+ 'deleted 2026-08-22; nothing verifies a token with it, and a broker message is no place for a secret',
|
|
63
|
+
deployable: 'the manifest-conformance verdict of a boot-time validation run (owner decision 2026-09-17, '
|
|
64
|
+
+ 'confirmation `api/docs/governance/confirmations/biz-service-manifest.md` 011). A running container is '
|
|
65
|
+
+ 'not a git checkout and carries neither compose nor README, so the verdict it could reach there says '
|
|
66
|
+
+ 'nothing about the repository; deployability is proven per commit by the CI job `validate-uniform` '
|
|
67
|
+
+ '(confirmation 010). The registry never projected the key either — registry.listener.js does not '
|
|
68
|
+
+ 'destructure it, so deployability is read from that CI job and never from a registration message'
|
|
62
69
|
});
|
|
63
70
|
|
|
64
71
|
|
|
@@ -465,9 +472,6 @@ class ServiceRegistryClient extends EventEmitter {
|
|
|
465
472
|
* @param {Array} serviceInfo.endpoints - API endpoints provided by the service
|
|
466
473
|
* @param {Object} serviceInfo.metadata - Additional service metadata
|
|
467
474
|
* @param {string} serviceInfo.health - Health check endpoint
|
|
468
|
-
* @param {(boolean|null)} [serviceInfo.deployable] - Manifest-conformance verdict of the
|
|
469
|
-
* caller's last validation run: `true`, `false`, or `null` when the run never measured
|
|
470
|
-
* it. Emitted only when the caller states one; see the `deployable` block below.
|
|
471
475
|
* @param {number} serviceInfo.timeout - Timeout for registration response (default: 30000ms)
|
|
472
476
|
* @returns {Promise<{success: boolean, message: string, serviceName: string, version: string,
|
|
473
477
|
* registrationId: (string|undefined), validated: boolean, certificate: (Object|null),
|
|
@@ -537,18 +541,6 @@ class ServiceRegistryClient extends EventEmitter {
|
|
|
537
541
|
msg.workspaceScoped = serviceInfo.workspaceScoped;
|
|
538
542
|
}
|
|
539
543
|
|
|
540
|
-
// The manifest-conformance verdict, verbatim from the caller: `true`, `false`,
|
|
541
|
-
// or `null` when validation stopped before step 7 measured it. The registry
|
|
542
|
-
// projects it into `infrastructure:health:<service>` beside `status`
|
|
543
|
-
// (owner confirmation `api/docs/governance/confirmations/biz-service-manifest.md`
|
|
544
|
-
// 001 §4), so `null` is a value this message must be able to carry — hence a
|
|
545
|
-
// presence check and not a truthiness one. A caller that sends no verdict
|
|
546
|
-
// (anything other than ServiceWrapper) puts no key on the wire; nothing is
|
|
547
|
-
// substituted for it.
|
|
548
|
-
if ('deployable' in serviceInfo) {
|
|
549
|
-
msg.deployable = serviceInfo.deployable;
|
|
550
|
-
}
|
|
551
|
-
|
|
552
544
|
// Include validation proof if loaded
|
|
553
545
|
// Structure: { validationProof: "hash", validationData: { ... } }
|
|
554
546
|
// See: @onlineapps/service-validator-core/README.md#validation-proof-structure
|