@noodleseed/one 0.99.1 → 0.100.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 (170) hide show
  1. package/dist/commands/auth-ops.d.ts.map +1 -1
  2. package/dist/commands/auth-ops.js +6 -1
  3. package/dist/commands/auth-ops.js.map +1 -1
  4. package/dist/commands/auth-service-principals.d.ts +3 -0
  5. package/dist/commands/auth-service-principals.d.ts.map +1 -0
  6. package/dist/commands/auth-service-principals.js +380 -0
  7. package/dist/commands/auth-service-principals.js.map +1 -0
  8. package/dist/commands/catalog-data-auth-discovery.d.ts.map +1 -1
  9. package/dist/commands/catalog-data-auth-discovery.js +187 -2
  10. package/dist/commands/catalog-data-auth-discovery.js.map +1 -1
  11. package/dist/commands/catalog.d.ts.map +1 -1
  12. package/dist/commands/catalog.js +1 -0
  13. package/dist/commands/catalog.js.map +1 -1
  14. package/node_modules/@noodle-borg/auth/dist/index.d.ts +1 -1
  15. package/node_modules/@noodle-borg/auth/dist/index.d.ts.map +1 -1
  16. package/node_modules/@noodle-borg/auth/dist/index.js.map +1 -1
  17. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts +5 -1
  18. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts.map +1 -1
  19. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.js +6 -0
  20. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.js.map +1 -1
  21. package/node_modules/@noodle-borg/auth/dist/verify.d.ts +9 -2
  22. package/node_modules/@noodle-borg/auth/dist/verify.d.ts.map +1 -1
  23. package/node_modules/@noodle-borg/auth/dist/verify.js +25 -1
  24. package/node_modules/@noodle-borg/auth/dist/verify.js.map +1 -1
  25. package/node_modules/@noodle-borg/capabilities/dist/index.d.ts.map +1 -1
  26. package/node_modules/@noodle-borg/capabilities/dist/index.js +7 -0
  27. package/node_modules/@noodle-borg/capabilities/dist/index.js.map +1 -1
  28. package/node_modules/@noodle-borg/module/dist/contract.d.ts +1 -1
  29. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  30. package/node_modules/@noodle-borg/protocol/dist/index.d.ts +1 -0
  31. package/node_modules/@noodle-borg/protocol/dist/index.d.ts.map +1 -1
  32. package/node_modules/@noodle-borg/protocol/dist/index.js +1 -0
  33. package/node_modules/@noodle-borg/protocol/dist/index.js.map +1 -1
  34. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts +2 -0
  35. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts.map +1 -1
  36. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
  37. package/node_modules/@noodle-borg/protocol/dist/tool-confirmation.d.ts +6 -0
  38. package/node_modules/@noodle-borg/protocol/dist/tool-confirmation.d.ts.map +1 -0
  39. package/node_modules/@noodle-borg/protocol/dist/tool-confirmation.js +6 -0
  40. package/node_modules/@noodle-borg/protocol/dist/tool-confirmation.js.map +1 -0
  41. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts +1 -1
  42. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts.map +1 -1
  43. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js +2 -2
  44. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js.map +1 -1
  45. package/node_modules/@noodle-borg/protocol/dist/v2/confirmation.d.ts +1 -1
  46. package/node_modules/@noodle-borg/protocol/dist/v2/confirmation.d.ts.map +1 -1
  47. package/node_modules/@noodle-borg/protocol/dist/v2/confirmation.js +2 -2
  48. package/node_modules/@noodle-borg/protocol/dist/v2/confirmation.js.map +1 -1
  49. package/node_modules/@noodle-borg/protocol/dist/v2/input-required.d.ts.map +1 -1
  50. package/node_modules/@noodle-borg/protocol/dist/v2/input-required.js +5 -0
  51. package/node_modules/@noodle-borg/protocol/dist/v2/input-required.js.map +1 -1
  52. package/node_modules/@noodle-borg/protocol/dist/v2/server.d.ts.map +1 -1
  53. package/node_modules/@noodle-borg/protocol/dist/v2/server.js +13 -9
  54. package/node_modules/@noodle-borg/protocol/dist/v2/server.js.map +1 -1
  55. package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts +1 -1
  56. package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts.map +1 -1
  57. package/node_modules/@noodle-borg/service/dist/index.d.ts +4 -0
  58. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  59. package/node_modules/@noodle-borg/service/dist/index.js +4 -0
  60. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  61. package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts +2 -0
  62. package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts.map +1 -1
  63. package/node_modules/@noodle-borg/service/dist/oauth/app.js +29 -0
  64. package/node_modules/@noodle-borg/service/dist/oauth/app.js.map +1 -1
  65. package/node_modules/@noodle-borg/service/dist/oauth/metadata.d.ts +1 -1
  66. package/node_modules/@noodle-borg/service/dist/oauth/metadata.d.ts.map +1 -1
  67. package/node_modules/@noodle-borg/service/dist/oauth/metadata.js +19 -2
  68. package/node_modules/@noodle-borg/service/dist/oauth/metadata.js.map +1 -1
  69. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.d.ts.map +1 -1
  70. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.js +3 -1
  71. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.js.map +1 -1
  72. package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts +5 -0
  73. package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts.map +1 -1
  74. package/node_modules/@noodle-borg/service/dist/oauth/provider.js +11 -1
  75. package/node_modules/@noodle-borg/service/dist/oauth/provider.js.map +1 -1
  76. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts +8 -1
  77. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts.map +1 -1
  78. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js +60 -0
  79. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js.map +1 -1
  80. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-client-auth.d.ts +22 -0
  81. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-client-auth.d.ts.map +1 -0
  82. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-client-auth.js +199 -0
  83. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-client-auth.js.map +1 -0
  84. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-credentials.d.ts +14 -0
  85. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-credentials.d.ts.map +1 -0
  86. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-credentials.js +119 -0
  87. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-credentials.js.map +1 -0
  88. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-guard.d.ts +16 -0
  89. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-guard.d.ts.map +1 -0
  90. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-guard.js +34 -0
  91. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-guard.js.map +1 -0
  92. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.d.ts +14 -0
  93. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.d.ts.map +1 -0
  94. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.js +53 -0
  95. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.js.map +1 -0
  96. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store-postgres-schema.d.ts +4 -0
  97. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store-postgres-schema.d.ts.map +1 -0
  98. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store-postgres-schema.js +98 -0
  99. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store-postgres-schema.js.map +1 -0
  100. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store-postgres.d.ts +22 -0
  101. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store-postgres.d.ts.map +1 -0
  102. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store-postgres.js +359 -0
  103. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store-postgres.js.map +1 -0
  104. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store.d.ts +165 -0
  105. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store.d.ts.map +1 -0
  106. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store.js +349 -0
  107. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-store.js.map +1 -0
  108. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-token-handler.d.ts +20 -0
  109. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-token-handler.d.ts.map +1 -0
  110. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-token-handler.js +175 -0
  111. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-token-handler.js.map +1 -0
  112. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-token-issuer.d.ts +12 -0
  113. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-token-issuer.d.ts.map +1 -0
  114. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-token-issuer.js +20 -0
  115. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-token-issuer.js.map +1 -0
  116. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.d.ts +9 -3
  117. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.d.ts.map +1 -1
  118. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.js +6 -0
  119. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.js.map +1 -1
  120. package/node_modules/@noodle-borg/service/dist/options.d.ts +5 -0
  121. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  122. package/node_modules/@noodle-borg/service/dist/routes/service-principal-contracts.d.ts +24 -0
  123. package/node_modules/@noodle-borg/service/dist/routes/service-principal-contracts.d.ts.map +1 -0
  124. package/node_modules/@noodle-borg/service/dist/routes/service-principal-contracts.js +55 -0
  125. package/node_modules/@noodle-borg/service/dist/routes/service-principal-contracts.js.map +1 -0
  126. package/node_modules/@noodle-borg/service/dist/routes/service-principal-paths.d.ts +29 -0
  127. package/node_modules/@noodle-borg/service/dist/routes/service-principal-paths.d.ts.map +1 -0
  128. package/node_modules/@noodle-borg/service/dist/routes/service-principal-paths.js +63 -0
  129. package/node_modules/@noodle-borg/service/dist/routes/service-principal-paths.js.map +1 -0
  130. package/node_modules/@noodle-borg/service/dist/routes/service-principals-dispatch.d.ts +27 -0
  131. package/node_modules/@noodle-borg/service/dist/routes/service-principals-dispatch.d.ts.map +1 -0
  132. package/node_modules/@noodle-borg/service/dist/routes/service-principals-dispatch.js +33 -0
  133. package/node_modules/@noodle-borg/service/dist/routes/service-principals-dispatch.js.map +1 -0
  134. package/node_modules/@noodle-borg/service/dist/routes/service-principals.d.ts +17 -0
  135. package/node_modules/@noodle-borg/service/dist/routes/service-principals.d.ts.map +1 -0
  136. package/node_modules/@noodle-borg/service/dist/routes/service-principals.js +203 -0
  137. package/node_modules/@noodle-borg/service/dist/routes/service-principals.js.map +1 -0
  138. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  139. package/node_modules/@noodle-borg/service/dist/serve.js +4 -1
  140. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  141. package/node_modules/@noodle-borg/service/dist/service-principal-data-plane.d.ts +12 -0
  142. package/node_modules/@noodle-borg/service/dist/service-principal-data-plane.d.ts.map +1 -0
  143. package/node_modules/@noodle-borg/service/dist/service-principal-data-plane.js +71 -0
  144. package/node_modules/@noodle-borg/service/dist/service-principal-data-plane.js.map +1 -0
  145. package/node_modules/@noodle-borg/service/dist/service.d.ts +1 -3
  146. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  147. package/node_modules/@noodle-borg/service/dist/service.js +8 -4
  148. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  149. package/node_modules/@noodle-borg/service/package.json +1 -0
  150. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +5 -0
  151. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
  152. package/node_modules/@noodle-borg/transport-http/dist/handler.js +4 -0
  153. package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
  154. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts +5 -0
  155. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts.map +1 -1
  156. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.js +16 -0
  157. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.js.map +1 -1
  158. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +2 -0
  159. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts.map +1 -1
  160. package/node_modules/@noodle-borg/transport-http/dist/index.js +1 -0
  161. package/node_modules/@noodle-borg/transport-http/dist/index.js.map +1 -1
  162. package/node_modules/@noodle-borg/transport-http/dist/serve-request.d.ts +3 -0
  163. package/node_modules/@noodle-borg/transport-http/dist/serve-request.d.ts.map +1 -1
  164. package/node_modules/@noodle-borg/transport-http/dist/serve-request.js +56 -2
  165. package/node_modules/@noodle-borg/transport-http/dist/serve-request.js.map +1 -1
  166. package/node_modules/@noodle-borg/transport-http/dist/service-principal-authorization.d.ts +31 -0
  167. package/node_modules/@noodle-borg/transport-http/dist/service-principal-authorization.d.ts.map +1 -0
  168. package/node_modules/@noodle-borg/transport-http/dist/service-principal-authorization.js +51 -0
  169. package/node_modules/@noodle-borg/transport-http/dist/service-principal-authorization.js.map +1 -0
  170. package/package.json +1 -1
@@ -0,0 +1,203 @@
1
+ import { readJsonBody, sendJson } from '../http-util.js';
2
+ import { createClientSecret, digestClientSecret } from '../oauth/service-principal-credentials.js';
3
+ import { authorizeControlPlane } from './control-plane.js';
4
+ import { createServicePrincipalCredentialSchema, createServicePrincipalGrantSchema, createServicePrincipalSchema, } from './service-principal-contracts.js';
5
+ export async function handleServicePrincipalRequest(req, res, path, deps) {
6
+ const identity = await authorizeHumanOrgMember(req, res, path.org, deps);
7
+ if (identity === false)
8
+ return;
9
+ if (!deps.runtime.ready) {
10
+ return sendJson(res, 503, { error: 'service_principals_unavailable' });
11
+ }
12
+ const store = deps.runtime.store;
13
+ if (path.kind === 'collection' && req.method === 'GET') {
14
+ return sendJson(res, 200, { ok: true, data: await store.listPrincipals(path.org) });
15
+ }
16
+ if (path.kind === 'collection' && req.method === 'POST') {
17
+ const input = await parseBody(req, res, deps.maxBody, createServicePrincipalSchema);
18
+ if (input === undefined)
19
+ return;
20
+ const created = await store.createPrincipal({
21
+ org: path.org,
22
+ name: input.name,
23
+ actorSubject: identity.subject,
24
+ });
25
+ await emit(deps.audit, 'service_principal.created', identity, path.org, {
26
+ principalId: created.principalId,
27
+ });
28
+ return sendJson(res, 201, { ok: true, data: created });
29
+ }
30
+ if (path.kind === 'principal' && req.method === 'GET') {
31
+ const view = await store.getPrincipal(path);
32
+ return view === undefined
33
+ ? sendJson(res, 404, { error: 'not found' })
34
+ : sendJson(res, 200, { ok: true, data: view });
35
+ }
36
+ if (path.kind === 'principal' && req.method === 'DELETE') {
37
+ if ((await store.getPrincipal(path)) === undefined) {
38
+ return sendJson(res, 404, { error: 'not found' });
39
+ }
40
+ await store.revokePrincipal({ ...path, actorSubject: identity.subject });
41
+ await emit(deps.audit, 'service_principal.revoked', identity, path.org, {
42
+ principalId: path.principalId,
43
+ });
44
+ return sendJson(res, 200, { ok: true });
45
+ }
46
+ if (path.kind === 'grants' && req.method === 'POST') {
47
+ if ((await store.getPrincipal(path)) === undefined) {
48
+ return sendJson(res, 404, { error: 'not found' });
49
+ }
50
+ const input = await parseBody(req, res, deps.maxBody, createServicePrincipalGrantSchema);
51
+ if (input === undefined)
52
+ return;
53
+ if ((await deps.registry.getEnvironment(path.org, input.app, input.environment)) === undefined) {
54
+ return sendJson(res, 404, { error: 'not found' });
55
+ }
56
+ try {
57
+ const grant = await store.createGrant({
58
+ principalId: path.principalId,
59
+ org: path.org,
60
+ app: input.app,
61
+ environment: input.environment,
62
+ scopes: input.scopes,
63
+ actorSubject: identity.subject,
64
+ });
65
+ await emit(deps.audit, 'service_principal.grant.created', identity, path.org, {
66
+ principalId: path.principalId,
67
+ grantId: grant.grantId,
68
+ app: grant.app,
69
+ environment: grant.environment,
70
+ });
71
+ return sendJson(res, 201, { ok: true, data: grant });
72
+ }
73
+ catch (error) {
74
+ return sendJson(res, 400, { error: safeMutationError(error) });
75
+ }
76
+ }
77
+ if (path.kind === 'grant' && req.method === 'DELETE') {
78
+ if ((await store.getPrincipal(path)) === undefined) {
79
+ return sendJson(res, 404, { error: 'not found' });
80
+ }
81
+ const revoked = await store.revokeGrant({ ...path, actorSubject: identity.subject });
82
+ if (!revoked)
83
+ return sendJson(res, 404, { error: 'not found' });
84
+ await emit(deps.audit, 'service_principal.grant.revoked', identity, path.org, {
85
+ principalId: path.principalId,
86
+ grantId: path.grantId,
87
+ });
88
+ return sendJson(res, 200, { ok: true });
89
+ }
90
+ if (path.kind === 'credentials' && req.method === 'POST') {
91
+ if ((await store.getPrincipal(path)) === undefined) {
92
+ return sendJson(res, 404, { error: 'not found' });
93
+ }
94
+ const input = await parseBody(req, res, deps.maxBody, createServicePrincipalCredentialSchema);
95
+ if (input === undefined)
96
+ return;
97
+ try {
98
+ if (input.kind === 'client_secret') {
99
+ const secret = createClientSecret();
100
+ const credential = await store.createCredential({
101
+ principalId: path.principalId,
102
+ org: path.org,
103
+ actorSubject: identity.subject,
104
+ kind: input.kind,
105
+ label: input.label,
106
+ secretDigest: digestClientSecret(secret),
107
+ ...(input.expiresAt === undefined ? {} : { expiresAt: input.expiresAt }),
108
+ });
109
+ await credentialAudit(deps.audit, identity, path.org, credential);
110
+ return sendJson(res, 201, { ok: true, data: { ...credential, secret } });
111
+ }
112
+ const credential = await store.createCredential({
113
+ principalId: path.principalId,
114
+ org: path.org,
115
+ actorSubject: identity.subject,
116
+ kind: input.kind,
117
+ label: input.label,
118
+ algorithm: input.algorithm,
119
+ publicJwk: input.publicJwk,
120
+ ...(input.expiresAt === undefined ? {} : { expiresAt: input.expiresAt }),
121
+ });
122
+ await credentialAudit(deps.audit, identity, path.org, credential);
123
+ return sendJson(res, 201, { ok: true, data: credential });
124
+ }
125
+ catch (error) {
126
+ return sendJson(res, 400, { error: safeMutationError(error) });
127
+ }
128
+ }
129
+ if (path.kind === 'credential' && req.method === 'DELETE') {
130
+ if ((await store.getPrincipal(path)) === undefined) {
131
+ return sendJson(res, 404, { error: 'not found' });
132
+ }
133
+ const revoked = await store.revokeCredential({ ...path, actorSubject: identity.subject });
134
+ if (!revoked)
135
+ return sendJson(res, 404, { error: 'not found' });
136
+ await emit(deps.audit, 'service_principal.credential.revoked', identity, path.org, {
137
+ principalId: path.principalId,
138
+ credentialId: path.credentialId,
139
+ });
140
+ return sendJson(res, 200, { ok: true });
141
+ }
142
+ res.setHeader('allow', allowedMethods(path.kind).join(', '));
143
+ return sendJson(res, 405, { error: 'method not allowed' });
144
+ }
145
+ async function authorizeHumanOrgMember(req, res, org, deps) {
146
+ const identity = await authorizeControlPlane(req, res, deps.gate, { requireIdentity: true });
147
+ if (identity === false)
148
+ return false;
149
+ if (!identity.superAdmin &&
150
+ !(await deps.controlPlane.isOrgMember({ org, subject: identity.subject }))) {
151
+ sendJson(res, 404, { error: 'not found' });
152
+ return false;
153
+ }
154
+ return identity;
155
+ }
156
+ async function parseBody(req, res, maxBody, schema) {
157
+ const body = await readJsonBody(req, maxBody);
158
+ if (!body.ok) {
159
+ sendJson(res, body.status, { error: body.error });
160
+ return undefined;
161
+ }
162
+ const parsed = schema.safeParse(body.value);
163
+ if (!parsed.success) {
164
+ sendJson(res, 400, { error: 'invalid service-principal request' });
165
+ return undefined;
166
+ }
167
+ return parsed.data;
168
+ }
169
+ async function credentialAudit(audit, identity, org, credential) {
170
+ await emit(audit, 'service_principal.credential.created', identity, org, {
171
+ principalId: credential.principalId,
172
+ credentialId: credential.credentialId,
173
+ kind: credential.kind,
174
+ });
175
+ }
176
+ function emit(audit, eventType, identity, org, details) {
177
+ return audit.emit({
178
+ eventType,
179
+ org,
180
+ actorSubject: identity.subject,
181
+ actorEmail: identity.email,
182
+ decision: 'allow',
183
+ status: 200,
184
+ details,
185
+ });
186
+ }
187
+ function allowedMethods(kind) {
188
+ if (kind === 'collection')
189
+ return ['GET', 'POST'];
190
+ if (kind === 'principal')
191
+ return ['GET', 'DELETE'];
192
+ if (kind === 'grants' || kind === 'credentials')
193
+ return ['POST'];
194
+ return ['DELETE'];
195
+ }
196
+ function safeMutationError(error) {
197
+ if (!(error instanceof Error))
198
+ return 'invalid service-principal request';
199
+ return /^(service principal|service-principal|public JWK)/.test(error.message)
200
+ ? error.message
201
+ : 'invalid service-principal request';
202
+ }
203
+ //# sourceMappingURL=service-principals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-principals.js","sourceRoot":"","sources":["../../src/routes/service-principals.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAyCtD,OAAO,EAEL,KAAK,oCAAoC,EAC1C,MAAM,2CAA2C,CAAC;AAkBnD,OAAO,EAAE,KAAK,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAyC9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,4FAA4F;IAC5F,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,4FAA4F;IAC5F,QAAQ,CAAC,iCAAiC,CAAC,EAAE,oCAAoC,CAAC;IAClF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,iGAAiG;AACjG,wBAAsB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CA4pB7F"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAyCtD,OAAO,EAEL,KAAK,oCAAoC,EAC1C,MAAM,2CAA2C,CAAC;AAkBnD,OAAO,EAAE,KAAK,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAyC9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,4FAA4F;IAC5F,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,4FAA4F;IAC5F,QAAQ,CAAC,iCAAiC,CAAC,EAAE,oCAAoC,CAAC;IAClF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,iGAAiG;AACjG,wBAAsB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiqB7F"}
@@ -377,8 +377,9 @@ export async function serveService(options = {}) {
377
377
  ...(platformIdentityStore === undefined ? {} : { platformIdentityStore }),
378
378
  platformAuth,
379
379
  registry: () => registry,
380
+ audit: moduleHost.audit,
380
381
  });
381
- const { authServerApp, verifyOwnerToken: resolvedVerifyOwnerToken, authServerIssuer: resolvedAuthServerIssuer, oauthStore, developerGrantStore, delegatedExchange, rawCustomerVerifierFactory, } = oauthBootstrap;
382
+ const { authServerApp, verifyOwnerToken: resolvedVerifyOwnerToken, authServerIssuer: resolvedAuthServerIssuer, oauthStore, developerGrantStore, servicePrincipalRuntime, oauthClientCredentialsReady, delegatedExchange, rawCustomerVerifierFactory, } = oauthBootstrap;
382
383
  const localDevtoolsDelegatedCredentialSource = oauthStore === undefined &&
383
384
  (options.localDevtoolsDirectFirebaseAuth === true ||
384
385
  options.localDevtoolsDirectMicrosoftAuth === true)
@@ -535,6 +536,8 @@ export async function serveService(options = {}) {
535
536
  readinessProbe,
536
537
  controlPlaneStore,
537
538
  ...(developerGrantStore !== undefined ? { developerGrantStore } : {}),
539
+ ...(servicePrincipalRuntime !== undefined ? { servicePrincipalRuntime } : {}),
540
+ ...(oauthClientCredentialsReady ? { oauthClientCredentialsReady: true } : {}),
538
541
  ...(billingMigrationStore !== undefined ? { billingMigrationStore } : {}),
539
542
  ...(billingEnforcementProfileStore !== undefined ? { billingEnforcementProfileStore } : {}),
540
543
  ...(billingEnforcementActivationStore !== undefined
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { AuditSink } from '@noodle-borg/module';
2
+ import type { HostedToolAuthorizationObserver, HostedToolDispatchHook, Logger } from '@noodle-borg/transport-http';
3
+ /** Compose both machine-specific hooks without growing the service composition root. */
4
+ export declare function servicePrincipalDataPlaneHooks(next: HostedToolDispatchHook | undefined, audit: AuditSink, logger: Logger): {
5
+ readonly beforeToolDispatch: HostedToolDispatchHook;
6
+ readonly observeToolAuthorization: HostedToolAuthorizationObserver;
7
+ };
8
+ /** Emit one bounded authorization decision without making audit availability part of MCP admission. */
9
+ export declare function createServicePrincipalToolAuthorizationAudit(audit: AuditSink, logger: Logger): HostedToolAuthorizationObserver;
10
+ /** Preserve the existing usage decision exactly, adding one best-effort audit for an allowed machine call. */
11
+ export declare function withServicePrincipalToolCallAudit(next: HostedToolDispatchHook | undefined, audit: AuditSink, logger: Logger): HostedToolDispatchHook;
12
+ //# sourceMappingURL=service-principal-data-plane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-principal-data-plane.d.ts","sourceRoot":"","sources":["../src/service-principal-data-plane.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EACV,+BAA+B,EAC/B,sBAAsB,EACtB,MAAM,EACP,MAAM,6BAA6B,CAAC;AAErC,wFAAwF;AACxF,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,sBAAsB,GAAG,SAAS,EACxC,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb;IACD,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IACpD,QAAQ,CAAC,wBAAwB,EAAE,+BAA+B,CAAC;CACpE,CAKA;AAED,uGAAuG;AACvG,wBAAgB,4CAA4C,CAC1D,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,+BAA+B,CA0BjC;AAED,8GAA8G;AAC9G,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,sBAAsB,GAAG,SAAS,EACxC,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,sBAAsB,CAsBxB"}
@@ -0,0 +1,71 @@
1
+ /** Compose both machine-specific hooks without growing the service composition root. */
2
+ export function servicePrincipalDataPlaneHooks(next, audit, logger) {
3
+ return {
4
+ beforeToolDispatch: withServicePrincipalToolCallAudit(next, audit, logger),
5
+ observeToolAuthorization: createServicePrincipalToolAuthorizationAudit(audit, logger),
6
+ };
7
+ }
8
+ /** Emit one bounded authorization decision without making audit availability part of MCP admission. */
9
+ export function createServicePrincipalToolAuthorizationAudit(audit, logger) {
10
+ return async (observation) => {
11
+ if (observation.org === undefined)
12
+ return;
13
+ try {
14
+ await audit.emit({
15
+ eventType: 'service_principal.tool.authorization',
16
+ org: observation.org,
17
+ ...(observation.app === undefined ? {} : { app: observation.app }),
18
+ ...(observation.environment === undefined ? {} : { env: observation.environment }),
19
+ ...(observation.deploymentId === undefined
20
+ ? {}
21
+ : { deploymentId: observation.deploymentId }),
22
+ actorSubject: observation.subject,
23
+ decision: observation.decision,
24
+ status: observation.decision === 'allow' ? 200 : 403,
25
+ reasonCode: observation.reason,
26
+ details: {
27
+ toolName: observation.toolName,
28
+ ruleClass: observation.ruleClass,
29
+ ruleFingerprint: observation.ruleFingerprint,
30
+ },
31
+ });
32
+ }
33
+ catch {
34
+ warnAuditFailure(logger, observation.org, observation.toolName, 'authorization');
35
+ }
36
+ };
37
+ }
38
+ /** Preserve the existing usage decision exactly, adding one best-effort audit for an allowed machine call. */
39
+ export function withServicePrincipalToolCallAudit(next, audit, logger) {
40
+ return async (context) => {
41
+ const decision = next === undefined ? { allow: true } : await next(context);
42
+ if (decision.allow && context.caller?.identityKind === 'service') {
43
+ try {
44
+ await audit.emit({
45
+ eventType: 'service_principal.tool.called',
46
+ org: context.org,
47
+ app: context.app,
48
+ env: context.environment,
49
+ deploymentId: context.deploymentId,
50
+ actorSubject: context.caller.subject,
51
+ decision: 'allow',
52
+ status: 200,
53
+ details: { toolName: context.toolName },
54
+ });
55
+ }
56
+ catch {
57
+ warnAuditFailure(logger, context.org, context.toolName, 'call');
58
+ }
59
+ }
60
+ return decision;
61
+ };
62
+ }
63
+ function warnAuditFailure(logger, org, toolName, phase) {
64
+ try {
65
+ logger.warn('service_principal.tool.audit_failed', { org, toolName, phase });
66
+ }
67
+ catch {
68
+ // Audit diagnostics never participate in authorization or connector dispatch.
69
+ }
70
+ }
71
+ //# sourceMappingURL=service-principal-data-plane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-principal-data-plane.js","sourceRoot":"","sources":["../src/service-principal-data-plane.ts"],"names":[],"mappings":"AAOA,wFAAwF;AACxF,MAAM,UAAU,8BAA8B,CAC5C,IAAwC,EACxC,KAAgB,EAChB,MAAc;IAKd,OAAO;QACL,kBAAkB,EAAE,iCAAiC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;QAC1E,wBAAwB,EAAE,4CAA4C,CAAC,KAAK,EAAE,MAAM,CAAC;KACtF,CAAC;AACJ,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,4CAA4C,CAC1D,KAAgB,EAChB,MAAc;IAEd,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE;QAC3B,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS;YAAE,OAAO;QAC1C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,sCAAsC;gBACjD,GAAG,EAAE,WAAW,CAAC,GAAG;gBACpB,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;gBAClE,GAAG,CAAC,WAAW,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC;gBAClF,GAAG,CAAC,WAAW,CAAC,YAAY,KAAK,SAAS;oBACxC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC/C,YAAY,EAAE,WAAW,CAAC,OAAO;gBACjC,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,MAAM,EAAE,WAAW,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;gBACpD,UAAU,EAAE,WAAW,CAAC,MAAM;gBAC9B,OAAO,EAAE;oBACP,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,SAAS,EAAE,WAAW,CAAC,SAAS;oBAChC,eAAe,EAAE,WAAW,CAAC,eAAe;iBAC7C;aACF,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnF,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,iCAAiC,CAC/C,IAAwC,EACxC,KAAgB,EAChB,MAAc;IAEd,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,IAAI,EAAY,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QACvF,IAAI,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;YACjE,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,IAAI,CAAC;oBACf,SAAS,EAAE,+BAA+B;oBAC1C,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,GAAG,EAAE,OAAO,CAAC,WAAW;oBACxB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;oBACpC,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;iBACxC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAc,EACd,GAAW,EACX,QAAgB,EAChB,KAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;IAChF,CAAC;AACH,CAAC"}
@@ -1,8 +1,6 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
2
  import type { ServiceOptions } from './options.js';
3
3
  import type { ServerRegistry } from './registry.js';
4
- /**
5
- * The combined service listener: tenant-scoped deploy management plus the multi-tenant MCP router.
6
- */
4
+ /** The combined service listener: tenant-scoped deploy management plus the multi-tenant MCP router. */
7
5
  export declare function createServiceHandler(registry: ServerRegistry, options?: ServiceOptions): (req: IncomingMessage, res: ServerResponse) => void;
8
6
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA2BjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAoDpD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,cAAmB,GAC3B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CA6rBrD"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA2BjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAsDpD,uGAAuG;AACvG,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,cAAmB,GAC3B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAmsBrD"}
@@ -50,6 +50,8 @@ import { dispatchPrivatePlatformAuthRoutes } from './routes/private-platform-aut
50
50
  import { dispatchProtectedResourceMetadata } from './routes/protected-resource-metadata.js';
51
51
  import { dispatchResourceReads } from './routes/resource-read-dispatch.js';
52
52
  import { handleRollback } from './routes/rollback.js';
53
+ import { createServicePrincipalDispatcher } from './routes/service-principals-dispatch.js';
54
+ import { servicePrincipalDataPlaneHooks } from './service-principal-data-plane.js';
53
55
  import { BUILTIN_STATE_CATALOG_CONNECTOR } from './state-catalog.js';
54
56
  import { InMemoryAlertRuleStore } from './store/alert-rules.js';
55
57
  import { StdoutAuditSink } from './store/audit.js';
@@ -58,9 +60,7 @@ import { InMemoryGithubConnectionStore } from './store/github-connections.js';
58
60
  import { InMemoryGithubDeployRunStore } from './store/github-runs.js';
59
61
  const DEFAULT_MAX_BODY = 1 << 20;
60
62
  const DEFAULT_MAX_DEPLOY_BODY = 32 * 1024 * 1024;
61
- /**
62
- * The combined service listener: tenant-scoped deploy management plus the multi-tenant MCP router.
63
- */
63
+ /** The combined service listener: tenant-scoped deploy management plus the multi-tenant MCP router. */
64
64
  export function createServiceHandler(registry, options = {}) {
65
65
  const logger = options.logger ?? noopLogger;
66
66
  const tls = options.tls ?? {};
@@ -124,7 +124,8 @@ export function createServiceHandler(registry, options = {}) {
124
124
  ? {}
125
125
  : { confirmationNonceLedger: options.mcpConfirmationNonceLedger }),
126
126
  resolveInvocationContext: createMcpInvocationContextResolver(options.clock),
127
- ...(billingUsage.dispatch !== undefined ? { beforeToolDispatch: billingUsage.dispatch } : {}),
127
+ ...servicePrincipalDataPlaneHooks(billingUsage.dispatch, activeAudit, logger),
128
+ ...(options.oauthClientCredentialsReady ? { oauthClientCredentialsReady: true } : {}),
128
129
  ...(options.captureRequestEvent !== undefined
129
130
  ? { captureRequestEvent: options.captureRequestEvent }
130
131
  : {}),
@@ -148,6 +149,7 @@ export function createServiceHandler(registry, options = {}) {
148
149
  const maxBody = options.maxBodyBytes ?? DEFAULT_MAX_BODY;
149
150
  const maxDeployBody = options.maxDeployBodyBytes ?? DEFAULT_MAX_DEPLOY_BODY;
150
151
  const gate = options.deployGate ?? allowAllGate();
152
+ const servicePrincipalDispatcher = createServicePrincipalDispatcher(registry, options.servicePrincipalRuntime, { gate, controlPlane, audit: activeAudit, maxBody, logger, tls });
151
153
  const feedbackLimiter = new FeedbackRateLimiter(options.clock);
152
154
  const commercialRouteDeps = createCommercialServiceDeps({
153
155
  options,
@@ -266,6 +268,8 @@ export function createServiceHandler(registry, options = {}) {
266
268
  ...(advanced ? { modules: capabilityReport.modules } : {}),
267
269
  });
268
270
  }
271
+ if (servicePrincipalDispatcher?.(req, res, url))
272
+ return;
269
273
  if (dispatchAssistantRoutes(req, res, url, {
270
274
  registry,
271
275
  store: assistantStore,