@toon-protocol/connector 2.5.0 → 2.6.0
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/core/connector-node.d.ts +1 -0
- package/dist/core/connector-node.d.ts.map +1 -1
- package/dist/core/connector-node.js +13 -1
- package/dist/core/connector-node.js.map +1 -1
- package/dist/core/packet-handler.d.ts +3 -0
- package/dist/core/packet-handler.d.ts.map +1 -1
- package/dist/core/packet-handler.js +33 -10
- package/dist/core/packet-handler.js.map +1 -1
- package/dist/http/admin-api-inventory.d.ts +29 -0
- package/dist/http/admin-api-inventory.d.ts.map +1 -0
- package/dist/http/admin-api-inventory.js +462 -0
- package/dist/http/admin-api-inventory.js.map +1 -0
- package/dist/http/admin-api.d.ts +20 -0
- package/dist/http/admin-api.d.ts.map +1 -1
- package/dist/http/admin-api.js +61 -1
- package/dist/http/admin-api.js.map +1 -1
- package/dist/http/admin-server.d.ts +2 -0
- package/dist/http/admin-server.d.ts.map +1 -1
- package/dist/http/admin-server.js +2 -1
- package/dist/http/admin-server.js.map +1 -1
- package/dist/observability/metrics-registry.d.ts +39 -0
- package/dist/observability/metrics-registry.d.ts.map +1 -0
- package/dist/observability/metrics-registry.js +151 -0
- package/dist/observability/metrics-registry.js.map +1 -0
- package/package.json +8 -3
- package/dist/config/aptos-env-validator.d.ts +0 -8
- package/dist/config/aptos-env-validator.d.ts.map +0 -1
- package/dist/config/aptos-env-validator.js +0 -25
- package/dist/config/aptos-env-validator.js.map +0 -1
- package/dist/explorer-ui/assets/EventDetailPanel-CnSaMk3V.js +0 -6
- package/dist/explorer-ui/assets/FilterBar-BEmAzBku.js +0 -26
- package/dist/explorer-ui/assets/chevron-right-BUT9VhYe.js +0 -11
- package/dist/explorer-ui/assets/index-BZ2INVgy.js +0 -360
- package/dist/explorer-ui/assets/index-Cemh6svI.css +0 -1
- package/dist/explorer-ui/index.html +0 -14
- package/dist/explorer-ui/vite.svg +0 -1
- package/dist/security/backends/aws-kms-backend.d.ts +0 -18
- package/dist/security/backends/aws-kms-backend.d.ts.map +0 -1
- package/dist/security/backends/aws-kms-backend.js +0 -130
- package/dist/security/backends/aws-kms-backend.js.map +0 -1
- package/dist/security/backends/azure-kv-backend.d.ts +0 -17
- package/dist/security/backends/azure-kv-backend.d.ts.map +0 -1
- package/dist/security/backends/azure-kv-backend.js +0 -121
- package/dist/security/backends/azure-kv-backend.js.map +0 -1
- package/dist/security/backends/gcp-kms-backend.d.ts +0 -17
- package/dist/security/backends/gcp-kms-backend.d.ts.map +0 -1
- package/dist/security/backends/gcp-kms-backend.js +0 -110
- package/dist/security/backends/gcp-kms-backend.js.map +0 -1
- package/dist/security/backends/hsm-backend.d.ts +0 -18
- package/dist/security/backends/hsm-backend.d.ts.map +0 -1
- package/dist/security/backends/hsm-backend.js +0 -187
- package/dist/security/backends/hsm-backend.js.map +0 -1
- package/dist/settlement/aptos-channel-sdk.d.ts +0 -66
- package/dist/settlement/aptos-channel-sdk.d.ts.map +0 -1
- package/dist/settlement/aptos-channel-sdk.js +0 -274
- package/dist/settlement/aptos-channel-sdk.js.map +0 -1
- package/dist/settlement/aptos-claim-signer.d.ts +0 -57
- package/dist/settlement/aptos-claim-signer.d.ts.map +0 -1
- package/dist/settlement/aptos-claim-signer.js +0 -200
- package/dist/settlement/aptos-claim-signer.js.map +0 -1
- package/dist/settlement/aptos-client.d.ts +0 -99
- package/dist/settlement/aptos-client.d.ts.map +0 -1
- package/dist/settlement/aptos-client.js +0 -474
- package/dist/settlement/aptos-client.js.map +0 -1
- package/dist/settlement/xrp-channel-lifecycle.d.ts +0 -41
- package/dist/settlement/xrp-channel-lifecycle.d.ts.map +0 -1
- package/dist/settlement/xrp-channel-lifecycle.js +0 -142
- package/dist/settlement/xrp-channel-lifecycle.js.map +0 -1
- package/dist/settlement/xrp-channel-manager.d.ts +0 -59
- package/dist/settlement/xrp-channel-manager.d.ts.map +0 -1
- package/dist/settlement/xrp-channel-manager.js +0 -160
- package/dist/settlement/xrp-channel-manager.js.map +0 -1
- package/dist/settlement/xrp-channel-sdk.d.ts +0 -30
- package/dist/settlement/xrp-channel-sdk.d.ts.map +0 -1
- package/dist/settlement/xrp-channel-sdk.js +0 -164
- package/dist/settlement/xrp-channel-sdk.js.map +0 -1
- package/dist/settlement/xrp-claim-signer.d.ts +0 -22
- package/dist/settlement/xrp-claim-signer.d.ts.map +0 -1
- package/dist/settlement/xrp-claim-signer.js +0 -122
- package/dist/settlement/xrp-claim-signer.js.map +0 -1
- package/dist/settlement/xrpl-client.d.ts +0 -104
- package/dist/settlement/xrpl-client.d.ts.map +0 -1
- package/dist/settlement/xrpl-client.js +0 -304
- package/dist/settlement/xrpl-client.js.map +0 -1
- package/dist/test/testnet-config.d.ts +0 -58
- package/dist/test/testnet-config.d.ts.map +0 -1
- package/dist/test/testnet-config.js +0 -89
- package/dist/test/testnet-config.js.map +0 -1
- package/dist/utils/xrp-wss-connection-pool.d.ts +0 -8
- package/dist/utils/xrp-wss-connection-pool.d.ts.map +0 -1
- package/dist/utils/xrp-wss-connection-pool.js +0 -42
- package/dist/utils/xrp-wss-connection-pool.js.map +0 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
2
|
+
export type ServerName = 'AdminServer' | 'HealthServer';
|
|
3
|
+
export type AuthModel = 'X-Api-Key' | 'unauthenticated' | 'ip-allowlist';
|
|
4
|
+
export type CrossSurfaceGroupId = 'peer-existence' | 'packet-counters' | 'channel-state' | 'health-liveness-readiness';
|
|
5
|
+
export interface InventoryEntry {
|
|
6
|
+
path: string;
|
|
7
|
+
method: HttpMethod;
|
|
8
|
+
server: ServerName;
|
|
9
|
+
mountPrefix: string;
|
|
10
|
+
authModel: AuthModel;
|
|
11
|
+
successStatus: number;
|
|
12
|
+
failureModes: Array<{
|
|
13
|
+
status: number;
|
|
14
|
+
description: string;
|
|
15
|
+
condition?: string;
|
|
16
|
+
}>;
|
|
17
|
+
requestContract: string;
|
|
18
|
+
responseContract: string;
|
|
19
|
+
owningModule: string;
|
|
20
|
+
relatedStories: string[];
|
|
21
|
+
crossSurfaceGroupId?: CrossSurfaceGroupId;
|
|
22
|
+
operationalNotes: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const ADMIN_API_INVENTORY: readonly InventoryEntry[];
|
|
25
|
+
export type AdminApiInventoryEntry = (typeof ADMIN_API_INVENTORY)[number];
|
|
26
|
+
export declare function getEntriesByServer(server: ServerName): readonly InventoryEntry[];
|
|
27
|
+
export declare function getEntriesByGroup(groupId: CrossSurfaceGroupId): readonly InventoryEntry[];
|
|
28
|
+
export declare function getEntriesByAuthModel(authModel: AuthModel): readonly InventoryEntry[];
|
|
29
|
+
//# sourceMappingURL=admin-api-inventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-api-inventory.d.ts","sourceRoot":"","sources":["../../src/http/admin-api-inventory.ts"],"names":[],"mappings":"AAgCA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAKrE,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,cAAc,CAAC;AAYxD,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,iBAAiB,GAAG,cAAc,CAAC;AAMzE,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,2BAA2B,CAAC;AAKhC,MAAM,WAAW,cAAc;IAE7B,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,UAAU,CAAC;IAGnB,MAAM,EAAE,UAAU,CAAC;IAGnB,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,EAAE,SAAS,CAAC;IAGrB,aAAa,EAAE,MAAM,CAAC;IAGtB,YAAY,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IAGH,eAAe,EAAE,MAAM,CAAC;IAGxB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,YAAY,EAAE,MAAM,CAAC;IAGrB,cAAc,EAAE,MAAM,EAAE,CAAC;IAGzB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAG1C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAeD,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EA2kB/C,CAAC;AAKX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAK1E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,cAAc,EAAE,CAEhF;AAKD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,cAAc,EAAE,CAEzF;AAKD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,cAAc,EAAE,CAErF"}
|
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ADMIN_API_INVENTORY = void 0;
|
|
4
|
+
exports.getEntriesByServer = getEntriesByServer;
|
|
5
|
+
exports.getEntriesByGroup = getEntriesByGroup;
|
|
6
|
+
exports.getEntriesByAuthModel = getEntriesByAuthModel;
|
|
7
|
+
exports.ADMIN_API_INVENTORY = [
|
|
8
|
+
{
|
|
9
|
+
path: '/peers',
|
|
10
|
+
method: 'GET',
|
|
11
|
+
server: 'AdminServer',
|
|
12
|
+
mountPrefix: '/admin',
|
|
13
|
+
authModel: 'X-Api-Key',
|
|
14
|
+
successStatus: 200,
|
|
15
|
+
failureModes: [
|
|
16
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
17
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
18
|
+
],
|
|
19
|
+
requestContract: 'none',
|
|
20
|
+
responseContract: 'Array<{ id: string; url: string; connected: boolean; settlement?: SettlementPeerConfig }>',
|
|
21
|
+
owningModule: 'http/admin-api.ts',
|
|
22
|
+
relatedStories: ['6.4', '37.1'],
|
|
23
|
+
crossSurfaceGroupId: 'peer-existence',
|
|
24
|
+
operationalNotes: 'Returns live connection status from BTPClientManager. Poll at 1Hz for dashboard.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
path: '/peers',
|
|
28
|
+
method: 'POST',
|
|
29
|
+
server: 'AdminServer',
|
|
30
|
+
mountPrefix: '/admin',
|
|
31
|
+
authModel: 'X-Api-Key',
|
|
32
|
+
successStatus: 201,
|
|
33
|
+
failureModes: [
|
|
34
|
+
{ status: 400, description: 'Invalid request body or missing required fields' },
|
|
35
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
36
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
37
|
+
{ status: 409, description: 'Peer ID already exists' },
|
|
38
|
+
],
|
|
39
|
+
requestContract: 'AddPeerRequest (http/admin-api.ts)',
|
|
40
|
+
responseContract: '{ id: string; connected: boolean }',
|
|
41
|
+
owningModule: 'http/admin-api.ts',
|
|
42
|
+
relatedStories: ['6.4', '37.1'],
|
|
43
|
+
crossSurfaceGroupId: 'peer-existence',
|
|
44
|
+
operationalNotes: 'Automatically establishes BTP connection. Settlement config optional.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
path: '/peers/:peerId',
|
|
48
|
+
method: 'DELETE',
|
|
49
|
+
server: 'AdminServer',
|
|
50
|
+
mountPrefix: '/admin',
|
|
51
|
+
authModel: 'X-Api-Key',
|
|
52
|
+
successStatus: 204,
|
|
53
|
+
failureModes: [
|
|
54
|
+
{ status: 400, description: 'Missing peerId parameter' },
|
|
55
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
56
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
57
|
+
{ status: 404, description: 'Peer not found' },
|
|
58
|
+
],
|
|
59
|
+
requestContract: 'none',
|
|
60
|
+
responseContract: 'none (204 No Content)',
|
|
61
|
+
owningModule: 'http/admin-api.ts',
|
|
62
|
+
relatedStories: ['6.4', '37.1'],
|
|
63
|
+
crossSurfaceGroupId: 'peer-existence',
|
|
64
|
+
operationalNotes: 'Gracefully closes BTP connection before removing peer.',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
path: '/peers/:peerId',
|
|
68
|
+
method: 'PUT',
|
|
69
|
+
server: 'AdminServer',
|
|
70
|
+
mountPrefix: '/admin',
|
|
71
|
+
authModel: 'X-Api-Key',
|
|
72
|
+
successStatus: 200,
|
|
73
|
+
failureModes: [
|
|
74
|
+
{ status: 400, description: 'Invalid request body' },
|
|
75
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
76
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
77
|
+
{ status: 404, description: 'Peer not found' },
|
|
78
|
+
],
|
|
79
|
+
requestContract: 'Partial<AddPeerRequest> (http/admin-api.ts)',
|
|
80
|
+
responseContract: '{ id: string; connected: boolean; settlement?: SettlementPeerConfig }',
|
|
81
|
+
owningModule: 'http/admin-api.ts',
|
|
82
|
+
relatedStories: ['6.4'],
|
|
83
|
+
crossSurfaceGroupId: 'peer-existence',
|
|
84
|
+
operationalNotes: 'Partial update - only provided fields are modified.',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
path: '/routes',
|
|
88
|
+
method: 'GET',
|
|
89
|
+
server: 'AdminServer',
|
|
90
|
+
mountPrefix: '/admin',
|
|
91
|
+
authModel: 'X-Api-Key',
|
|
92
|
+
successStatus: 200,
|
|
93
|
+
failureModes: [
|
|
94
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
95
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
96
|
+
],
|
|
97
|
+
requestContract: 'none',
|
|
98
|
+
responseContract: 'Array<{ prefix: string; nextHop: string; priority: number }>',
|
|
99
|
+
owningModule: 'http/admin-api.ts',
|
|
100
|
+
relatedStories: ['6.4'],
|
|
101
|
+
operationalNotes: 'Returns all routing table entries sorted by priority.',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
path: '/routes',
|
|
105
|
+
method: 'POST',
|
|
106
|
+
server: 'AdminServer',
|
|
107
|
+
mountPrefix: '/admin',
|
|
108
|
+
authModel: 'X-Api-Key',
|
|
109
|
+
successStatus: 201,
|
|
110
|
+
failureModes: [
|
|
111
|
+
{
|
|
112
|
+
status: 400,
|
|
113
|
+
description: 'Invalid request body, missing prefix/nextHop, or invalid ILP address',
|
|
114
|
+
},
|
|
115
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
116
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
117
|
+
{ status: 404, description: 'Next hop peer not found' },
|
|
118
|
+
],
|
|
119
|
+
requestContract: 'AddRouteRequest (http/admin-api.ts)',
|
|
120
|
+
responseContract: '{ prefix: string; nextHop: string; priority: number }',
|
|
121
|
+
owningModule: 'http/admin-api.ts',
|
|
122
|
+
relatedStories: ['6.4'],
|
|
123
|
+
operationalNotes: 'Higher priority routes win ties. Creates peer association.',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
path: '/routes/:prefix(*)',
|
|
127
|
+
method: 'DELETE',
|
|
128
|
+
server: 'AdminServer',
|
|
129
|
+
mountPrefix: '/admin',
|
|
130
|
+
authModel: 'X-Api-Key',
|
|
131
|
+
successStatus: 204,
|
|
132
|
+
failureModes: [
|
|
133
|
+
{ status: 400, description: 'Missing prefix parameter' },
|
|
134
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
135
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
136
|
+
{ status: 404, description: 'Route not found' },
|
|
137
|
+
],
|
|
138
|
+
requestContract: 'none',
|
|
139
|
+
responseContract: 'none (204 No Content)',
|
|
140
|
+
owningModule: 'http/admin-api.ts',
|
|
141
|
+
relatedStories: ['6.4'],
|
|
142
|
+
operationalNotes: 'The (*) allows prefixes containing slashes (e.g., g.alice.USD).',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
path: '/channels',
|
|
146
|
+
method: 'GET',
|
|
147
|
+
server: 'AdminServer',
|
|
148
|
+
mountPrefix: '/admin',
|
|
149
|
+
authModel: 'X-Api-Key',
|
|
150
|
+
successStatus: 200,
|
|
151
|
+
failureModes: [
|
|
152
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
153
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
154
|
+
{ status: 503, description: 'ChannelManager not configured' },
|
|
155
|
+
],
|
|
156
|
+
requestContract: 'none',
|
|
157
|
+
responseContract: 'Array<AdminChannelStatus> (settlement/types.ts)',
|
|
158
|
+
owningModule: 'http/admin-api.ts',
|
|
159
|
+
relatedStories: ['32.4', '32.5', '33.5', '34.5'],
|
|
160
|
+
crossSurfaceGroupId: 'channel-state',
|
|
161
|
+
operationalNotes: 'Multi-chain: returns channels across all registered chain providers.',
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
path: '/channels',
|
|
165
|
+
method: 'POST',
|
|
166
|
+
server: 'AdminServer',
|
|
167
|
+
mountPrefix: '/admin',
|
|
168
|
+
authModel: 'X-Api-Key',
|
|
169
|
+
successStatus: 201,
|
|
170
|
+
failureModes: [
|
|
171
|
+
{ status: 400, description: 'Invalid request body or chain parameters' },
|
|
172
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
173
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
174
|
+
{ status: 503, description: 'ChannelManager not configured or chain provider unavailable' },
|
|
175
|
+
],
|
|
176
|
+
requestContract: '{ peerId: string; initialDeposit: string; chainId?: string }',
|
|
177
|
+
responseContract: '{ channelId: string; txHash?: string; status: AdminChannelStatus }',
|
|
178
|
+
owningModule: 'http/admin-api.ts',
|
|
179
|
+
relatedStories: ['32.4', '33.5', '34.5'],
|
|
180
|
+
crossSurfaceGroupId: 'channel-state',
|
|
181
|
+
operationalNotes: 'ChainId defaults to primary EVM provider if not specified.',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
path: '/channels/:channelId',
|
|
185
|
+
method: 'GET',
|
|
186
|
+
server: 'AdminServer',
|
|
187
|
+
mountPrefix: '/admin',
|
|
188
|
+
authModel: 'X-Api-Key',
|
|
189
|
+
successStatus: 200,
|
|
190
|
+
failureModes: [
|
|
191
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
192
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
193
|
+
{ status: 404, description: 'Channel not found' },
|
|
194
|
+
{ status: 503, description: 'ChannelManager not configured' },
|
|
195
|
+
],
|
|
196
|
+
requestContract: 'none',
|
|
197
|
+
responseContract: 'AdminChannelStatus (settlement/types.ts)',
|
|
198
|
+
owningModule: 'http/admin-api.ts',
|
|
199
|
+
relatedStories: ['32.4', '33.5', '34.5'],
|
|
200
|
+
crossSurfaceGroupId: 'channel-state',
|
|
201
|
+
operationalNotes: 'Returns full channel state including on-chain status.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
path: '/channels/:channelId/claims',
|
|
205
|
+
method: 'GET',
|
|
206
|
+
server: 'AdminServer',
|
|
207
|
+
mountPrefix: '/admin',
|
|
208
|
+
authModel: 'X-Api-Key',
|
|
209
|
+
successStatus: 200,
|
|
210
|
+
failureModes: [
|
|
211
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
212
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
213
|
+
{ status: 404, description: 'Channel not found' },
|
|
214
|
+
{ status: 503, description: 'ClaimReceiver not configured' },
|
|
215
|
+
],
|
|
216
|
+
requestContract: 'none',
|
|
217
|
+
responseContract: 'Array<ClaimRecord>',
|
|
218
|
+
owningModule: 'http/admin-api.ts',
|
|
219
|
+
relatedStories: ['32.6', '33.6', '34.6', '34.7'],
|
|
220
|
+
crossSurfaceGroupId: 'channel-state',
|
|
221
|
+
operationalNotes: 'Returns claims received via BTP claim protocol.',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
path: '/channels/:channelId/deposit',
|
|
225
|
+
method: 'POST',
|
|
226
|
+
server: 'AdminServer',
|
|
227
|
+
mountPrefix: '/admin',
|
|
228
|
+
authModel: 'X-Api-Key',
|
|
229
|
+
successStatus: 200,
|
|
230
|
+
failureModes: [
|
|
231
|
+
{ status: 400, description: 'Invalid amount or channel state' },
|
|
232
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
233
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
234
|
+
{ status: 404, description: 'Channel not found' },
|
|
235
|
+
{ status: 503, description: 'ChannelManager not configured' },
|
|
236
|
+
],
|
|
237
|
+
requestContract: '{ amount: string }',
|
|
238
|
+
responseContract: '{ txHash: string; newBalance: string }',
|
|
239
|
+
owningModule: 'http/admin-api.ts',
|
|
240
|
+
relatedStories: ['32.4', '33.5', '34.5'],
|
|
241
|
+
crossSurfaceGroupId: 'channel-state',
|
|
242
|
+
operationalNotes: 'Amount in wei/nanomina/lamports depending on chain.',
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
path: '/channels/:channelId/close',
|
|
246
|
+
method: 'POST',
|
|
247
|
+
server: 'AdminServer',
|
|
248
|
+
mountPrefix: '/admin',
|
|
249
|
+
authModel: 'X-Api-Key',
|
|
250
|
+
successStatus: 200,
|
|
251
|
+
failureModes: [
|
|
252
|
+
{ status: 400, description: 'Invalid channel state for close operation' },
|
|
253
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
254
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
255
|
+
{ status: 404, description: 'Channel not found' },
|
|
256
|
+
{ status: 503, description: 'ChannelManager not configured' },
|
|
257
|
+
],
|
|
258
|
+
requestContract: 'none (or { force?: boolean } for force-close)',
|
|
259
|
+
responseContract: '{ channelId: string; status: AdminChannelStatus; txHash?: string }',
|
|
260
|
+
owningModule: 'http/admin-api.ts',
|
|
261
|
+
relatedStories: ['32.4', '33.5', '34.5'],
|
|
262
|
+
crossSurfaceGroupId: 'channel-state',
|
|
263
|
+
operationalNotes: 'Starts settlement timeout; partner must claim before timeout expires.',
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
path: '/balances/:peerId',
|
|
267
|
+
method: 'GET',
|
|
268
|
+
server: 'AdminServer',
|
|
269
|
+
mountPrefix: '/admin',
|
|
270
|
+
authModel: 'X-Api-Key',
|
|
271
|
+
successStatus: 200,
|
|
272
|
+
failureModes: [
|
|
273
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
274
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
275
|
+
{ status: 404, description: 'Peer not found' },
|
|
276
|
+
{ status: 503, description: 'AccountManager not configured' },
|
|
277
|
+
],
|
|
278
|
+
requestContract: 'none',
|
|
279
|
+
responseContract: 'BalanceResponse (http/admin-api.ts)',
|
|
280
|
+
owningModule: 'http/admin-api.ts',
|
|
281
|
+
relatedStories: ['37.1'],
|
|
282
|
+
crossSurfaceGroupId: 'peer-existence',
|
|
283
|
+
operationalNotes: 'Uses btpClientManager.getPeerIds() as authoritative peer set. Returns 404 for unknown peer.',
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
path: '/settlement/states',
|
|
287
|
+
method: 'GET',
|
|
288
|
+
server: 'AdminServer',
|
|
289
|
+
mountPrefix: '/admin',
|
|
290
|
+
authModel: 'X-Api-Key',
|
|
291
|
+
successStatus: 200,
|
|
292
|
+
failureModes: [
|
|
293
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
294
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
295
|
+
{ status: 503, description: 'SettlementMonitor not configured' },
|
|
296
|
+
],
|
|
297
|
+
requestContract: 'none',
|
|
298
|
+
responseContract: 'Array<{ peerId: string; state: SettlementState; pendingClaims: number }>',
|
|
299
|
+
owningModule: 'http/admin-api.ts',
|
|
300
|
+
relatedStories: ['32.5'],
|
|
301
|
+
crossSurfaceGroupId: 'channel-state',
|
|
302
|
+
operationalNotes: 'Aggregated settlement view across all chain providers.',
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
path: '/ilp/send',
|
|
306
|
+
method: 'POST',
|
|
307
|
+
server: 'AdminServer',
|
|
308
|
+
mountPrefix: '/admin',
|
|
309
|
+
authModel: 'X-Api-Key',
|
|
310
|
+
successStatus: 200,
|
|
311
|
+
failureModes: [
|
|
312
|
+
{ status: 400, description: 'Invalid request body or ILP address' },
|
|
313
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
314
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
315
|
+
{ status: 503, description: 'Connector not ready or packet sender unavailable' },
|
|
316
|
+
],
|
|
317
|
+
requestContract: '{ destination: string; amount: string; condition?: string; expiry?: string }',
|
|
318
|
+
responseContract: '{ fulfillment?: string; rejection?: IlpReject }',
|
|
319
|
+
owningModule: 'http/admin-api.ts + http/ilp-send-handler.ts',
|
|
320
|
+
relatedStories: ['6.4'],
|
|
321
|
+
operationalNotes: 'Debug/diagnostic endpoint for manual ILP packet injection.',
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
path: '/metrics.json',
|
|
325
|
+
method: 'GET',
|
|
326
|
+
server: 'AdminServer',
|
|
327
|
+
mountPrefix: '/admin',
|
|
328
|
+
authModel: 'X-Api-Key',
|
|
329
|
+
successStatus: 200,
|
|
330
|
+
failureModes: [
|
|
331
|
+
{ status: 401, description: 'Missing or invalid X-Api-Key' },
|
|
332
|
+
{ status: 403, description: 'IP not in allowlist' },
|
|
333
|
+
{ status: 503, description: 'Metrics registry not wired' },
|
|
334
|
+
],
|
|
335
|
+
requestContract: 'none',
|
|
336
|
+
responseContract: 'AdminMetricsJsonResponse { peers: AdminMetricsJsonPeer[]; ... } (both types exported from http/admin-api.ts)',
|
|
337
|
+
owningModule: 'http/admin-api.ts',
|
|
338
|
+
relatedStories: ['37.2', '37.3'],
|
|
339
|
+
crossSurfaceGroupId: 'packet-counters',
|
|
340
|
+
operationalNotes: 'Cache-Control: no-store. Dashboard polls at 1Hz. Prometheus families: toon_packets_forwarded_total, toon_packets_rejected_total, toon_bytes_sent_total, toon_last_packet_timestamp_seconds.',
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
path: '/health',
|
|
344
|
+
method: 'GET',
|
|
345
|
+
server: 'AdminServer',
|
|
346
|
+
mountPrefix: '',
|
|
347
|
+
authModel: 'unauthenticated',
|
|
348
|
+
successStatus: 200,
|
|
349
|
+
failureModes: [],
|
|
350
|
+
requestContract: 'none',
|
|
351
|
+
responseContract: '{ status: "healthy"; service: "admin-api"; nodeId: string; timestamp: string }',
|
|
352
|
+
owningModule: 'http/admin-server.ts',
|
|
353
|
+
relatedStories: ['6.4'],
|
|
354
|
+
crossSurfaceGroupId: 'health-liveness-readiness',
|
|
355
|
+
operationalNotes: 'Mounted at app root BEFORE /admin router. Port 8081. Used by Docker health checks.',
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
path: '/metrics',
|
|
359
|
+
method: 'GET',
|
|
360
|
+
server: 'HealthServer',
|
|
361
|
+
mountPrefix: '',
|
|
362
|
+
authModel: 'unauthenticated',
|
|
363
|
+
successStatus: 200,
|
|
364
|
+
failureModes: [{ status: 404, description: 'Metrics middleware not configured' }],
|
|
365
|
+
requestContract: 'none',
|
|
366
|
+
responseContract: 'text/plain (Prometheus exposition format)',
|
|
367
|
+
owningModule: 'http/health-server.ts',
|
|
368
|
+
relatedStories: ['37.2'],
|
|
369
|
+
crossSurfaceGroupId: 'packet-counters',
|
|
370
|
+
operationalNotes: 'Prometheus families: toon_packets_forwarded_total, toon_packets_rejected_total, toon_bytes_sent_total, toon_last_packet_timestamp_seconds. Scraped by monitoring.',
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
path: '/health',
|
|
374
|
+
method: 'GET',
|
|
375
|
+
server: 'HealthServer',
|
|
376
|
+
mountPrefix: '',
|
|
377
|
+
authModel: 'unauthenticated',
|
|
378
|
+
successStatus: 200,
|
|
379
|
+
failureModes: [{ status: 503, description: 'Connector unhealthy or starting' }],
|
|
380
|
+
requestContract: 'none',
|
|
381
|
+
responseContract: 'HealthStatus | HealthStatusExtended (http/types.ts)',
|
|
382
|
+
owningModule: 'http/health-server.ts',
|
|
383
|
+
relatedStories: ['12.6'],
|
|
384
|
+
crossSurfaceGroupId: 'health-liveness-readiness',
|
|
385
|
+
operationalNotes: 'Returns 200 for healthy/degraded, 503 for unhealthy/starting. Extended format if extendedProvider configured.',
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
path: '/health/live',
|
|
389
|
+
method: 'GET',
|
|
390
|
+
server: 'HealthServer',
|
|
391
|
+
mountPrefix: '',
|
|
392
|
+
authModel: 'unauthenticated',
|
|
393
|
+
successStatus: 200,
|
|
394
|
+
failureModes: [],
|
|
395
|
+
requestContract: 'none',
|
|
396
|
+
responseContract: '{ status: "alive"; timestamp: string }',
|
|
397
|
+
owningModule: 'http/health-server.ts',
|
|
398
|
+
relatedStories: ['12.6'],
|
|
399
|
+
crossSurfaceGroupId: 'health-liveness-readiness',
|
|
400
|
+
operationalNotes: 'Always returns 200 unless process crashed. Kubernetes liveness probe.',
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
path: '/health/ready',
|
|
404
|
+
method: 'GET',
|
|
405
|
+
server: 'HealthServer',
|
|
406
|
+
mountPrefix: '',
|
|
407
|
+
authModel: 'unauthenticated',
|
|
408
|
+
successStatus: 200,
|
|
409
|
+
failureModes: [{ status: 503, description: 'Dependencies not ready (e.g., TigerBeetle down)' }],
|
|
410
|
+
requestContract: 'none',
|
|
411
|
+
responseContract: '{ status: "ready"; dependencies: object; timestamp: string }',
|
|
412
|
+
owningModule: 'http/health-server.ts',
|
|
413
|
+
relatedStories: ['12.6'],
|
|
414
|
+
crossSurfaceGroupId: 'health-liveness-readiness',
|
|
415
|
+
operationalNotes: 'Checks TigerBeetle and connector status. Kubernetes readiness probe.',
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
path: '/settlement/execute',
|
|
419
|
+
method: 'POST',
|
|
420
|
+
server: 'HealthServer',
|
|
421
|
+
mountPrefix: '',
|
|
422
|
+
authModel: 'unauthenticated',
|
|
423
|
+
successStatus: 200,
|
|
424
|
+
failureModes: [
|
|
425
|
+
{ status: 400, description: 'Invalid request body or missing peerId' },
|
|
426
|
+
{ status: 404, description: 'Peer not found or no settlement configured' },
|
|
427
|
+
{ status: 503, description: 'Settlement infrastructure not available' },
|
|
428
|
+
],
|
|
429
|
+
requestContract: '{ peerId: string; amount?: string }',
|
|
430
|
+
responseContract: '{ txHash: string; amount: string; tokenId: string }',
|
|
431
|
+
owningModule: 'settlement/settlement-api.ts',
|
|
432
|
+
relatedStories: ['6.7'],
|
|
433
|
+
operationalNotes: 'Inherits HealthServer unauthenticated posture. Auth via authToken in body when settlement API configured.',
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
path: '/settlement/status/:peerId',
|
|
437
|
+
method: 'GET',
|
|
438
|
+
server: 'HealthServer',
|
|
439
|
+
mountPrefix: '',
|
|
440
|
+
authModel: 'unauthenticated',
|
|
441
|
+
successStatus: 200,
|
|
442
|
+
failureModes: [
|
|
443
|
+
{ status: 404, description: 'Peer not found or no settlement configured' },
|
|
444
|
+
{ status: 503, description: 'Settlement infrastructure not available' },
|
|
445
|
+
],
|
|
446
|
+
requestContract: 'none',
|
|
447
|
+
responseContract: '{ peerId: string; pendingAmount: string; lastSettlement?: string; channelStatus?: string }',
|
|
448
|
+
owningModule: 'settlement/settlement-api.ts',
|
|
449
|
+
relatedStories: ['6.7'],
|
|
450
|
+
operationalNotes: 'Inherits HealthServer unauthenticated posture.',
|
|
451
|
+
},
|
|
452
|
+
];
|
|
453
|
+
function getEntriesByServer(server) {
|
|
454
|
+
return exports.ADMIN_API_INVENTORY.filter((entry) => entry.server === server);
|
|
455
|
+
}
|
|
456
|
+
function getEntriesByGroup(groupId) {
|
|
457
|
+
return exports.ADMIN_API_INVENTORY.filter((entry) => entry.crossSurfaceGroupId === groupId);
|
|
458
|
+
}
|
|
459
|
+
function getEntriesByAuthModel(authModel) {
|
|
460
|
+
return exports.ADMIN_API_INVENTORY.filter((entry) => entry.authModel === authModel);
|
|
461
|
+
}
|
|
462
|
+
//# sourceMappingURL=admin-api-inventory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-api-inventory.js","sourceRoot":"","sources":["../../src/http/admin-api-inventory.ts"],"names":[],"mappings":"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"}
|
package/dist/http/admin-api.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import type { AccountManager } from '../settlement/account-manager';
|
|
|
10
10
|
import type { SettlementMonitor } from '../settlement/settlement-monitor';
|
|
11
11
|
import type { ClaimReceiver } from '../settlement/claim-receiver';
|
|
12
12
|
import type { PacketSenderFn, IsReadyFn } from './ilp-send-handler';
|
|
13
|
+
import type { IlpMetricsRegistry } from '../observability/metrics-registry';
|
|
13
14
|
export interface AdminAPIConfig {
|
|
14
15
|
routingTable: RoutingTable;
|
|
15
16
|
btpClientManager: BTPClientManager;
|
|
@@ -27,6 +28,7 @@ export interface AdminAPIConfig {
|
|
|
27
28
|
packetSender?: PacketSenderFn;
|
|
28
29
|
isReady?: IsReadyFn;
|
|
29
30
|
defaultSettlementTokenId?: string;
|
|
31
|
+
metricsRegistry?: IlpMetricsRegistry;
|
|
30
32
|
}
|
|
31
33
|
export interface AddPeerRequest {
|
|
32
34
|
id: string;
|
|
@@ -52,6 +54,24 @@ export interface BalanceResponse {
|
|
|
52
54
|
netBalance: string;
|
|
53
55
|
}>;
|
|
54
56
|
}
|
|
57
|
+
export interface AdminMetricsJsonPeer {
|
|
58
|
+
peerId: string;
|
|
59
|
+
connected: boolean;
|
|
60
|
+
packetsForwarded: number;
|
|
61
|
+
packetsRejected: number;
|
|
62
|
+
bytesSent: number;
|
|
63
|
+
lastPacketAt: string | null;
|
|
64
|
+
}
|
|
65
|
+
export interface AdminMetricsJsonResponse {
|
|
66
|
+
uptimeSeconds: number;
|
|
67
|
+
aggregate: {
|
|
68
|
+
packetsForwarded: number;
|
|
69
|
+
packetsRejected: number;
|
|
70
|
+
bytesSent: number;
|
|
71
|
+
};
|
|
72
|
+
peers: AdminMetricsJsonPeer[];
|
|
73
|
+
timestamp: string;
|
|
74
|
+
}
|
|
55
75
|
export interface SettlementStateResponse {
|
|
56
76
|
peerId: string;
|
|
57
77
|
tokenId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-api.d.ts","sourceRoot":"","sources":["../../src/http/admin-api.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,MAAM,EAAmC,MAAM,SAAS,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,OAAO,EACL,qBAAqB,EACrB,UAAU,IAAI,oBAAoB,EAInC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"admin-api.d.ts","sourceRoot":"","sources":["../../src/http/admin-api.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,MAAM,EAAmC,MAAM,SAAS,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,OAAO,EACL,qBAAqB,EACrB,UAAU,IAAI,oBAAoB,EAInC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAK5E,MAAM,WAAW,cAAc;IAE7B,YAAY,EAAE,YAAY,CAAC;IAG3B,gBAAgB,EAAE,gBAAgB,CAAC;IAGnC,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAGtB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,MAAM,EAAE,MAAM,CAAC;IAOf,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAGpD,cAAc,CAAC,EAAE,cAAc,CAAC;IAGhC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAGtC,cAAc,CAAC,EAAE,cAAc,CAAC;IAGhC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAGtC,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,YAAY,CAAC,EAAE,cAAc,CAAC;IAG9B,OAAO,CAAC,EAAE,SAAS,CAAC;IAGpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAGlC,eAAe,CAAC,EAAE,kBAAkB,CAAC;CACtC;AAKD,MAAM,WAAW,cAAc;IAE7B,EAAE,EAAE,MAAM,CAAC;IAGX,GAAG,EAAE,MAAM,CAAC;IAGZ,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,KAAK,CAAC;QAEb,MAAM,EAAE,MAAM,CAAC;QAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IAeH,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAKD,MAAM,WAAW,eAAe;IAE9B,MAAM,EAAE,MAAM,CAAC;IAGf,OAAO,EAAE,MAAM,CAAC;IAGhB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAMD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAMD,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE;QACT,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AA6HD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAyxC/E;AAKD,MAAM,WAAW,iBAAiB;IAEhC,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAG3D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAIlB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAGD,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACrE,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAkBA;AAMD,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CA+BhF;AAMD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACzE,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAuDA"}
|
package/dist/http/admin-api.js
CHANGED
|
@@ -79,7 +79,7 @@ function createIPAllowlistMiddleware(allowedIPs, trustProxy, logger) {
|
|
|
79
79
|
async function createAdminRouter(config) {
|
|
80
80
|
const { default: express } = await (0, optional_require_1.requireOptional)('express', 'HTTP admin/health APIs');
|
|
81
81
|
const router = express.Router();
|
|
82
|
-
const { routingTable, btpClientManager, logger, apiKey, allowedIPs, trustProxy = false, nodeId, settlementPeers, channelManager, paymentChannelSDK, accountManager, settlementMonitor, claimReceiver, packetSender, isReady, defaultSettlementTokenId, } = config;
|
|
82
|
+
const { routingTable, btpClientManager, logger, apiKey, allowedIPs, trustProxy = false, nodeId, settlementPeers, channelManager, paymentChannelSDK, accountManager, settlementMonitor, claimReceiver, packetSender, isReady, defaultSettlementTokenId, metricsRegistry, } = config;
|
|
83
83
|
const log = logger.child({ component: 'AdminAPI' });
|
|
84
84
|
router.use(express.json());
|
|
85
85
|
if (allowedIPs && allowedIPs.length > 0) {
|
|
@@ -883,6 +883,15 @@ async function createAdminRouter(config) {
|
|
|
883
883
|
}
|
|
884
884
|
const peerId = req.params.peerId;
|
|
885
885
|
const tokenId = req.query.tokenId || (defaultSettlementTokenId ?? 'M2M');
|
|
886
|
+
const registeredPeers = btpClientManager.getPeerIds();
|
|
887
|
+
if (!registeredPeers.includes(peerId)) {
|
|
888
|
+
res.status(404).json({
|
|
889
|
+
error: 'Not found',
|
|
890
|
+
peerId,
|
|
891
|
+
message: `Peer '${peerId}' not found`,
|
|
892
|
+
});
|
|
893
|
+
return;
|
|
894
|
+
}
|
|
886
895
|
const balance = await accountManager.getAccountBalance(peerId, tokenId);
|
|
887
896
|
const response = {
|
|
888
897
|
peerId,
|
|
@@ -967,6 +976,57 @@ async function createAdminRouter(config) {
|
|
|
967
976
|
});
|
|
968
977
|
const ilpSendHandler = new ilp_send_handler_1.IlpSendHandler(packetSender ?? null, isReady ?? null, log);
|
|
969
978
|
router.post('/ilp/send', ilpSendHandler.handle.bind(ilpSendHandler));
|
|
979
|
+
router.get('/metrics.json', async (_req, res) => {
|
|
980
|
+
try {
|
|
981
|
+
if (!metricsRegistry) {
|
|
982
|
+
res.status(503).json({
|
|
983
|
+
error: 'Service Unavailable',
|
|
984
|
+
message: 'Metrics not enabled',
|
|
985
|
+
});
|
|
986
|
+
return;
|
|
987
|
+
}
|
|
988
|
+
const livePeerIds = btpClientManager.getPeerIds();
|
|
989
|
+
const peerSnapshots = await metricsRegistry.snapshotPeers();
|
|
990
|
+
const snapshotByPeer = new Map(peerSnapshots.map((s) => [s.peerId, s]));
|
|
991
|
+
const peerStatus = btpClientManager.getPeerStatus();
|
|
992
|
+
const peers = [...livePeerIds].sort().map((peerId) => {
|
|
993
|
+
const snap = snapshotByPeer.get(peerId);
|
|
994
|
+
const lastPacketAt = snap && snap.lastPacketAtUnixSeconds > 0
|
|
995
|
+
? new Date(snap.lastPacketAtUnixSeconds * 1000).toISOString()
|
|
996
|
+
: null;
|
|
997
|
+
return {
|
|
998
|
+
peerId,
|
|
999
|
+
connected: peerStatus.get(peerId) ?? false,
|
|
1000
|
+
packetsForwarded: snap?.packetsForwarded ?? 0,
|
|
1001
|
+
packetsRejected: snap?.packetsRejected ?? 0,
|
|
1002
|
+
bytesSent: snap?.bytesSent ?? 0,
|
|
1003
|
+
lastPacketAt,
|
|
1004
|
+
};
|
|
1005
|
+
});
|
|
1006
|
+
const aggregate = peers.reduce((acc, p) => ({
|
|
1007
|
+
packetsForwarded: acc.packetsForwarded + p.packetsForwarded,
|
|
1008
|
+
packetsRejected: acc.packetsRejected + p.packetsRejected,
|
|
1009
|
+
bytesSent: acc.bytesSent + p.bytesSent,
|
|
1010
|
+
}), { packetsForwarded: 0, packetsRejected: 0, bytesSent: 0 });
|
|
1011
|
+
res.set('Cache-Control', 'no-store');
|
|
1012
|
+
res.json({
|
|
1013
|
+
uptimeSeconds: Math.floor(process.uptime()),
|
|
1014
|
+
aggregate,
|
|
1015
|
+
peers,
|
|
1016
|
+
timestamp: new Date().toISOString(),
|
|
1017
|
+
});
|
|
1018
|
+
}
|
|
1019
|
+
catch (error) {
|
|
1020
|
+
log.error({
|
|
1021
|
+
event: 'admin_api_metrics_error',
|
|
1022
|
+
error: error instanceof Error ? error.message : String(error),
|
|
1023
|
+
}, 'Failed to generate metrics.json');
|
|
1024
|
+
res.status(500).json({
|
|
1025
|
+
error: 'Internal server error',
|
|
1026
|
+
message: error instanceof Error ? error.message : String(error),
|
|
1027
|
+
});
|
|
1028
|
+
}
|
|
1029
|
+
});
|
|
970
1030
|
return router;
|
|
971
1031
|
}
|
|
972
1032
|
exports.CHAIN_FORMAT_REGEX = /^evm:[a-zA-Z0-9]+:\d+$/;
|