@openziti/ziti-mcp-server 0.1.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.
Files changed (210) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +868 -0
  3. package/dist/auth/client-credentials-flow.d.ts +21 -0
  4. package/dist/auth/client-credentials-flow.js +63 -0
  5. package/dist/auth/client-credentials-flow.js.map +1 -0
  6. package/dist/auth/device-auth-flow.d.ts +47 -0
  7. package/dist/auth/device-auth-flow.js +291 -0
  8. package/dist/auth/device-auth-flow.js.map +1 -0
  9. package/dist/clients/base.d.ts +74 -0
  10. package/dist/clients/base.js +109 -0
  11. package/dist/clients/base.js.map +1 -0
  12. package/dist/clients/claude.d.ts +22 -0
  13. package/dist/clients/claude.js +40 -0
  14. package/dist/clients/claude.js.map +1 -0
  15. package/dist/clients/cursor.d.ts +22 -0
  16. package/dist/clients/cursor.js +39 -0
  17. package/dist/clients/cursor.js.map +1 -0
  18. package/dist/clients/index.d.ts +33 -0
  19. package/dist/clients/index.js +39 -0
  20. package/dist/clients/index.js.map +1 -0
  21. package/dist/clients/types.d.ts +70 -0
  22. package/dist/clients/types.js +2 -0
  23. package/dist/clients/types.js.map +1 -0
  24. package/dist/clients/utils.d.ts +22 -0
  25. package/dist/clients/utils.js +46 -0
  26. package/dist/clients/utils.js.map +1 -0
  27. package/dist/clients/vscode.d.ts +76 -0
  28. package/dist/clients/vscode.js +159 -0
  29. package/dist/clients/vscode.js.map +1 -0
  30. package/dist/clients/windsurf.d.ts +22 -0
  31. package/dist/clients/windsurf.js +39 -0
  32. package/dist/clients/windsurf.js.map +1 -0
  33. package/dist/commands/init.d.ts +45 -0
  34. package/dist/commands/init.js +133 -0
  35. package/dist/commands/init.js.map +1 -0
  36. package/dist/commands/logout.d.ts +12 -0
  37. package/dist/commands/logout.js +90 -0
  38. package/dist/commands/logout.js.map +1 -0
  39. package/dist/commands/run.d.ts +15 -0
  40. package/dist/commands/run.js +94 -0
  41. package/dist/commands/run.js.map +1 -0
  42. package/dist/commands/session.d.ts +12 -0
  43. package/dist/commands/session.js +99 -0
  44. package/dist/commands/session.js.map +1 -0
  45. package/dist/index.d.ts +2 -0
  46. package/dist/index.js +105 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/server.d.ts +67 -0
  49. package/dist/server.js +171 -0
  50. package/dist/server.js.map +1 -0
  51. package/dist/tools/api-sessions.d.ts +3 -0
  52. package/dist/tools/api-sessions.js +86 -0
  53. package/dist/tools/api-sessions.js.map +1 -0
  54. package/dist/tools/auth-policies.d.ts +3 -0
  55. package/dist/tools/auth-policies.js +347 -0
  56. package/dist/tools/auth-policies.js.map +1 -0
  57. package/dist/tools/authenticators.d.ts +3 -0
  58. package/dist/tools/authenticators.js +183 -0
  59. package/dist/tools/authenticators.js.map +1 -0
  60. package/dist/tools/certificate-authorities.d.ts +3 -0
  61. package/dist/tools/certificate-authorities.js +288 -0
  62. package/dist/tools/certificate-authorities.js.map +1 -0
  63. package/dist/tools/config-types.d.ts +3 -0
  64. package/dist/tools/config-types.js +194 -0
  65. package/dist/tools/config-types.js.map +1 -0
  66. package/dist/tools/configs.d.ts +3 -0
  67. package/dist/tools/configs.js +203 -0
  68. package/dist/tools/configs.js.map +1 -0
  69. package/dist/tools/controller-settings.d.ts +3 -0
  70. package/dist/tools/controller-settings.js +219 -0
  71. package/dist/tools/controller-settings.js.map +1 -0
  72. package/dist/tools/controllers.d.ts +3 -0
  73. package/dist/tools/controllers.js +89 -0
  74. package/dist/tools/controllers.js.map +1 -0
  75. package/dist/tools/edge-router-policies.d.ts +3 -0
  76. package/dist/tools/edge-router-policies.js +262 -0
  77. package/dist/tools/edge-router-policies.js.map +1 -0
  78. package/dist/tools/edge-routers.d.ts +3 -0
  79. package/dist/tools/edge-routers.js +381 -0
  80. package/dist/tools/edge-routers.js.map +1 -0
  81. package/dist/tools/enrollments.d.ts +3 -0
  82. package/dist/tools/enrollments.js +187 -0
  83. package/dist/tools/enrollments.js.map +1 -0
  84. package/dist/tools/external-jwt-signers.d.ts +3 -0
  85. package/dist/tools/external-jwt-signers.js +242 -0
  86. package/dist/tools/external-jwt-signers.js.map +1 -0
  87. package/dist/tools/identities.d.ts +3 -0
  88. package/dist/tools/identities.js +741 -0
  89. package/dist/tools/identities.js.map +1 -0
  90. package/dist/tools/identity-types.d.ts +3 -0
  91. package/dist/tools/identity-types.js +58 -0
  92. package/dist/tools/identity-types.js.map +1 -0
  93. package/dist/tools/index.d.ts +3 -0
  94. package/dist/tools/index.js +101 -0
  95. package/dist/tools/index.js.map +1 -0
  96. package/dist/tools/posture-checks.d.ts +3 -0
  97. package/dist/tools/posture-checks.js +254 -0
  98. package/dist/tools/posture-checks.js.map +1 -0
  99. package/dist/tools/routers.d.ts +3 -0
  100. package/dist/tools/routers.js +169 -0
  101. package/dist/tools/routers.js.map +1 -0
  102. package/dist/tools/service-edge-router-policies.d.ts +3 -0
  103. package/dist/tools/service-edge-router-policies.js +282 -0
  104. package/dist/tools/service-edge-router-policies.js.map +1 -0
  105. package/dist/tools/service-policies.d.ts +3 -0
  106. package/dist/tools/service-policies.js +311 -0
  107. package/dist/tools/service-policies.js.map +1 -0
  108. package/dist/tools/services.d.ts +3 -0
  109. package/dist/tools/services.js +403 -0
  110. package/dist/tools/services.js.map +1 -0
  111. package/dist/tools/sessions.d.ts +3 -0
  112. package/dist/tools/sessions.js +86 -0
  113. package/dist/tools/sessions.js.map +1 -0
  114. package/dist/tools/terminators.d.ts +3 -0
  115. package/dist/tools/terminators.js +187 -0
  116. package/dist/tools/terminators.js.map +1 -0
  117. package/dist/tools/transit-routers.d.ts +3 -0
  118. package/dist/tools/transit-routers.js +169 -0
  119. package/dist/tools/transit-routers.js.map +1 -0
  120. package/dist/utils/analytics.d.ts +75 -0
  121. package/dist/utils/analytics.js +191 -0
  122. package/dist/utils/analytics.js.map +1 -0
  123. package/dist/utils/auth0-client.d.ts +27 -0
  124. package/dist/utils/auth0-client.js +67 -0
  125. package/dist/utils/auth0-client.js.map +1 -0
  126. package/dist/utils/authenticated-client.d.ts +6 -0
  127. package/dist/utils/authenticated-client.js +55 -0
  128. package/dist/utils/authenticated-client.js.map +1 -0
  129. package/dist/utils/config.d.ts +65 -0
  130. package/dist/utils/config.js +80 -0
  131. package/dist/utils/config.js.map +1 -0
  132. package/dist/utils/constants.d.ts +15 -0
  133. package/dist/utils/constants.js +17 -0
  134. package/dist/utils/constants.js.map +1 -0
  135. package/dist/utils/controller-client/client/client.gen.d.ts +2 -0
  136. package/dist/utils/controller-client/client/client.gen.js +229 -0
  137. package/dist/utils/controller-client/client/client.gen.js.map +1 -0
  138. package/dist/utils/controller-client/client/index.d.ts +8 -0
  139. package/dist/utils/controller-client/client/index.js +7 -0
  140. package/dist/utils/controller-client/client/index.js.map +1 -0
  141. package/dist/utils/controller-client/client/types.gen.d.ts +117 -0
  142. package/dist/utils/controller-client/client/types.gen.js +3 -0
  143. package/dist/utils/controller-client/client/types.gen.js.map +1 -0
  144. package/dist/utils/controller-client/client/utils.gen.d.ts +33 -0
  145. package/dist/utils/controller-client/client/utils.gen.js +232 -0
  146. package/dist/utils/controller-client/client/utils.gen.js.map +1 -0
  147. package/dist/utils/controller-client/client.gen.d.ts +12 -0
  148. package/dist/utils/controller-client/client.gen.js +6 -0
  149. package/dist/utils/controller-client/client.gen.js.map +1 -0
  150. package/dist/utils/controller-client/core/auth.gen.d.ts +18 -0
  151. package/dist/utils/controller-client/core/auth.gen.js +15 -0
  152. package/dist/utils/controller-client/core/auth.gen.js.map +1 -0
  153. package/dist/utils/controller-client/core/bodySerializer.gen.d.ts +25 -0
  154. package/dist/utils/controller-client/core/bodySerializer.gen.js +58 -0
  155. package/dist/utils/controller-client/core/bodySerializer.gen.js.map +1 -0
  156. package/dist/utils/controller-client/core/params.gen.d.ts +43 -0
  157. package/dist/utils/controller-client/core/params.gen.js +101 -0
  158. package/dist/utils/controller-client/core/params.gen.js.map +1 -0
  159. package/dist/utils/controller-client/core/pathSerializer.gen.d.ts +33 -0
  160. package/dist/utils/controller-client/core/pathSerializer.gen.js +115 -0
  161. package/dist/utils/controller-client/core/pathSerializer.gen.js.map +1 -0
  162. package/dist/utils/controller-client/core/queryKeySerializer.gen.d.ts +18 -0
  163. package/dist/utils/controller-client/core/queryKeySerializer.gen.js +100 -0
  164. package/dist/utils/controller-client/core/queryKeySerializer.gen.js.map +1 -0
  165. package/dist/utils/controller-client/core/serverSentEvents.gen.d.ts +71 -0
  166. package/dist/utils/controller-client/core/serverSentEvents.gen.js +136 -0
  167. package/dist/utils/controller-client/core/serverSentEvents.gen.js.map +1 -0
  168. package/dist/utils/controller-client/core/types.gen.d.ts +78 -0
  169. package/dist/utils/controller-client/core/types.gen.js +3 -0
  170. package/dist/utils/controller-client/core/types.gen.js.map +1 -0
  171. package/dist/utils/controller-client/core/utils.gen.d.ts +19 -0
  172. package/dist/utils/controller-client/core/utils.gen.js +88 -0
  173. package/dist/utils/controller-client/core/utils.gen.js.map +1 -0
  174. package/dist/utils/controller-client/index.d.ts +2 -0
  175. package/dist/utils/controller-client/index.js +3 -0
  176. package/dist/utils/controller-client/index.js.map +1 -0
  177. package/dist/utils/controller-client/sdk.gen.d.ts +1302 -0
  178. package/dist/utils/controller-client/sdk.gen.js +4436 -0
  179. package/dist/utils/controller-client/sdk.gen.js.map +1 -0
  180. package/dist/utils/controller-client/types.gen.d.ts +9170 -0
  181. package/dist/utils/controller-client/types.gen.js +3 -0
  182. package/dist/utils/controller-client/types.gen.js.map +1 -0
  183. package/dist/utils/glob.d.ts +75 -0
  184. package/dist/utils/glob.js +110 -0
  185. package/dist/utils/glob.js.map +1 -0
  186. package/dist/utils/http-utility.d.ts +5 -0
  187. package/dist/utils/http-utility.js +68 -0
  188. package/dist/utils/http-utility.js.map +1 -0
  189. package/dist/utils/keychain.d.ts +129 -0
  190. package/dist/utils/keychain.js +193 -0
  191. package/dist/utils/keychain.js.map +1 -0
  192. package/dist/utils/logger.d.ts +4 -0
  193. package/dist/utils/logger.js +28 -0
  194. package/dist/utils/logger.js.map +1 -0
  195. package/dist/utils/package.d.ts +3 -0
  196. package/dist/utils/package.js +9 -0
  197. package/dist/utils/package.js.map +1 -0
  198. package/dist/utils/scopes.d.ts +12 -0
  199. package/dist/utils/scopes.js +19 -0
  200. package/dist/utils/scopes.js.map +1 -0
  201. package/dist/utils/terminal.d.ts +35 -0
  202. package/dist/utils/terminal.js +409 -0
  203. package/dist/utils/terminal.js.map +1 -0
  204. package/dist/utils/tools.d.ts +63 -0
  205. package/dist/utils/tools.js +149 -0
  206. package/dist/utils/tools.js.map +1 -0
  207. package/dist/utils/types.d.ts +55 -0
  208. package/dist/utils/types.js +3 -0
  209. package/dist/utils/types.js.map +1 -0
  210. package/package.json +89 -0
@@ -0,0 +1,262 @@
1
+ import { createErrorResponse } from '../utils/http-utility.js';
2
+ import { withAuthenticatedClient } from '../utils/authenticated-client.js';
3
+ import { listEdgeRouterPolicies, detailEdgeRouterPolicy, createEdgeRouterPolicy, deleteEdgeRouterPolicy, patchEdgeRouterPolicy, listEdgeRouterPolicyEdgeRouters, listEdgeRouterPolicyIdentities, } from '../utils/controller-client/sdk.gen.js';
4
+ // Define all available Edge Router Policy tools
5
+ export const EDGE_ROUTER_POLICY_TOOLS = [
6
+ {
7
+ name: 'listEdgeRouterPolicies',
8
+ description: 'List all Edge Router Policies in the Ziti network',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {},
12
+ },
13
+ _meta: {
14
+ requiredScopes: ['read:edge-router-policies'],
15
+ readOnly: true,
16
+ },
17
+ annotations: {
18
+ title: 'List all Edge Router Policies defined in the Ziti network.',
19
+ readOnlyHint: true,
20
+ destructiveHint: false,
21
+ idempotentHint: true,
22
+ openWorldHint: false,
23
+ },
24
+ },
25
+ {
26
+ name: 'listEdgeRouterPolicy',
27
+ description: 'Get details about a specific Ziti Edge Router Policy',
28
+ inputSchema: {
29
+ type: 'object',
30
+ properties: {
31
+ id: { type: 'string', description: 'ID of the edge router policy to retrieve' },
32
+ },
33
+ required: ['id'],
34
+ },
35
+ _meta: {
36
+ requiredScopes: ['read:edge-router-policies'],
37
+ readOnly: true,
38
+ },
39
+ annotations: {
40
+ title: 'Get Ziti Edge Router Policy Details',
41
+ readOnlyHint: true,
42
+ destructiveHint: false,
43
+ idempotentHint: true,
44
+ openWorldHint: false,
45
+ },
46
+ },
47
+ {
48
+ name: 'createEdgeRouterPolicy',
49
+ description: 'Create a new Ziti Edge Router Policy.',
50
+ inputSchema: {
51
+ type: 'object',
52
+ properties: {
53
+ name: { type: 'string', description: 'Name of the edge router policy to create' },
54
+ semantic: {
55
+ type: 'string',
56
+ enum: ['AllOf', 'AnyOf'],
57
+ description: 'Semantic for matching roles: "AllOf" requires all roles, "AnyOf" requires any',
58
+ },
59
+ edgeRouterRoles: {
60
+ type: 'string',
61
+ description: 'Comma-separated edge router roles (e.g. "#role1,#role2" or specific IDs)',
62
+ },
63
+ identityRoles: {
64
+ type: 'string',
65
+ description: 'Comma-separated identity roles (e.g. "#role1,#role2" or specific IDs)',
66
+ },
67
+ },
68
+ required: ['name', 'semantic'],
69
+ },
70
+ _meta: {
71
+ requiredScopes: ['write:edge-router-policies'],
72
+ readOnly: false,
73
+ },
74
+ annotations: {
75
+ title: 'Create a new Edge Router Policy in the Ziti network.',
76
+ readOnlyHint: false,
77
+ destructiveHint: false,
78
+ idempotentHint: false,
79
+ openWorldHint: false,
80
+ },
81
+ },
82
+ {
83
+ name: 'deleteEdgeRouterPolicy',
84
+ description: 'Delete a Ziti Edge Router Policy.',
85
+ inputSchema: {
86
+ type: 'object',
87
+ properties: {
88
+ id: { type: 'string', description: 'ID of the edge router policy to delete' },
89
+ },
90
+ required: ['id'],
91
+ },
92
+ _meta: {
93
+ requiredScopes: ['write:edge-router-policies'],
94
+ readOnly: false,
95
+ },
96
+ annotations: {
97
+ title: 'Delete an Edge Router Policy from the Ziti network.',
98
+ readOnlyHint: false,
99
+ destructiveHint: true,
100
+ idempotentHint: false,
101
+ openWorldHint: false,
102
+ },
103
+ },
104
+ {
105
+ name: 'updateEdgeRouterPolicy',
106
+ description: 'Update an existing Ziti Edge Router Policy.',
107
+ inputSchema: {
108
+ type: 'object',
109
+ properties: {
110
+ id: { type: 'string', description: 'ID of the edge router policy to update' },
111
+ name: { type: 'string', description: 'Name to give the edge router policy' },
112
+ semantic: {
113
+ type: 'string',
114
+ enum: ['AllOf', 'AnyOf'],
115
+ description: 'Semantic for matching roles: "AllOf" requires all roles, "AnyOf" requires any',
116
+ },
117
+ edgeRouterRoles: {
118
+ type: 'string',
119
+ description: 'Comma-separated edge router roles (e.g. "#role1,#role2" or specific IDs)',
120
+ },
121
+ identityRoles: {
122
+ type: 'string',
123
+ description: 'Comma-separated identity roles (e.g. "#role1,#role2" or specific IDs)',
124
+ },
125
+ },
126
+ required: ['id'],
127
+ },
128
+ _meta: {
129
+ requiredScopes: ['write:edge-router-policies'],
130
+ readOnly: false,
131
+ },
132
+ annotations: {
133
+ title: 'Update an existing Edge Router Policy in the Ziti network.',
134
+ readOnlyHint: false,
135
+ destructiveHint: true,
136
+ idempotentHint: true,
137
+ openWorldHint: false,
138
+ },
139
+ },
140
+ {
141
+ name: 'listEdgeRouterPolicyEdgeRouters',
142
+ description: 'List all Edge Routers associated with a specific Edge Router Policy',
143
+ inputSchema: {
144
+ type: 'object',
145
+ properties: {
146
+ id: { type: 'string', description: 'ID of the edge router policy' },
147
+ },
148
+ required: ['id'],
149
+ },
150
+ _meta: {
151
+ requiredScopes: ['read:edge-router-policies'],
152
+ readOnly: true,
153
+ },
154
+ annotations: {
155
+ title: 'List Edge Routers for an Edge Router Policy.',
156
+ readOnlyHint: true,
157
+ destructiveHint: false,
158
+ idempotentHint: true,
159
+ openWorldHint: false,
160
+ },
161
+ },
162
+ {
163
+ name: 'listEdgeRouterPolicyIdentities',
164
+ description: 'List all Identities associated with a specific Edge Router Policy',
165
+ inputSchema: {
166
+ type: 'object',
167
+ properties: {
168
+ id: { type: 'string', description: 'ID of the edge router policy' },
169
+ },
170
+ required: ['id'],
171
+ },
172
+ _meta: {
173
+ requiredScopes: ['read:edge-router-policies'],
174
+ readOnly: true,
175
+ },
176
+ annotations: {
177
+ title: 'List Identities for an Edge Router Policy.',
178
+ readOnlyHint: true,
179
+ destructiveHint: false,
180
+ idempotentHint: true,
181
+ openWorldHint: false,
182
+ },
183
+ },
184
+ ];
185
+ // Define handlers for each Edge Router Policy tool
186
+ export const EDGE_ROUTER_POLICY_HANDLERS = {
187
+ listEdgeRouterPolicies: (request, config) => withAuthenticatedClient(request, config, 'list edge router policies', (client, ztSession) => listEdgeRouterPolicies({ client, headers: { 'zt-session': ztSession } })),
188
+ listEdgeRouterPolicy: (request, config) => {
189
+ const { id } = request.parameters;
190
+ if (!id)
191
+ return Promise.resolve(createErrorResponse('Error: id is required'));
192
+ return withAuthenticatedClient(request, config, 'get edge router policy', (client, ztSession) => detailEdgeRouterPolicy({ path: { id }, client, headers: { 'zt-session': ztSession } }));
193
+ },
194
+ createEdgeRouterPolicy: (request, config) => {
195
+ const { name, semantic, edgeRouterRoles, identityRoles } = request.parameters;
196
+ if (!name)
197
+ return Promise.resolve(createErrorResponse('Error: name is required'));
198
+ if (!semantic)
199
+ return Promise.resolve(createErrorResponse('Error: semantic is required'));
200
+ return withAuthenticatedClient(request, config, 'create edge router policy', (client, ztSession) => createEdgeRouterPolicy({
201
+ body: {
202
+ name,
203
+ semantic,
204
+ edgeRouterRoles: edgeRouterRoles
205
+ ? edgeRouterRoles.split(',').map((r) => r.trim())
206
+ : undefined,
207
+ identityRoles: identityRoles
208
+ ? identityRoles.split(',').map((r) => r.trim())
209
+ : undefined,
210
+ },
211
+ client,
212
+ headers: { 'zt-session': ztSession },
213
+ }));
214
+ },
215
+ deleteEdgeRouterPolicy: (request, config) => {
216
+ const { id } = request.parameters;
217
+ if (!id)
218
+ return Promise.resolve(createErrorResponse('Error: id is required'));
219
+ return withAuthenticatedClient(request, config, 'delete edge router policy', (client, ztSession) => deleteEdgeRouterPolicy({ path: { id }, client, headers: { 'zt-session': ztSession } }));
220
+ },
221
+ updateEdgeRouterPolicy: (request, config) => {
222
+ const { id, name, semantic, edgeRouterRoles, identityRoles } = request.parameters;
223
+ if (!id)
224
+ return Promise.resolve(createErrorResponse('Error: id is required'));
225
+ return withAuthenticatedClient(request, config, 'update edge router policy', (client, ztSession) => patchEdgeRouterPolicy({
226
+ path: { id },
227
+ body: {
228
+ name,
229
+ semantic,
230
+ edgeRouterRoles: edgeRouterRoles
231
+ ? edgeRouterRoles.split(',').map((r) => r.trim())
232
+ : undefined,
233
+ identityRoles: identityRoles
234
+ ? identityRoles.split(',').map((r) => r.trim())
235
+ : undefined,
236
+ },
237
+ client,
238
+ headers: { 'zt-session': ztSession },
239
+ }));
240
+ },
241
+ listEdgeRouterPolicyEdgeRouters: (request, config) => {
242
+ const { id } = request.parameters;
243
+ if (!id)
244
+ return Promise.resolve(createErrorResponse('Error: id is required'));
245
+ return withAuthenticatedClient(request, config, 'list edge router policy edge routers', (client, ztSession) => listEdgeRouterPolicyEdgeRouters({
246
+ path: { id },
247
+ client,
248
+ headers: { 'zt-session': ztSession },
249
+ }));
250
+ },
251
+ listEdgeRouterPolicyIdentities: (request, config) => {
252
+ const { id } = request.parameters;
253
+ if (!id)
254
+ return Promise.resolve(createErrorResponse('Error: id is required'));
255
+ return withAuthenticatedClient(request, config, 'list edge router policy identities', (client, ztSession) => listEdgeRouterPolicyIdentities({
256
+ path: { id },
257
+ client,
258
+ headers: { 'zt-session': ztSession },
259
+ }));
260
+ },
261
+ };
262
+ //# sourceMappingURL=edge-router-policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-router-policies.js","sourceRoot":"","sources":["../../src/tools/edge-router-policies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { HandlerConfig, HandlerRequest, HandlerResponse, Tool } from '../utils/types.js';
2
+ export declare const EDGE_ROUTER_TOOLS: Tool[];
3
+ export declare const EDGE_ROUTER_HANDLERS: Record<string, (request: HandlerRequest, config: HandlerConfig) => Promise<HandlerResponse>>;
@@ -0,0 +1,381 @@
1
+ import { createErrorResponse } from '../utils/http-utility.js';
2
+ import { withAuthenticatedClient } from '../utils/authenticated-client.js';
3
+ import { listEdgeRouters, detailEdgeRouter, createEdgeRouter, deleteEdgeRouter, patchEdgeRouter, listEdgeRouterRoleAttributes, listEdgeRouterIdentities, listEdgeRouterServices, listEdgeRouterEdgeRouterPolicies, listEdgeRouterServiceEdgeRouterPolicies, reEnrollEdgeRouter, } from '../utils/controller-client/sdk.gen.js';
4
+ // Define all available Edge Router tools
5
+ export const EDGE_ROUTER_TOOLS = [
6
+ {
7
+ name: 'listEdgeRouters',
8
+ description: 'List all Edge Routers in the Ziti network',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {},
12
+ },
13
+ _meta: {
14
+ requiredScopes: ['read:edge-routers'],
15
+ readOnly: true,
16
+ },
17
+ annotations: {
18
+ title: 'List all Edge Routers defined in the Ziti network.',
19
+ readOnlyHint: true,
20
+ destructiveHint: false,
21
+ idempotentHint: true,
22
+ openWorldHint: false,
23
+ },
24
+ },
25
+ {
26
+ name: 'listEdgeRouter',
27
+ description: 'Get details about a specific Ziti Edge Router',
28
+ inputSchema: {
29
+ type: 'object',
30
+ properties: {
31
+ id: { type: 'string', description: 'ID of the edge router to retrieve' },
32
+ },
33
+ required: ['id'],
34
+ },
35
+ _meta: {
36
+ requiredScopes: ['read:edge-routers'],
37
+ readOnly: true,
38
+ },
39
+ annotations: {
40
+ title: 'Get Ziti Edge Router Details',
41
+ readOnlyHint: true,
42
+ destructiveHint: false,
43
+ idempotentHint: true,
44
+ openWorldHint: false,
45
+ },
46
+ },
47
+ {
48
+ name: 'createEdgeRouter',
49
+ description: 'Create a new Ziti Edge Router.',
50
+ inputSchema: {
51
+ type: 'object',
52
+ properties: {
53
+ name: { type: 'string', description: 'Name of the edge router to create' },
54
+ isTunnelerEnabled: {
55
+ type: 'boolean',
56
+ description: 'Whether the edge router has tunneler capabilities enabled',
57
+ default: false,
58
+ },
59
+ roleAttributes: {
60
+ type: 'string',
61
+ description: 'Comma-separated role attributes for the new edge router',
62
+ },
63
+ cost: {
64
+ type: 'number',
65
+ description: 'Cost for routing through this edge router',
66
+ },
67
+ noTraversal: {
68
+ type: 'boolean',
69
+ description: 'Whether transit is disabled for this edge router',
70
+ default: false,
71
+ },
72
+ disabled: {
73
+ type: 'boolean',
74
+ description: 'Whether the edge router is disabled',
75
+ default: false,
76
+ },
77
+ },
78
+ required: ['name'],
79
+ },
80
+ _meta: {
81
+ requiredScopes: ['write:edge-routers'],
82
+ readOnly: false,
83
+ },
84
+ annotations: {
85
+ title: 'Create a new Edge Router in the Ziti network.',
86
+ readOnlyHint: false,
87
+ destructiveHint: false,
88
+ idempotentHint: false,
89
+ openWorldHint: false,
90
+ },
91
+ },
92
+ {
93
+ name: 'deleteEdgeRouter',
94
+ description: 'Delete a Ziti Edge Router.',
95
+ inputSchema: {
96
+ type: 'object',
97
+ properties: {
98
+ id: { type: 'string', description: 'ID of the edge router to delete' },
99
+ },
100
+ required: ['id'],
101
+ },
102
+ _meta: {
103
+ requiredScopes: ['write:edge-routers'],
104
+ readOnly: false,
105
+ },
106
+ annotations: {
107
+ title: 'Delete an Edge Router from the Ziti network.',
108
+ readOnlyHint: false,
109
+ destructiveHint: true,
110
+ idempotentHint: false,
111
+ openWorldHint: false,
112
+ },
113
+ },
114
+ {
115
+ name: 'updateEdgeRouter',
116
+ description: 'Update an existing Ziti Edge Router.',
117
+ inputSchema: {
118
+ type: 'object',
119
+ properties: {
120
+ id: { type: 'string', description: 'ID of the edge router to update' },
121
+ name: { type: 'string', description: 'Name to give the edge router' },
122
+ isTunnelerEnabled: {
123
+ type: 'boolean',
124
+ description: 'Whether the edge router has tunneler capabilities enabled',
125
+ },
126
+ roleAttributes: {
127
+ type: 'string',
128
+ description: 'Comma-separated role attributes for the edge router',
129
+ },
130
+ cost: {
131
+ type: 'number',
132
+ description: 'Cost for routing through this edge router',
133
+ },
134
+ noTraversal: {
135
+ type: 'boolean',
136
+ description: 'Whether transit is disabled for this edge router',
137
+ },
138
+ disabled: {
139
+ type: 'boolean',
140
+ description: 'Whether the edge router is disabled',
141
+ },
142
+ },
143
+ required: ['id'],
144
+ },
145
+ _meta: {
146
+ requiredScopes: ['write:edge-routers'],
147
+ readOnly: false,
148
+ },
149
+ annotations: {
150
+ title: 'Update an existing Edge Router in the Ziti network.',
151
+ readOnlyHint: false,
152
+ destructiveHint: true,
153
+ idempotentHint: true,
154
+ openWorldHint: false,
155
+ },
156
+ },
157
+ {
158
+ name: 'listEdgeRouterIdentities',
159
+ description: 'List all Identities accessible by a specific Edge Router',
160
+ inputSchema: {
161
+ type: 'object',
162
+ properties: {
163
+ id: { type: 'string', description: 'ID of the edge router' },
164
+ },
165
+ required: ['id'],
166
+ },
167
+ _meta: {
168
+ requiredScopes: ['read:edge-routers'],
169
+ readOnly: true,
170
+ },
171
+ annotations: {
172
+ title: 'List Identities for an Edge Router.',
173
+ readOnlyHint: true,
174
+ destructiveHint: false,
175
+ idempotentHint: true,
176
+ openWorldHint: false,
177
+ },
178
+ },
179
+ {
180
+ name: 'listEdgeRouterServices',
181
+ description: 'List all Services accessible by a specific Edge Router',
182
+ inputSchema: {
183
+ type: 'object',
184
+ properties: {
185
+ id: { type: 'string', description: 'ID of the edge router' },
186
+ },
187
+ required: ['id'],
188
+ },
189
+ _meta: {
190
+ requiredScopes: ['read:edge-routers'],
191
+ readOnly: true,
192
+ },
193
+ annotations: {
194
+ title: 'List Services for an Edge Router.',
195
+ readOnlyHint: true,
196
+ destructiveHint: false,
197
+ idempotentHint: true,
198
+ openWorldHint: false,
199
+ },
200
+ },
201
+ {
202
+ name: 'listEdgeRouterEdgeRouterPolicies',
203
+ description: 'List all Edge Router Policies that apply to a specific Edge Router',
204
+ inputSchema: {
205
+ type: 'object',
206
+ properties: {
207
+ id: { type: 'string', description: 'ID of the edge router' },
208
+ },
209
+ required: ['id'],
210
+ },
211
+ _meta: {
212
+ requiredScopes: ['read:edge-routers'],
213
+ readOnly: true,
214
+ },
215
+ annotations: {
216
+ title: 'List Edge Router Policies for an Edge Router.',
217
+ readOnlyHint: true,
218
+ destructiveHint: false,
219
+ idempotentHint: true,
220
+ openWorldHint: false,
221
+ },
222
+ },
223
+ {
224
+ name: 'listEdgeRouterServiceEdgeRouterPolicies',
225
+ description: 'List all Service Edge Router Policies that apply to a specific Edge Router',
226
+ inputSchema: {
227
+ type: 'object',
228
+ properties: {
229
+ id: { type: 'string', description: 'ID of the edge router' },
230
+ },
231
+ required: ['id'],
232
+ },
233
+ _meta: {
234
+ requiredScopes: ['read:edge-routers'],
235
+ readOnly: true,
236
+ },
237
+ annotations: {
238
+ title: 'List Service Edge Router Policies for an Edge Router.',
239
+ readOnlyHint: true,
240
+ destructiveHint: false,
241
+ idempotentHint: true,
242
+ openWorldHint: false,
243
+ },
244
+ },
245
+ {
246
+ name: 'listEdgeRouterRoleAttributes',
247
+ description: 'List all role attributes in use by Edge Routers in the Ziti network',
248
+ inputSchema: {
249
+ type: 'object',
250
+ properties: {},
251
+ },
252
+ _meta: {
253
+ requiredScopes: ['read:edge-routers'],
254
+ readOnly: true,
255
+ },
256
+ annotations: {
257
+ title: 'List all Edge Router role attributes.',
258
+ readOnlyHint: true,
259
+ destructiveHint: false,
260
+ idempotentHint: true,
261
+ openWorldHint: false,
262
+ },
263
+ },
264
+ {
265
+ name: 'reEnrollEdgeRouter',
266
+ description: 'Re-enroll an Edge Router, generating new certificates',
267
+ inputSchema: {
268
+ type: 'object',
269
+ properties: {
270
+ id: { type: 'string', description: 'ID of the edge router to re-enroll' },
271
+ },
272
+ required: ['id'],
273
+ },
274
+ _meta: {
275
+ requiredScopes: ['write:edge-routers'],
276
+ readOnly: false,
277
+ },
278
+ annotations: {
279
+ title: 'Re-enroll an Edge Router.',
280
+ readOnlyHint: false,
281
+ destructiveHint: true,
282
+ idempotentHint: false,
283
+ openWorldHint: false,
284
+ },
285
+ },
286
+ ];
287
+ // Define handlers for each Edge Router tool
288
+ export const EDGE_ROUTER_HANDLERS = {
289
+ listEdgeRouters: (request, config) => withAuthenticatedClient(request, config, 'list edge routers', (client, ztSession) => listEdgeRouters({ client, headers: { 'zt-session': ztSession } })),
290
+ listEdgeRouter: (request, config) => {
291
+ const { id } = request.parameters;
292
+ if (!id)
293
+ return Promise.resolve(createErrorResponse('Error: id is required'));
294
+ return withAuthenticatedClient(request, config, 'get edge router', (client, ztSession) => detailEdgeRouter({ path: { id }, client, headers: { 'zt-session': ztSession } }));
295
+ },
296
+ createEdgeRouter: (request, config) => {
297
+ const { name, isTunnelerEnabled = false, roleAttributes, cost, noTraversal = false, disabled = false, } = request.parameters;
298
+ if (!name)
299
+ return Promise.resolve(createErrorResponse('Error: name is required'));
300
+ return withAuthenticatedClient(request, config, 'create edge router', (client, ztSession) => createEdgeRouter({
301
+ body: {
302
+ name,
303
+ isTunnelerEnabled,
304
+ roleAttributes: roleAttributes
305
+ ? roleAttributes.split(',').map((attr) => attr.trim())
306
+ : undefined,
307
+ cost,
308
+ noTraversal,
309
+ disabled,
310
+ },
311
+ client,
312
+ headers: { 'zt-session': ztSession },
313
+ }));
314
+ },
315
+ deleteEdgeRouter: (request, config) => {
316
+ const { id } = request.parameters;
317
+ if (!id)
318
+ return Promise.resolve(createErrorResponse('Error: id is required'));
319
+ return withAuthenticatedClient(request, config, 'delete edge router', (client, ztSession) => deleteEdgeRouter({ path: { id }, client, headers: { 'zt-session': ztSession } }));
320
+ },
321
+ listEdgeRouterIdentities: (request, config) => {
322
+ const { id } = request.parameters;
323
+ if (!id)
324
+ return Promise.resolve(createErrorResponse('Error: id is required'));
325
+ return withAuthenticatedClient(request, config, 'list edge router identities', (client, ztSession) => listEdgeRouterIdentities({ path: { id }, client, headers: { 'zt-session': ztSession } }));
326
+ },
327
+ listEdgeRouterServices: (request, config) => {
328
+ const { id } = request.parameters;
329
+ if (!id)
330
+ return Promise.resolve(createErrorResponse('Error: id is required'));
331
+ return withAuthenticatedClient(request, config, 'list edge router services', (client, ztSession) => listEdgeRouterServices({ path: { id }, client, headers: { 'zt-session': ztSession } }));
332
+ },
333
+ listEdgeRouterEdgeRouterPolicies: (request, config) => {
334
+ const { id } = request.parameters;
335
+ if (!id)
336
+ return Promise.resolve(createErrorResponse('Error: id is required'));
337
+ return withAuthenticatedClient(request, config, 'list edge router edge router policies', (client, ztSession) => listEdgeRouterEdgeRouterPolicies({
338
+ path: { id },
339
+ client,
340
+ headers: { 'zt-session': ztSession },
341
+ }));
342
+ },
343
+ listEdgeRouterServiceEdgeRouterPolicies: (request, config) => {
344
+ const { id } = request.parameters;
345
+ if (!id)
346
+ return Promise.resolve(createErrorResponse('Error: id is required'));
347
+ return withAuthenticatedClient(request, config, 'list edge router service edge router policies', (client, ztSession) => listEdgeRouterServiceEdgeRouterPolicies({
348
+ path: { id },
349
+ client,
350
+ headers: { 'zt-session': ztSession },
351
+ }));
352
+ },
353
+ listEdgeRouterRoleAttributes: (request, config) => withAuthenticatedClient(request, config, 'list edge router role attributes', (client, ztSession) => listEdgeRouterRoleAttributes({ client, headers: { 'zt-session': ztSession } })),
354
+ updateEdgeRouter: (request, config) => {
355
+ const { id, name, isTunnelerEnabled, roleAttributes, cost, noTraversal, disabled } = request.parameters;
356
+ if (!id)
357
+ return Promise.resolve(createErrorResponse('Error: id is required'));
358
+ return withAuthenticatedClient(request, config, 'update edge router', (client, ztSession) => patchEdgeRouter({
359
+ path: { id },
360
+ body: {
361
+ name,
362
+ isTunnelerEnabled,
363
+ roleAttributes: roleAttributes
364
+ ? roleAttributes.split(',').map((attr) => attr.trim())
365
+ : undefined,
366
+ cost,
367
+ noTraversal,
368
+ disabled,
369
+ },
370
+ client,
371
+ headers: { 'zt-session': ztSession },
372
+ }));
373
+ },
374
+ reEnrollEdgeRouter: (request, config) => {
375
+ const { id } = request.parameters;
376
+ if (!id)
377
+ return Promise.resolve(createErrorResponse('Error: id is required'));
378
+ return withAuthenticatedClient(request, config, 're-enroll edge router', (client, ztSession) => reEnrollEdgeRouter({ path: { id }, client, headers: { 'zt-session': ztSession } }));
379
+ },
380
+ };
381
+ //# sourceMappingURL=edge-routers.js.map