local-serverless-stack 0.17.2 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/CHANGELOG.md +327 -0
  2. package/README.md +1155 -221
  3. package/assets/icon.svg +37 -0
  4. package/assets/logo.svg +38 -0
  5. package/bin/cli.js +519 -228
  6. package/bin/i18n.js +525 -0
  7. package/dist/client/config-discovery.d.ts.map +1 -1
  8. package/dist/client/config-discovery.js +2 -1
  9. package/dist/client/config-discovery.js.map +1 -1
  10. package/dist/client/http.d.ts +7 -0
  11. package/dist/client/http.d.ts.map +1 -1
  12. package/dist/client/http.js +3 -2
  13. package/dist/client/http.js.map +1 -1
  14. package/dist/client/lifecycle.d.ts +1 -4
  15. package/dist/client/lifecycle.d.ts.map +1 -1
  16. package/dist/client/lifecycle.js +2 -8
  17. package/dist/client/lifecycle.js.map +1 -1
  18. package/dist/client/namespaces/health.d.ts +1 -1
  19. package/dist/client/namespaces/health.d.ts.map +1 -1
  20. package/dist/client/namespaces/queues.d.ts.map +1 -1
  21. package/dist/client/namespaces/queues.js +9 -0
  22. package/dist/client/namespaces/queues.js.map +1 -1
  23. package/dist/client/namespaces/seeds.d.ts +1 -1
  24. package/dist/client/namespaces/services.d.ts +34 -0
  25. package/dist/client/namespaces/services.d.ts.map +1 -1
  26. package/dist/client/namespaces/services.js +3 -0
  27. package/dist/client/namespaces/services.js.map +1 -1
  28. package/dist/client/types.d.ts +17 -5
  29. package/dist/client/types.d.ts.map +1 -1
  30. package/dist/mcp/http.d.ts +15 -0
  31. package/dist/mcp/http.d.ts.map +1 -0
  32. package/dist/mcp/http.js +86 -0
  33. package/dist/mcp/http.js.map +1 -0
  34. package/dist/mcp/protocol.d.ts +36 -0
  35. package/dist/mcp/protocol.d.ts.map +1 -0
  36. package/dist/mcp/protocol.js +96 -0
  37. package/dist/mcp/protocol.js.map +1 -0
  38. package/dist/mcp/server.d.ts +7 -0
  39. package/dist/mcp/server.d.ts.map +1 -0
  40. package/dist/mcp/server.js +41 -0
  41. package/dist/mcp/server.js.map +1 -0
  42. package/dist/mcp/tools.d.ts +18 -0
  43. package/dist/mcp/tools.d.ts.map +1 -0
  44. package/dist/mcp/tools.js +323 -0
  45. package/dist/mcp/tools.js.map +1 -0
  46. package/dist/server/dev/dynamo-proxy.d.ts.map +1 -1
  47. package/dist/server/dev/dynamo-proxy.js +16 -2
  48. package/dist/server/dev/dynamo-proxy.js.map +1 -1
  49. package/dist/server/engine/backends/self-backend.d.ts +11 -2
  50. package/dist/server/engine/backends/self-backend.d.ts.map +1 -1
  51. package/dist/server/engine/backends/self-backend.js +42 -1
  52. package/dist/server/engine/backends/self-backend.js.map +1 -1
  53. package/dist/server/engine/dispatch/dispatcher.js +2 -2
  54. package/dist/server/engine/dispatch/dispatcher.js.map +1 -1
  55. package/dist/server/engine/engine-manager.d.ts +6 -1
  56. package/dist/server/engine/engine-manager.d.ts.map +1 -1
  57. package/dist/server/engine/engine-manager.js +30 -27
  58. package/dist/server/engine/engine-manager.js.map +1 -1
  59. package/dist/server/engine/http/errors.js +1 -1
  60. package/dist/server/engine/http/errors.js.map +1 -1
  61. package/dist/server/engine/http/is-aws-request.d.ts +8 -0
  62. package/dist/server/engine/http/is-aws-request.d.ts.map +1 -0
  63. package/dist/server/engine/http/is-aws-request.js +53 -0
  64. package/dist/server/engine/http/is-aws-request.js.map +1 -0
  65. package/dist/server/engine/http/router.d.ts.map +1 -1
  66. package/dist/server/engine/http/router.js +7 -1
  67. package/dist/server/engine/http/router.js.map +1 -1
  68. package/dist/server/engine/store/engine-store.d.ts +1 -0
  69. package/dist/server/engine/store/engine-store.d.ts.map +1 -1
  70. package/dist/server/engine/store/engine-store.js +2 -1
  71. package/dist/server/engine/store/engine-store.js.map +1 -1
  72. package/dist/server/engine/store/memory-store.d.ts +16 -0
  73. package/dist/server/engine/store/memory-store.d.ts.map +1 -0
  74. package/dist/server/engine/store/memory-store.js +167 -0
  75. package/dist/server/engine/store/memory-store.js.map +1 -0
  76. package/dist/server/engine/store/wal.d.ts +3 -0
  77. package/dist/server/engine/store/wal.d.ts.map +1 -1
  78. package/dist/server/engine/store/wal.js +35 -1
  79. package/dist/server/engine/store/wal.js.map +1 -1
  80. package/dist/server/index.js +159 -44
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server/routes/config.d.ts.map +1 -1
  83. package/dist/server/routes/config.js +31 -52
  84. package/dist/server/routes/config.js.map +1 -1
  85. package/dist/server/routes/lambdas.d.ts.map +1 -1
  86. package/dist/server/routes/lambdas.js +77 -0
  87. package/dist/server/routes/lambdas.js.map +1 -1
  88. package/dist/server/routes/services.d.ts.map +1 -1
  89. package/dist/server/routes/services.js +288 -24
  90. package/dist/server/routes/services.js.map +1 -1
  91. package/dist/server/runtime/runtime-worker.js +7 -0
  92. package/dist/server/runtime/runtime-worker.js.map +1 -1
  93. package/dist/server/services/bind-host.d.ts +30 -0
  94. package/dist/server/services/bind-host.d.ts.map +1 -0
  95. package/dist/server/services/bind-host.js +182 -0
  96. package/dist/server/services/bind-host.js.map +1 -0
  97. package/dist/server/services/cache-manager.d.ts +7 -1
  98. package/dist/server/services/cache-manager.d.ts.map +1 -1
  99. package/dist/server/services/cache-manager.js +4 -14
  100. package/dist/server/services/cache-manager.js.map +1 -1
  101. package/dist/server/services/cloudformation-parser.js +3 -3
  102. package/dist/server/services/cloudformation-parser.js.map +1 -1
  103. package/dist/server/services/config-manager.d.ts +53 -35
  104. package/dist/server/services/config-manager.d.ts.map +1 -1
  105. package/dist/server/services/config-manager.js +600 -185
  106. package/dist/server/services/config-manager.js.map +1 -1
  107. package/dist/server/services/dynamo-explorer.d.ts +1 -0
  108. package/dist/server/services/dynamo-explorer.d.ts.map +1 -1
  109. package/dist/server/services/dynamo-explorer.js +28 -6
  110. package/dist/server/services/dynamo-explorer.js.map +1 -1
  111. package/dist/server/services/explorer-region.d.ts +2 -0
  112. package/dist/server/services/explorer-region.d.ts.map +1 -0
  113. package/dist/server/services/explorer-region.js +23 -0
  114. package/dist/server/services/explorer-region.js.map +1 -0
  115. package/dist/server/services/gateway-manager.d.ts.map +1 -1
  116. package/dist/server/services/gateway-manager.js +18 -5
  117. package/dist/server/services/gateway-manager.js.map +1 -1
  118. package/dist/server/services/invocation-activity.d.ts +45 -0
  119. package/dist/server/services/invocation-activity.d.ts.map +1 -0
  120. package/dist/server/services/invocation-activity.js +102 -0
  121. package/dist/server/services/invocation-activity.js.map +1 -0
  122. package/dist/server/services/lambda-runtime-manager.d.ts +8 -1
  123. package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
  124. package/dist/server/services/lambda-runtime-manager.js +131 -11
  125. package/dist/server/services/lambda-runtime-manager.js.map +1 -1
  126. package/dist/server/services/opensearch-explorer.d.ts.map +1 -1
  127. package/dist/server/services/opensearch-explorer.js +14 -10
  128. package/dist/server/services/opensearch-explorer.js.map +1 -1
  129. package/dist/server/services/project-scope.d.ts +2 -0
  130. package/dist/server/services/project-scope.d.ts.map +1 -0
  131. package/dist/server/services/project-scope.js +23 -0
  132. package/dist/server/services/project-scope.js.map +1 -0
  133. package/dist/server/services/queue-inspector.d.ts.map +1 -1
  134. package/dist/server/services/queue-inspector.js +15 -6
  135. package/dist/server/services/queue-inspector.js.map +1 -1
  136. package/dist/server/services/resource-provisioner.d.ts +19 -3
  137. package/dist/server/services/resource-provisioner.d.ts.map +1 -1
  138. package/dist/server/services/resource-provisioner.js +153 -26
  139. package/dist/server/services/resource-provisioner.js.map +1 -1
  140. package/dist/server/services/s3-explorer.js +4 -4
  141. package/dist/server/services/s3-explorer.js.map +1 -1
  142. package/dist/server/services/secrets-explorer.d.ts.map +1 -1
  143. package/dist/server/services/secrets-explorer.js +10 -3
  144. package/dist/server/services/secrets-explorer.js.map +1 -1
  145. package/dist/server/services/seed-manager.d.ts.map +1 -1
  146. package/dist/server/services/seed-manager.js +28 -14
  147. package/dist/server/services/seed-manager.js.map +1 -1
  148. package/dist/server/services/serverless-state-parser.d.ts +10 -0
  149. package/dist/server/services/serverless-state-parser.d.ts.map +1 -1
  150. package/dist/server/services/serverless-state-parser.js +20 -1
  151. package/dist/server/services/serverless-state-parser.js.map +1 -1
  152. package/dist/server/services/service-registrar.d.ts +13 -1
  153. package/dist/server/services/service-registrar.d.ts.map +1 -1
  154. package/dist/server/services/service-registrar.js +80 -16
  155. package/dist/server/services/service-registrar.js.map +1 -1
  156. package/dist/server/services/service-scanner.d.ts +25 -0
  157. package/dist/server/services/service-scanner.d.ts.map +1 -0
  158. package/dist/server/services/service-scanner.js +219 -0
  159. package/dist/server/services/service-scanner.js.map +1 -0
  160. package/dist/server/services/source-watcher.d.ts.map +1 -1
  161. package/dist/server/services/source-watcher.js +31 -6
  162. package/dist/server/services/source-watcher.js.map +1 -1
  163. package/dist/ui/assets/ApisPage-CTOcNna-.js +1 -0
  164. package/dist/ui/assets/BucketDetailPage-BXW8-FrE.js +1 -0
  165. package/dist/ui/assets/BucketsPage-DY_ITepb.js +1 -0
  166. package/dist/ui/assets/DynamoPage-BnFFKnIU.js +1 -0
  167. package/dist/ui/assets/DynamoTablePage-BLCuyJHU.js +3 -0
  168. package/dist/ui/assets/LambdaDetailPage-D4rZNLRT.js +4 -0
  169. package/dist/ui/assets/LambdasPage-Bg-MWFBb.js +1 -0
  170. package/dist/ui/assets/OnboardingPage-nnl313Fm.js +1 -0
  171. package/dist/ui/assets/OpenSearchCollectionPage-Dn15lH_F.js +1 -0
  172. package/dist/ui/assets/OpenSearchPage-CgD5isok.js +1 -0
  173. package/dist/ui/assets/{OverviewPage-DS6XJ7kG.css → OverviewPage-CSWY71vZ.css} +1 -1
  174. package/dist/ui/assets/OverviewPage-m5sUr8IN.js +1 -0
  175. package/dist/ui/assets/QueueDetailPage-Ch_FDDoN.js +1 -0
  176. package/dist/ui/assets/QueuesPage-C_yDuGDu.js +1 -0
  177. package/dist/ui/assets/SecretsPage-BSGMSoqy.js +1 -0
  178. package/dist/ui/assets/ServiceDetailPage-6KyohyjI.js +2 -0
  179. package/dist/ui/assets/ServicesPage-BbSetOMo.js +2 -0
  180. package/dist/ui/assets/SettingsPage-BgF1jFr6.js +1 -0
  181. package/dist/ui/assets/engine-D0mFFNbL.js +1 -0
  182. package/dist/ui/assets/index-D627ZyYU.css +1 -0
  183. package/dist/ui/assets/index-DuSPnI19.js +37 -0
  184. package/dist/ui/assets/onboarding-DQmlvyWU.js +1 -0
  185. package/dist/ui/assets/resourceIcons-baecADXA.js +1 -0
  186. package/dist/ui/assets/triggerIcons-DIPWQkJ3.js +1 -0
  187. package/dist/ui/favicon.svg +37 -0
  188. package/dist/ui/index.html +5 -3
  189. package/package.json +11 -11
  190. package/dist/server/engine/aoss-sidecar.d.ts +0 -13
  191. package/dist/server/engine/aoss-sidecar.d.ts.map +0 -1
  192. package/dist/server/engine/aoss-sidecar.js +0 -93
  193. package/dist/server/engine/aoss-sidecar.js.map +0 -1
  194. package/dist/server/engine/backends/localstack-backend.d.ts +0 -25
  195. package/dist/server/engine/backends/localstack-backend.d.ts.map +0 -1
  196. package/dist/server/engine/backends/localstack-backend.js +0 -199
  197. package/dist/server/engine/backends/localstack-backend.js.map +0 -1
  198. package/dist/server/engine/engine-backend.d.ts +0 -17
  199. package/dist/server/engine/engine-backend.d.ts.map +0 -1
  200. package/dist/server/engine/engine-backend.js +0 -7
  201. package/dist/server/engine/engine-backend.js.map +0 -1
  202. package/dist/server/services/localstack-manager.d.ts +0 -17
  203. package/dist/server/services/localstack-manager.d.ts.map +0 -1
  204. package/dist/server/services/localstack-manager.js +0 -31
  205. package/dist/server/services/localstack-manager.js.map +0 -1
  206. package/dist/ui/assets/ApisPage-CXYcWDhm.js +0 -1
  207. package/dist/ui/assets/BucketDetailPage-BwS2--Pe.js +0 -1
  208. package/dist/ui/assets/BucketsPage-khuiYc9C.js +0 -1
  209. package/dist/ui/assets/DynamoPage-aYo0QC0N.js +0 -1
  210. package/dist/ui/assets/DynamoTablePage-rFuV2pgd.js +0 -3
  211. package/dist/ui/assets/LambdaDetailPage-CJmu8M_N.js +0 -4
  212. package/dist/ui/assets/LambdasPage-DniNyKMe.js +0 -1
  213. package/dist/ui/assets/OpenSearchCollectionPage-BBwjgbB9.js +0 -1
  214. package/dist/ui/assets/OpenSearchPage-D5RxJGRo.js +0 -1
  215. package/dist/ui/assets/OverviewPage-Cyt1Xdp8.js +0 -1
  216. package/dist/ui/assets/QueueDetailPage-3FPsowIp.js +0 -1
  217. package/dist/ui/assets/QueuesPage-CUoDDgHr.js +0 -1
  218. package/dist/ui/assets/SecretsPage-B_mTnUf3.js +0 -1
  219. package/dist/ui/assets/ServiceDetailPage-BcdSjA6e.js +0 -2
  220. package/dist/ui/assets/ServicesPage-CU6fb3f8.js +0 -2
  221. package/dist/ui/assets/SettingsPage-BG8cYxgC.js +0 -1
  222. package/dist/ui/assets/index-BxwA-UT0.css +0 -1
  223. package/dist/ui/assets/index-DGsXIPJ-.js +0 -37
  224. package/packages/serverless-plugin/README.md +0 -115
  225. package/packages/serverless-plugin/dist/index.d.ts +0 -2
  226. package/packages/serverless-plugin/dist/index.d.ts.map +0 -1
  227. package/packages/serverless-plugin/dist/index.js +0 -107
  228. package/packages/serverless-plugin/dist/index.js.map +0 -1
@@ -1,11 +1,14 @@
1
1
  import { Router } from 'express';
2
2
  import path from 'path';
3
+ import fs from 'fs';
3
4
  import { CloudFormationParser } from '../services/cloudformation-parser.js';
5
+ import { runServerlessPackage, ServerlessPackageError } from '../services/serverless-packager.js';
4
6
  import { CacheManager } from '../services/cache-manager.js';
5
7
  import { ResourceProvisioner } from '../services/resource-provisioner.js';
6
8
  import { ProcessManager } from '../services/process-manager.js';
7
- import { ConfigManager } from '../services/config-manager.js';
8
9
  import { ServiceRegistrar, RegistrationError } from '../services/service-registrar.js';
10
+ import { ConfigManager } from '../services/config-manager.js';
11
+ import { scanForServices } from '../services/service-scanner.js';
9
12
  import { LambdaRuntimeManager } from '../services/lambda-runtime-manager.js';
10
13
  import { GatewayManager } from '../services/gateway-manager.js';
11
14
  import { SourceWatcher } from '../services/source-watcher.js';
@@ -14,7 +17,6 @@ const parser = new CloudFormationParser();
14
17
  const cache = new CacheManager();
15
18
  const provisioner = ResourceProvisioner.getInstance();
16
19
  const processManager = new ProcessManager();
17
- const configManager = ConfigManager.getInstance();
18
20
  // Initialize cache on first request (lazy init)
19
21
  let cacheInitialized = false;
20
22
  async function ensureCacheInit() {
@@ -31,21 +33,10 @@ router.post('/register', async (req, res) => {
31
33
  if (!servicePath) {
32
34
  return res.status(400).json({ error: 'servicePath is required' });
33
35
  }
34
- // Region priority: Serverless Framework > lss.config.json > default
35
- const effectiveRegion = region || configManager.getConfig().region || 'us-east-1';
36
+ // Ports and region resolve inside the registrar (request > packaged
37
+ // serverless-state hints > lss.config.json > defaults) — a bare
38
+ // { servicePath } is a complete registration.
36
39
  console.log(`📝 Registering service from ${servicePath}`);
37
- console.log(` Invoke port: ${invokePort || 'not specified'}`);
38
- console.log(` API port: ${apiPort || 'not specified'}`);
39
- console.log(` Region: ${effectiveRegion}`);
40
- if (region) {
41
- console.log(` Region source: Serverless Framework configuration`);
42
- }
43
- else if (configManager.getConfig().region) {
44
- console.log(` Region source: lss.config.json`);
45
- }
46
- else {
47
- console.log(` Region source: default`);
48
- }
49
40
  // Validate servicePath to prevent path traversal
50
41
  const resolvedPath = path.resolve(servicePath);
51
42
  if (resolvedPath.includes('..') || !resolvedPath.startsWith('/')) {
@@ -111,6 +102,9 @@ router.get('/', async (_req, res) => {
111
102
  functionsCount: s.functions?.length ?? 0,
112
103
  routesCount: s.routes?.length ?? 0,
113
104
  runtimeStatus: runtime.status,
105
+ // Whether a worker process is actually alive — false means the
106
+ // service is ready but not yet forked (lazy start / idle unload).
107
+ runtimeWarm: runtime.warm ?? false,
114
108
  gateway,
115
109
  };
116
110
  }));
@@ -121,6 +115,256 @@ router.get('/', async (_req, res) => {
121
115
  return res.status(500).json({ error: 'Failed to list services' });
122
116
  }
123
117
  });
118
+ // Discover Serverless/osls services under the project root, so onboarding and
119
+ // `lss scan` can offer them for registration. Registered BEFORE /:name — the
120
+ // path would otherwise match as a service called "scan".
121
+ router.get('/scan', async (_req, res) => {
122
+ try {
123
+ await ensureCacheInit();
124
+ const registeredServices = await cache.listServices();
125
+ const byRoot = new Map(registeredServices.map(s => [path.resolve(s.root), s]));
126
+ const cm = ConfigManager.getInstance();
127
+ const projectRoot = cm.getProjectRoot();
128
+ // Overlay the config on the yml hints: `serviceRuntime` ports win (same
129
+ // precedence registration applies), and the effective package command is
130
+ // what onboarding shows/edits (a `servicePackaging` entry, else global).
131
+ const services = scanForServices(projectRoot, [...byRoot.keys()], {
132
+ isIgnored: dir => cm.isScanIgnored(dir),
133
+ autoPackage: cm.isAutoPackage(),
134
+ }).map(svc => {
135
+ const runtime = cm.getRuntimeConfigForService(svc.root);
136
+ // For a service already registered, the packaged state has settled what
137
+ // the yml scrape could only guess — prefer it.
138
+ const cached = byRoot.get(path.resolve(svc.root));
139
+ return {
140
+ ...svc,
141
+ apiPort: runtime.apiPort ?? svc.apiPort,
142
+ invokePort: runtime.invokePort ?? svc.invokePort,
143
+ packageCommand: cm.getPackageConfigForService(svc.root).command,
144
+ hasFunctions: cached ? (cached.functions?.length ?? 0) > 0 : svc.hasFunctions,
145
+ routeCount: cached?.routes?.length,
146
+ };
147
+ });
148
+ return res.json({ projectRoot, services });
149
+ }
150
+ catch (error) {
151
+ console.error('Error scanning for services:', error);
152
+ return res.status(500).json({ error: 'Failed to scan for services' });
153
+ }
154
+ });
155
+ // Resolve every symlink in a path, or null when it cannot be resolved
156
+ // (ENOENT on a missing component, EACCES on an unreadable one). Mirrors the
157
+ // `realpathOrSelf` idiom ConfigManager uses, but the caller here needs to tell
158
+ // "does not resolve" apart from "resolves to itself" — an unresolvable path is
159
+ // never a service directory.
160
+ function realPathOrNull(target) {
161
+ try {
162
+ return fs.realpathSync(target);
163
+ }
164
+ catch {
165
+ return null;
166
+ }
167
+ }
168
+ // Resolve and sanity-check the servicePath both preparation endpoints take.
169
+ // Returns the REAL directory, or answers the response and returns null.
170
+ //
171
+ // The path is confined to the project root: these endpoints run commands on
172
+ // the host, and every legitimate caller (the dashboard onboarding, `lss`)
173
+ // works from `GET /scan`, which never looks outside it. Without the fence the
174
+ // pair would be an arbitrary-directory execution surface for anything that can
175
+ // reach the port.
176
+ //
177
+ // The fence compares REAL paths, not lexical ones: `path.relative()` only
178
+ // looks at the string, so a symlink sitting inside the project root but
179
+ // pointing outside it (`services/orders` -> `/etc`) satisfies a lexical check
180
+ // while statSync — and the spawn that follows — happily walk through it.
181
+ // Resolving both sides first means the comparison is about where the path
182
+ // actually lands, and the resolved path is what is handed to the runner, which
183
+ // also shrinks the window between the check and the spawn.
184
+ function resolveServiceDir(res, servicePath) {
185
+ if (!servicePath || typeof servicePath !== 'string') {
186
+ res.status(400).json({ error: 'servicePath is required' });
187
+ return null;
188
+ }
189
+ const resolved = path.resolve(servicePath);
190
+ if (resolved.includes('..') || !resolved.startsWith('/')) {
191
+ res.status(400).json({ error: 'Invalid service path' });
192
+ return null;
193
+ }
194
+ const projectRoot = ConfigManager.getInstance().getProjectRoot();
195
+ // `getProjectRoot()` already realpath-resolves, so this is belt-and-braces
196
+ // for a root that comes from configuration: a root that cannot be resolved
197
+ // is a misconfiguration rather than a caller error, so it keeps its lexical
198
+ // form and still fences (nothing real can sit under a path that does not
199
+ // exist, so every candidate is rejected below).
200
+ const realRoot = realPathOrNull(projectRoot) ?? projectRoot;
201
+ const realDir = realPathOrNull(resolved);
202
+ if (!realDir) {
203
+ res.status(400).json({ error: `Not a directory: ${resolved}` });
204
+ return null;
205
+ }
206
+ const relative = path.relative(realRoot, realDir);
207
+ if (relative.startsWith('..') || path.isAbsolute(relative)) {
208
+ res.status(400).json({ error: `Service path must be inside the project root (${projectRoot})` });
209
+ return null;
210
+ }
211
+ // realpathSync + statSync are still two syscalls: the directory can vanish
212
+ // between them, and statSync throws on EACCES. A throw inside an async
213
+ // handler is an unhandled rejection that answers nothing and takes the
214
+ // process down under Node's default policy, so it is treated as "not a
215
+ // directory" here — the same reasoning as before, now one syscall later.
216
+ let isDirectory = false;
217
+ try {
218
+ isDirectory = fs.statSync(realDir).isDirectory();
219
+ }
220
+ catch {
221
+ isDirectory = false;
222
+ }
223
+ if (!isDirectory) {
224
+ res.status(400).json({ error: `Not a directory: ${resolved}` });
225
+ return null;
226
+ }
227
+ return realDir;
228
+ }
229
+ // Keep the last chunk of a long install/package log — the tail is where the
230
+ // error is, and the dashboard only has room for a summary.
231
+ function outputTail(stdout, stderr, limit = 8000) {
232
+ const combined = [stdout, stderr].filter(Boolean).join('\n').trim();
233
+ return combined.length > limit ? `…${combined.slice(-limit)}` : combined;
234
+ }
235
+ // A package manager installing the dependencies already declared in the
236
+ // service's own manifest — nothing else. The check is on the command's SHAPE,
237
+ // not just its first token: `node -e "<js>"`, `npm exec -- <anything>` and
238
+ // `npm install <some-package>` are all unrepresentable, so a caller cannot
239
+ // turn the endpoint into a general command runner. (Install lifecycle scripts
240
+ // from the checked-out project still run, exactly as they would in a
241
+ // terminal — that is what installing a project means.)
242
+ const INSTALL_RUNNERS = ['npm', 'yarn', 'pnpm'];
243
+ const INSTALL_VERBS = ['install', 'ci', 'i', 'add'];
244
+ // The flags an install may carry, as an ALLOWLIST — anything else is denied.
245
+ // "Every token after the verb starts with a dash" is not a check: a flag is not
246
+ // inert, it carries a value, and the dangerous ones look exactly like the
247
+ // harmless ones.
248
+ // --registry=http://attacker.example redirects WHERE THE CODE COMES FROM,
249
+ // and its install scripts then run here
250
+ // --userconfig=/tmp/evil.npmrc swaps the whole npmrc (registry + auth)
251
+ // --prefix=/tmp/x --cwd=/etc --dir=/etc
252
+ // relocate the install and so defeat the
253
+ // project-root fence resolveServiceDir
254
+ // applies one layer up
255
+ // Deny-listing those cannot close the class — three package managers keep
256
+ // adding flags, and every new one would be allowed by default. So only the
257
+ // flags a real caller needs to say "install what this service declares"
258
+ // survive, and none of them names a location.
259
+ const INSTALL_ALLOWED_FLAGS = new Set([
260
+ // Which dependency groups to install.
261
+ '--production',
262
+ // Lockfile strictness, in the npm/yarn/pnpm spellings.
263
+ '--frozen-lockfile', '--no-frozen-lockfile', '--immutable',
264
+ // Resolution/network behaviour that stays within the configured registry.
265
+ '--no-audit', '--no-fund', '--prefer-offline', '--offline', '--legacy-peer-deps', '--force',
266
+ // Verbosity.
267
+ '--silent', '--quiet',
268
+ ]);
269
+ // Flags accepted both bare (`--omit`) and value-carrying (`--omit=dev`). The
270
+ // value is unconstrained on purpose: these name a dependency group
271
+ // (dev/optional/peer) or a log level, so an unexpected one makes the package
272
+ // manager complain — it can never point the install at another location or
273
+ // another registry, which is the only property the allowlist exists to defend.
274
+ const INSTALL_ALLOWED_VALUE_FLAGS = new Set(['--omit', '--include', '--loglevel']);
275
+ function installCommandError(command) {
276
+ const [runner, verb, ...rest] = command.split(/\s+/);
277
+ if (!INSTALL_RUNNERS.includes(runner)) {
278
+ return `Command not allowed — must start with one of: ${INSTALL_RUNNERS.join(', ')}`;
279
+ }
280
+ // `yarn`/`pnpm` with no verb install; npm needs one.
281
+ if (verb === undefined) {
282
+ return runner === 'npm' ? 'Command not allowed — npm needs an install subcommand' : null;
283
+ }
284
+ if (!INSTALL_VERBS.includes(verb)) {
285
+ return `Command not allowed — subcommand must be one of: ${INSTALL_VERBS.join(', ')}`;
286
+ }
287
+ for (const token of rest) {
288
+ // A positional would be a package name (or worse) rather than "install
289
+ // what this service declares" — including the value of a space-separated
290
+ // flag (`--omit dev`), which is why only the `--flag=value` spelling gets
291
+ // through.
292
+ if (!token.startsWith('-')) {
293
+ return `Command not allowed — unexpected argument "${token}"`;
294
+ }
295
+ // Match `--flag=value` on its name; a short flag (`-g`, `-D`) has no '='
296
+ // and appears in neither list, so it is rejected here as well.
297
+ const flag = token.split('=')[0];
298
+ if (!INSTALL_ALLOWED_FLAGS.has(token) && !INSTALL_ALLOWED_VALUE_FLAGS.has(flag)) {
299
+ return `Command not allowed — flag not permitted: "${flag}"`;
300
+ }
301
+ }
302
+ return null;
303
+ }
304
+ // Install a service's dependencies, so onboarding can prepare a freshly cloned
305
+ // service (packaging fails without node_modules).
306
+ router.post('/install', async (req, res) => {
307
+ const dir = resolveServiceDir(res, req.body?.servicePath);
308
+ if (!dir)
309
+ return;
310
+ const command = typeof req.body?.command === 'string' && req.body.command.trim()
311
+ ? req.body.command.trim()
312
+ : 'npm install';
313
+ const commandError = installCommandError(command);
314
+ if (commandError) {
315
+ return res.status(400).json({ error: commandError });
316
+ }
317
+ console.log(`📥 Installing dependencies in ${dir} ('${command}')`);
318
+ const startedAt = Date.now();
319
+ try {
320
+ const result = await runServerlessPackage({
321
+ command,
322
+ cwd: dir,
323
+ timeoutMs: ConfigManager.getInstance().getPackageConfigForService(dir).timeoutMs,
324
+ });
325
+ return res.json({ success: true, exitCode: result.exitCode, durationMs: Date.now() - startedAt, output: outputTail(result.stdout, result.stderr) });
326
+ }
327
+ catch (error) {
328
+ if (error instanceof ServerlessPackageError) {
329
+ return res.status(422).json({ error: error.message, exitCode: error.result.exitCode, output: outputTail(error.result.stdout, error.result.stderr) });
330
+ }
331
+ const message = error instanceof Error ? error.message : 'Unknown error';
332
+ return res.status(500).json({ error: message });
333
+ }
334
+ });
335
+ // Package a service with its effective package command (global config merged
336
+ // with any `servicePackaging` override for this path) — the manual counterpart
337
+ // of what autoPackage does inside /register.
338
+ router.post('/package', async (req, res) => {
339
+ const dir = resolveServiceDir(res, req.body?.servicePath);
340
+ if (!dir)
341
+ return;
342
+ const pkg = ConfigManager.getInstance().getPackageConfigForService(dir);
343
+ const displayCmd = [pkg.command, ...pkg.args].join(' ');
344
+ console.log(`📦 Packaging ${dir} ('${displayCmd}' in ${pkg.cwd})`);
345
+ const startedAt = Date.now();
346
+ try {
347
+ const result = await runServerlessPackage({
348
+ command: pkg.command,
349
+ args: pkg.args,
350
+ env: pkg.env,
351
+ // `packageCwd` may point the command at a directory above the service
352
+ // (a root-level script packaging a resources-only stack); it is fenced to
353
+ // the project root by ConfigManager, the same fence resolveServiceDir
354
+ // applies to the request's own path.
355
+ cwd: pkg.cwd,
356
+ timeoutMs: pkg.timeoutMs,
357
+ });
358
+ return res.json({ success: true, exitCode: result.exitCode, durationMs: Date.now() - startedAt, output: outputTail(result.stdout, result.stderr) });
359
+ }
360
+ catch (error) {
361
+ if (error instanceof ServerlessPackageError) {
362
+ return res.status(422).json({ error: error.message, exitCode: error.result.exitCode, output: outputTail(error.result.stdout, error.result.stderr) });
363
+ }
364
+ const message = error instanceof Error ? error.message : 'Unknown error';
365
+ return res.status(500).json({ error: message });
366
+ }
367
+ });
124
368
  // Get service details
125
369
  router.get('/:name', async (req, res) => {
126
370
  try {
@@ -198,6 +442,18 @@ router.patch('/:name/status', async (req, res) => {
198
442
  return res.status(500).json({ error: 'Failed to update service status' });
199
443
  }
200
444
  });
445
+ // Which npm script `stage` may select. It is interpolated into the script name
446
+ // `start:${stage}` and handed to spawn() as one argv element — never a shell
447
+ // string — so this is not about shell injection: it constrains WHICH script of
448
+ // the service's own package.json a caller can pick, keeping the request from
449
+ // naming a path (`start:../../thing`) or smuggling a second argv token past a
450
+ // layer that splits on whitespace.
451
+ const STAGE_PATTERN = /^[A-Za-z0-9._-]+$/;
452
+ // Only package managers. The argv below is always the `run <script>` idiom, so
453
+ // `node`/`npx` cannot even express it (`node run start` is meaningless) — and
454
+ // they are exactly what turned this endpoint into an execution primitive:
455
+ // `node -e "<any js>"` used to be a valid body.
456
+ const START_RUNNERS = ['npm', 'yarn', 'pnpm'];
201
457
  // Start a service process (serverless offline / npm start)
202
458
  router.post('/:name/start', async (req, res) => {
203
459
  try {
@@ -210,18 +466,26 @@ router.post('/:name/start', async (req, res) => {
210
466
  if (!metadata) {
211
467
  return res.status(404).json({ error: 'Service not found' });
212
468
  }
213
- const { cwd, command, args, env, stage } = req.body || {};
214
- // Validate command whitelist
215
- const allowedCommands = ['npm', 'npx', 'yarn', 'node'];
216
- if (command && !allowedCommands.includes(command)) {
469
+ // The server decides WHAT runs; the request only selects which service, and
470
+ // optionally which package manager and which start script. `cwd`, `args`
471
+ // and `env` used to come from the body and go straight into spawn(), which
472
+ // made this a general command runner for anything able to reach the port —
473
+ // no auth, `cors()` wide open, the listener bound to every interface, and
474
+ // the service names handed out by GET /api/services. They are not read at
475
+ // all now; no caller in the dashboard, the client or the CLI ever sent them.
476
+ const { command, stage } = req.body || {};
477
+ if (stage && (typeof stage !== 'string' || !STAGE_PATTERN.test(stage))) {
478
+ return res.status(400).json({ error: 'Invalid stage' });
479
+ }
480
+ // Message kept verbatim — it is the documented answer for this rejection.
481
+ if (command && !START_RUNNERS.includes(command)) {
217
482
  return res.status(400).json({ error: 'Command not allowed' });
218
483
  }
219
- const runArgs = args && Array.isArray(args) && args.length > 0 ? args : ['run', stage ? `start:${stage}` : 'start'];
220
484
  const result = processManager.start(serviceName, {
221
- cwd: cwd || metadata.root,
485
+ // Always the registered root: the only directory this service is.
486
+ cwd: metadata.root,
222
487
  command,
223
- args: runArgs,
224
- env,
488
+ args: ['run', stage ? `start:${stage}` : 'start'],
225
489
  });
226
490
  await cache.updateMetadata(serviceName, { status: 'running', pid: result.pid || undefined });
227
491
  return res.json({ success: true, pid: result.pid, status: result.status });
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/server/routes/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/server/routes/services.ts"],"names":[],"mappings":"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"}
@@ -184,6 +184,9 @@ async function handleInvoke(msg) {
184
184
  process.env.AWS_ACCESS_KEY_ID = 'test';
185
185
  if (!process.env.AWS_SECRET_ACCESS_KEY)
186
186
  process.env.AWS_SECRET_ACCESS_KEY = 'test';
187
+ // Set once the handler is in the module cache — which is what makes this
188
+ // function "resident", and is not the same as the worker being up.
189
+ let loadedFunction;
187
190
  const reply = (result) => {
188
191
  capture.flush(logs);
189
192
  const message = {
@@ -191,6 +194,7 @@ async function handleInvoke(msg) {
191
194
  invokeId: msg.invokeId,
192
195
  logs,
193
196
  durationMs: Date.now() - startedAt,
197
+ loadedFunction,
194
198
  ...result,
195
199
  };
196
200
  process.send?.(message);
@@ -198,6 +202,9 @@ async function handleInvoke(msg) {
198
202
  activeLogs.add(logs);
199
203
  try {
200
204
  const handler = await loadHandler(msg);
205
+ // Reported even when the handler then throws: it IS loaded, and a failing
206
+ // handler that stays resident is exactly what an operator needs to see.
207
+ loadedFunction = msg.functionName;
201
208
  const context = buildContext(msg, deadline, requestId);
202
209
  const timeout = new Promise((_, reject) => {
203
210
  const timer = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-worker.js","sourceRoot":"","sources":["../../../src/server/runtime/runtime-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-worker.js","sourceRoot":"","sources":["../../../src/server/runtime/runtime-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The address to pass as the `host` argument of every `server.listen()` in this
3
+ * process. Never omit that argument — omitting it is what binds every
4
+ * interface.
5
+ */
6
+ export declare function getBindHost(): string;
7
+ /**
8
+ * True when `host` can only accept connections that originate on this machine.
9
+ * Everything else — `0.0.0.0`, `::`, a LAN address, a routable hostname — is
10
+ * reachable from the network. The whole `127.0.0.0/8` block is loopback, and
11
+ * `::ffff:127.x.x.x` is that same address seen through a dual-stack socket.
12
+ */
13
+ export declare function isLoopbackBind(host: string): boolean;
14
+ /**
15
+ * Whether a browser origin may call this API cross-origin — the predicate the
16
+ * `cors` middleware in `src/server/index.ts` consults.
17
+ */
18
+ export declare function isOriginAllowed(origin: string | undefined): boolean;
19
+ /**
20
+ * The boot banner's exposure warning, or `null` when the process is in the safe
21
+ * default posture (loopback bind + loopback-only CORS).
22
+ *
23
+ * Widening either half must never be something you did and did not notice: this
24
+ * API has no authentication and runs commands on this host, so the operator sees
25
+ * exactly what they opened on **every** boot, not once in a changelog. One
26
+ * warning covers the whole process — the bind it names is the one every listener
27
+ * uses, resolved above.
28
+ */
29
+ export declare function getExposureWarning(): string | null;
30
+ //# sourceMappingURL=bind-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bind-host.d.ts","sourceRoot":"","sources":["../../../src/server/services/bind-host.ts"],"names":[],"mappings":"AA6DA;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpD;AA8DD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAWnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CA2BlD"}