local-serverless-stack 0.6.0 → 0.9.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 (257) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/README.md +261 -583
  3. package/bin/cli.js +31 -3
  4. package/dist/client/types.d.ts +4 -0
  5. package/dist/client/types.d.ts.map +1 -1
  6. package/dist/server/engine/aoss-sidecar.d.ts +13 -0
  7. package/dist/server/engine/aoss-sidecar.d.ts.map +1 -0
  8. package/dist/server/engine/aoss-sidecar.js +93 -0
  9. package/dist/server/engine/aoss-sidecar.js.map +1 -0
  10. package/dist/server/engine/backends/localstack-backend.d.ts +25 -0
  11. package/dist/server/engine/backends/localstack-backend.d.ts.map +1 -0
  12. package/dist/server/engine/backends/localstack-backend.js +199 -0
  13. package/dist/server/engine/backends/localstack-backend.js.map +1 -0
  14. package/dist/server/engine/backends/self-backend.d.ts +32 -0
  15. package/dist/server/engine/backends/self-backend.d.ts.map +1 -0
  16. package/dist/server/engine/backends/self-backend.js +207 -0
  17. package/dist/server/engine/backends/self-backend.js.map +1 -0
  18. package/dist/server/engine/bus.d.ts +10 -0
  19. package/dist/server/engine/bus.d.ts.map +1 -0
  20. package/dist/server/engine/bus.js +24 -0
  21. package/dist/server/engine/bus.js.map +1 -0
  22. package/dist/server/engine/dispatch/dispatcher.d.ts +46 -0
  23. package/dist/server/engine/dispatch/dispatcher.d.ts.map +1 -0
  24. package/dist/server/engine/dispatch/dispatcher.js +312 -0
  25. package/dist/server/engine/dispatch/dispatcher.js.map +1 -0
  26. package/dist/server/engine/dispatch/scheduler.d.ts +47 -0
  27. package/dist/server/engine/dispatch/scheduler.d.ts.map +1 -0
  28. package/dist/server/engine/dispatch/scheduler.js +328 -0
  29. package/dist/server/engine/dispatch/scheduler.js.map +1 -0
  30. package/dist/server/engine/dispatch/sqs-poller.d.ts +25 -0
  31. package/dist/server/engine/dispatch/sqs-poller.d.ts.map +1 -0
  32. package/dist/server/engine/dispatch/sqs-poller.js +242 -0
  33. package/dist/server/engine/dispatch/sqs-poller.js.map +1 -0
  34. package/dist/server/engine/dispatch/stream-tailer.d.ts +22 -0
  35. package/dist/server/engine/dispatch/stream-tailer.d.ts.map +1 -0
  36. package/dist/server/engine/dispatch/stream-tailer.js +205 -0
  37. package/dist/server/engine/dispatch/stream-tailer.js.map +1 -0
  38. package/dist/server/engine/emulators/dynamodb/expressions/decimal.d.ts +5 -0
  39. package/dist/server/engine/emulators/dynamodb/expressions/decimal.d.ts.map +1 -0
  40. package/dist/server/engine/emulators/dynamodb/expressions/decimal.js +91 -0
  41. package/dist/server/engine/emulators/dynamodb/expressions/decimal.js.map +1 -0
  42. package/dist/server/engine/emulators/dynamodb/expressions/evaluate.d.ts +24 -0
  43. package/dist/server/engine/emulators/dynamodb/expressions/evaluate.d.ts.map +1 -0
  44. package/dist/server/engine/emulators/dynamodb/expressions/evaluate.js +183 -0
  45. package/dist/server/engine/emulators/dynamodb/expressions/evaluate.js.map +1 -0
  46. package/dist/server/engine/emulators/dynamodb/expressions/expression-types.d.ts +29 -0
  47. package/dist/server/engine/emulators/dynamodb/expressions/expression-types.d.ts.map +1 -0
  48. package/dist/server/engine/emulators/dynamodb/expressions/expression-types.js +12 -0
  49. package/dist/server/engine/emulators/dynamodb/expressions/expression-types.js.map +1 -0
  50. package/dist/server/engine/emulators/dynamodb/expressions/index.d.ts +13 -0
  51. package/dist/server/engine/emulators/dynamodb/expressions/index.d.ts.map +1 -0
  52. package/dist/server/engine/emulators/dynamodb/expressions/index.js +244 -0
  53. package/dist/server/engine/emulators/dynamodb/expressions/index.js.map +1 -0
  54. package/dist/server/engine/emulators/dynamodb/expressions/lexer.d.ts +11 -0
  55. package/dist/server/engine/emulators/dynamodb/expressions/lexer.d.ts.map +1 -0
  56. package/dist/server/engine/emulators/dynamodb/expressions/lexer.js +109 -0
  57. package/dist/server/engine/emulators/dynamodb/expressions/lexer.js.map +1 -0
  58. package/dist/server/engine/emulators/dynamodb/expressions/parser.d.ts +23 -0
  59. package/dist/server/engine/emulators/dynamodb/expressions/parser.d.ts.map +1 -0
  60. package/dist/server/engine/emulators/dynamodb/expressions/parser.js +541 -0
  61. package/dist/server/engine/emulators/dynamodb/expressions/parser.js.map +1 -0
  62. package/dist/server/engine/emulators/dynamodb/index.d.ts +46 -0
  63. package/dist/server/engine/emulators/dynamodb/index.d.ts.map +1 -0
  64. package/dist/server/engine/emulators/dynamodb/index.js +572 -0
  65. package/dist/server/engine/emulators/dynamodb/index.js.map +1 -0
  66. package/dist/server/engine/emulators/dynamodb/query.d.ts +12 -0
  67. package/dist/server/engine/emulators/dynamodb/query.d.ts.map +1 -0
  68. package/dist/server/engine/emulators/dynamodb/query.js +237 -0
  69. package/dist/server/engine/emulators/dynamodb/query.js.map +1 -0
  70. package/dist/server/engine/emulators/dynamodb/schema.d.ts +58 -0
  71. package/dist/server/engine/emulators/dynamodb/schema.d.ts.map +1 -0
  72. package/dist/server/engine/emulators/dynamodb/schema.js +284 -0
  73. package/dist/server/engine/emulators/dynamodb/schema.js.map +1 -0
  74. package/dist/server/engine/emulators/dynamodb/streams.d.ts +28 -0
  75. package/dist/server/engine/emulators/dynamodb/streams.d.ts.map +1 -0
  76. package/dist/server/engine/emulators/dynamodb/streams.js +100 -0
  77. package/dist/server/engine/emulators/dynamodb/streams.js.map +1 -0
  78. package/dist/server/engine/emulators/events/index.d.ts +53 -0
  79. package/dist/server/engine/emulators/events/index.d.ts.map +1 -0
  80. package/dist/server/engine/emulators/events/index.js +417 -0
  81. package/dist/server/engine/emulators/events/index.js.map +1 -0
  82. package/dist/server/engine/emulators/events/pattern.d.ts +3 -0
  83. package/dist/server/engine/emulators/events/pattern.d.ts.map +1 -0
  84. package/dist/server/engine/emulators/events/pattern.js +125 -0
  85. package/dist/server/engine/emulators/events/pattern.js.map +1 -0
  86. package/dist/server/engine/emulators/lambda-ctl/index.d.ts +55 -0
  87. package/dist/server/engine/emulators/lambda-ctl/index.d.ts.map +1 -0
  88. package/dist/server/engine/emulators/lambda-ctl/index.js +461 -0
  89. package/dist/server/engine/emulators/lambda-ctl/index.js.map +1 -0
  90. package/dist/server/engine/emulators/opensearch/index.d.ts +67 -0
  91. package/dist/server/engine/emulators/opensearch/index.d.ts.map +1 -0
  92. package/dist/server/engine/emulators/opensearch/index.js +811 -0
  93. package/dist/server/engine/emulators/opensearch/index.js.map +1 -0
  94. package/dist/server/engine/emulators/opensearch/search.d.ts +17 -0
  95. package/dist/server/engine/emulators/opensearch/search.d.ts.map +1 -0
  96. package/dist/server/engine/emulators/opensearch/search.js +434 -0
  97. package/dist/server/engine/emulators/opensearch/search.js.map +1 -0
  98. package/dist/server/engine/emulators/s3/index.d.ts +45 -0
  99. package/dist/server/engine/emulators/s3/index.d.ts.map +1 -0
  100. package/dist/server/engine/emulators/s3/index.js +591 -0
  101. package/dist/server/engine/emulators/s3/index.js.map +1 -0
  102. package/dist/server/engine/emulators/sns/index.d.ts +22 -0
  103. package/dist/server/engine/emulators/sns/index.d.ts.map +1 -0
  104. package/dist/server/engine/emulators/sns/index.js +135 -0
  105. package/dist/server/engine/emulators/sns/index.js.map +1 -0
  106. package/dist/server/engine/emulators/sqs/index.d.ts +66 -0
  107. package/dist/server/engine/emulators/sqs/index.d.ts.map +1 -0
  108. package/dist/server/engine/emulators/sqs/index.js +552 -0
  109. package/dist/server/engine/emulators/sqs/index.js.map +1 -0
  110. package/dist/server/engine/emulators/sqs/md5.d.ts +8 -0
  111. package/dist/server/engine/emulators/sqs/md5.d.ts.map +1 -0
  112. package/dist/server/engine/emulators/sqs/md5.js +36 -0
  113. package/dist/server/engine/emulators/sqs/md5.js.map +1 -0
  114. package/dist/server/engine/emulators/sqs/queue.d.ts +105 -0
  115. package/dist/server/engine/emulators/sqs/queue.d.ts.map +1 -0
  116. package/dist/server/engine/emulators/sqs/queue.js +371 -0
  117. package/dist/server/engine/emulators/sqs/queue.js.map +1 -0
  118. package/dist/server/engine/emulators/sts.d.ts +8 -0
  119. package/dist/server/engine/emulators/sts.d.ts.map +1 -0
  120. package/dist/server/engine/emulators/sts.js +23 -0
  121. package/dist/server/engine/emulators/sts.js.map +1 -0
  122. package/dist/server/engine/engine-backend.d.ts +17 -0
  123. package/dist/server/engine/engine-backend.d.ts.map +1 -0
  124. package/dist/server/engine/engine-backend.js +7 -0
  125. package/dist/server/engine/engine-backend.js.map +1 -0
  126. package/dist/server/engine/engine-manager.d.ts +22 -0
  127. package/dist/server/engine/engine-manager.d.ts.map +1 -0
  128. package/dist/server/engine/engine-manager.js +74 -0
  129. package/dist/server/engine/engine-manager.js.map +1 -0
  130. package/dist/server/engine/http/aws-chunked.d.ts +3 -0
  131. package/dist/server/engine/http/aws-chunked.d.ts.map +1 -0
  132. package/dist/server/engine/http/aws-chunked.js +50 -0
  133. package/dist/server/engine/http/aws-chunked.js.map +1 -0
  134. package/dist/server/engine/http/errors.d.ts +20 -0
  135. package/dist/server/engine/http/errors.d.ts.map +1 -0
  136. package/dist/server/engine/http/errors.js +43 -0
  137. package/dist/server/engine/http/errors.js.map +1 -0
  138. package/dist/server/engine/http/protocols/aws-json.d.ts +8 -0
  139. package/dist/server/engine/http/protocols/aws-json.d.ts.map +1 -0
  140. package/dist/server/engine/http/protocols/aws-json.js +42 -0
  141. package/dist/server/engine/http/protocols/aws-json.js.map +1 -0
  142. package/dist/server/engine/http/protocols/query-xml.d.ts +7 -0
  143. package/dist/server/engine/http/protocols/query-xml.d.ts.map +1 -0
  144. package/dist/server/engine/http/protocols/query-xml.js +35 -0
  145. package/dist/server/engine/http/protocols/query-xml.js.map +1 -0
  146. package/dist/server/engine/http/router.d.ts +8 -0
  147. package/dist/server/engine/http/router.d.ts.map +1 -0
  148. package/dist/server/engine/http/router.js +402 -0
  149. package/dist/server/engine/http/router.js.map +1 -0
  150. package/dist/server/engine/http/sigv4.d.ts +9 -0
  151. package/dist/server/engine/http/sigv4.d.ts.map +1 -0
  152. package/dist/server/engine/http/sigv4.js +33 -0
  153. package/dist/server/engine/http/sigv4.js.map +1 -0
  154. package/dist/server/engine/http/xml.d.ts +16 -0
  155. package/dist/server/engine/http/xml.d.ts.map +1 -0
  156. package/dist/server/engine/http/xml.js +92 -0
  157. package/dist/server/engine/http/xml.js.map +1 -0
  158. package/dist/server/engine/store/atomic.d.ts +4 -0
  159. package/dist/server/engine/store/atomic.d.ts.map +1 -0
  160. package/dist/server/engine/store/atomic.js +35 -0
  161. package/dist/server/engine/store/atomic.js.map +1 -0
  162. package/dist/server/engine/store/engine-store.d.ts +9 -0
  163. package/dist/server/engine/store/engine-store.d.ts.map +1 -0
  164. package/dist/server/engine/store/engine-store.js +218 -0
  165. package/dist/server/engine/store/engine-store.js.map +1 -0
  166. package/dist/server/engine/store/store-types.d.ts +37 -0
  167. package/dist/server/engine/store/store-types.d.ts.map +1 -0
  168. package/dist/server/engine/store/store-types.js +17 -0
  169. package/dist/server/engine/store/store-types.js.map +1 -0
  170. package/dist/server/engine/store/wal.d.ts +49 -0
  171. package/dist/server/engine/store/wal.d.ts.map +1 -0
  172. package/dist/server/engine/store/wal.js +328 -0
  173. package/dist/server/engine/store/wal.js.map +1 -0
  174. package/dist/server/engine/types.d.ts +137 -0
  175. package/dist/server/engine/types.d.ts.map +1 -0
  176. package/dist/server/engine/types.js +8 -0
  177. package/dist/server/engine/types.js.map +1 -0
  178. package/dist/server/index.js +43 -9
  179. package/dist/server/index.js.map +1 -1
  180. package/dist/server/routes/config.d.ts.map +1 -1
  181. package/dist/server/routes/config.js +16 -0
  182. package/dist/server/routes/config.js.map +1 -1
  183. package/dist/server/routes/opensearch.d.ts +3 -0
  184. package/dist/server/routes/opensearch.d.ts.map +1 -0
  185. package/dist/server/routes/opensearch.js +69 -0
  186. package/dist/server/routes/opensearch.js.map +1 -0
  187. package/dist/server/routes/resources.d.ts.map +1 -1
  188. package/dist/server/routes/resources.js +4 -1
  189. package/dist/server/routes/resources.js.map +1 -1
  190. package/dist/server/routes/services.d.ts.map +1 -1
  191. package/dist/server/routes/services.js +3 -0
  192. package/dist/server/routes/services.js.map +1 -1
  193. package/dist/server/services/cache-manager.d.ts +2 -1
  194. package/dist/server/services/cache-manager.d.ts.map +1 -1
  195. package/dist/server/services/cache-manager.js +22 -2
  196. package/dist/server/services/cache-manager.js.map +1 -1
  197. package/dist/server/services/cloudformation-parser.d.ts +35 -2
  198. package/dist/server/services/cloudformation-parser.d.ts.map +1 -1
  199. package/dist/server/services/cloudformation-parser.js +88 -3
  200. package/dist/server/services/cloudformation-parser.js.map +1 -1
  201. package/dist/server/services/config-manager.d.ts +82 -0
  202. package/dist/server/services/config-manager.d.ts.map +1 -1
  203. package/dist/server/services/config-manager.js +151 -7
  204. package/dist/server/services/config-manager.js.map +1 -1
  205. package/dist/server/services/gateway-manager.d.ts +2 -0
  206. package/dist/server/services/gateway-manager.d.ts.map +1 -1
  207. package/dist/server/services/gateway-manager.js +44 -6
  208. package/dist/server/services/gateway-manager.js.map +1 -1
  209. package/dist/server/services/localstack-manager.d.ts +0 -7
  210. package/dist/server/services/localstack-manager.d.ts.map +1 -1
  211. package/dist/server/services/localstack-manager.js +11 -173
  212. package/dist/server/services/localstack-manager.js.map +1 -1
  213. package/dist/server/services/opensearch-explorer.d.ts +37 -0
  214. package/dist/server/services/opensearch-explorer.d.ts.map +1 -0
  215. package/dist/server/services/opensearch-explorer.js +124 -0
  216. package/dist/server/services/opensearch-explorer.js.map +1 -0
  217. package/dist/server/services/resource-provisioner.d.ts +13 -0
  218. package/dist/server/services/resource-provisioner.d.ts.map +1 -1
  219. package/dist/server/services/resource-provisioner.js +257 -11
  220. package/dist/server/services/resource-provisioner.js.map +1 -1
  221. package/dist/server/services/service-registrar.d.ts +1 -0
  222. package/dist/server/services/service-registrar.d.ts.map +1 -1
  223. package/dist/server/services/service-registrar.js +19 -4
  224. package/dist/server/services/service-registrar.js.map +1 -1
  225. package/dist/ui/assets/ApisPage-C0xaNFQW.js +1 -0
  226. package/dist/ui/assets/BucketDetailPage-Bnny8S04.js +1 -0
  227. package/dist/ui/assets/BucketsPage-Dd3Y4-gU.js +1 -0
  228. package/dist/ui/assets/{DynamoPage-B1__Rjr2.js → DynamoPage-JzSF-4VI.js} +1 -1
  229. package/dist/ui/assets/DynamoTablePage-uM0DXGCo.js +3 -0
  230. package/dist/ui/assets/LambdaDetailPage-CoR9ZXdb.js +4 -0
  231. package/dist/ui/assets/LambdasPage-CNMX_O5P.js +1 -0
  232. package/dist/ui/assets/OpenSearchCollectionPage-D5FaSCF1.js +1 -0
  233. package/dist/ui/assets/OpenSearchPage-FEzLxaej.js +1 -0
  234. package/dist/ui/assets/OverviewPage-0xvjT7Q0.js +1 -0
  235. package/dist/ui/assets/OverviewPage-qEl0a-0B.css +1 -0
  236. package/dist/ui/assets/QueueDetailPage-B2GaNLLe.js +1 -0
  237. package/dist/ui/assets/QueuesPage-Ch5kGwrp.js +1 -0
  238. package/dist/ui/assets/ServiceDetailPage-DKiz21oo.js +2 -0
  239. package/dist/ui/assets/ServicesPage-Cmi3UIfM.js +2 -0
  240. package/dist/ui/assets/index-DH7RTkRh.css +1 -0
  241. package/dist/ui/assets/index-MF9fVrsr.js +37 -0
  242. package/dist/ui/index.html +2 -2
  243. package/package.json +3 -1
  244. package/dist/ui/assets/ApisPage-DdgKjEdS.js +0 -1
  245. package/dist/ui/assets/BucketDetailPage-DZQGxm0y.js +0 -1
  246. package/dist/ui/assets/BucketsPage-xYXzxCvd.js +0 -1
  247. package/dist/ui/assets/DynamoTablePage-BCoxPdXW.js +0 -3
  248. package/dist/ui/assets/LambdaDetailPage-B85CA8tb.js +0 -4
  249. package/dist/ui/assets/LambdasPage-_TtxQMT_.js +0 -1
  250. package/dist/ui/assets/OverviewPage-6jDXV1jr.css +0 -1
  251. package/dist/ui/assets/OverviewPage-CqTKTY64.js +0 -1
  252. package/dist/ui/assets/QueueDetailPage-BOr_sImA.js +0 -1
  253. package/dist/ui/assets/QueuesPage-DpByfcM5.js +0 -1
  254. package/dist/ui/assets/ServiceDetailPage-DsWgV-ad.js +0 -2
  255. package/dist/ui/assets/ServicesPage-CGlpsj98.js +0 -2
  256. package/dist/ui/assets/index-BWlB542w.js +0 -36
  257. package/dist/ui/assets/index-EYnsoJOq.css +0 -1
@@ -4,10 +4,20 @@ import { SNSClient, CreateTopicCommand, ListTopicsCommand, DeleteTopicCommand }
4
4
  import { S3Client, CreateBucketCommand, ListBucketsCommand, DeleteBucketCommand, PutBucketVersioningCommand, PutBucketNotificationConfigurationCommand, ListObjectsV2Command, DeleteObjectCommand, } from '@aws-sdk/client-s3';
5
5
  import { LambdaClient, CreateFunctionCommand, GetFunctionCommand, DeleteFunctionCommand, AddPermissionCommand, UpdateFunctionConfigurationCommand } from '@aws-sdk/client-lambda';
6
6
  import { CreateEventSourceMappingCommand, ListEventSourceMappingsCommand, DeleteEventSourceMappingCommand } from '@aws-sdk/client-lambda';
7
+ import { EventBridgeClient, CreateEventBusCommand, DeleteEventBusCommand, PutRuleCommand, PutTargetsCommand, RemoveTargetsCommand, DeleteRuleCommand, } from '@aws-sdk/client-eventbridge';
8
+ import { OpenSearchServerlessClient, CreateCollectionCommand, BatchGetCollectionCommand, DeleteCollectionCommand, ListCollectionsCommand, } from '@aws-sdk/client-opensearchserverless';
7
9
  import { LocalStackManager } from './localstack-manager.js';
8
10
  import { ConfigManager } from './config-manager.js';
9
11
  import { SeedManager } from './seed-manager.js';
10
12
  import AdmZip from 'adm-zip';
13
+ // Which base endpoint aoss clients (and the collection data-plane URLs LSS
14
+ // logs) must target: the in-process sidecar when it is enabled — no LocalStack
15
+ // edition provides aoss — else the active engine (the self engine serves aoss
16
+ // natively). Exported so tests can pin the choice directly.
17
+ export function aossEndpoint(config, engineEndpoint) {
18
+ const sidecar = config.getAossSidecarConfig();
19
+ return sidecar.enabled ? sidecar.endpoint : engineEndpoint;
20
+ }
11
21
  export class ResourceProvisioner {
12
22
  static instance;
13
23
  dynamoClient;
@@ -15,11 +25,13 @@ export class ResourceProvisioner {
15
25
  snsClient;
16
26
  s3Client;
17
27
  lambdaClient;
28
+ eventBridgeClient;
29
+ openSearchClient;
18
30
  currentRegion = 'us-east-1';
19
31
  // CFN logical id → resource snapshot for the service currently being
20
32
  // provisioned. Lets resolveEventSourceArn map Fn::GetAtt references
21
33
  // (e.g. "OrderProcessingQueue") to the real resource name in LocalStack
22
- // (e.g. "pro-sample-microservice-OrderProcessing") even when the user
34
+ // (e.g. "localstack-ultimate-OrderProcessing") even when the user
23
35
  // sets an explicit TableName/QueueName that doesn't match the logical id.
24
36
  resourcesByLogicalId = new Map();
25
37
  constructor() {
@@ -44,6 +56,12 @@ export class ResourceProvisioner {
44
56
  // rather than as a virtual-host subdomain (which resolves to host.docker.internal).
45
57
  this.s3Client = new S3Client({ ...config, forcePathStyle: true });
46
58
  this.lambdaClient = new LambdaClient(config);
59
+ this.eventBridgeClient = new EventBridgeClient(config);
60
+ // aoss lives on the sidecar when enabled, not on the engine endpoint.
61
+ this.openSearchClient = new OpenSearchServerlessClient({
62
+ ...config,
63
+ endpoint: aossEndpoint(ConfigManager.getInstance(), baseConfig.endpoint),
64
+ });
47
65
  }
48
66
  getS3Client() {
49
67
  return this.s3Client;
@@ -93,6 +111,14 @@ export class ResourceProvisioner {
93
111
  await this.createS3Bucket(resource);
94
112
  provisionedCount++;
95
113
  break;
114
+ case 'eventbus':
115
+ await this.createEventBus(resource);
116
+ provisionedCount++;
117
+ break;
118
+ case 'opensearch':
119
+ await this.createOpenSearchCollection(resource);
120
+ provisionedCount++;
121
+ break;
96
122
  }
97
123
  }
98
124
  catch (error) {
@@ -117,6 +143,19 @@ export class ResourceProvisioner {
117
143
  }
118
144
  }
119
145
  }
146
+ // EventBridge rules ride the same proxy model as event source mappings:
147
+ // rule + pattern on the bus → Lambda proxy in LocalStack → LSS invoke API.
148
+ const eventRules = resources.filter(r => r.type === 'event-rule');
149
+ for (const rule of eventRules) {
150
+ try {
151
+ await this.createEventRule(serviceName, rule, invokeUrl);
152
+ provisionedCount++;
153
+ }
154
+ catch (error) {
155
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
156
+ console.error(`Failed to provision event-rule ${rule.name}:`, errorMessage);
157
+ }
158
+ }
120
159
  // Third pass: Wire S3 bucket notifications to Lambda proxies.
121
160
  // Done after event-source pass so proxies created there are available; the
122
161
  // wiring also creates a proxy on demand when only S3 (no SQS/Dynamo) triggers it.
@@ -374,14 +413,13 @@ export const handler = async (event, context) => {
374
413
  const invokeUrl = process.env.INVOKE_URL || '${invokeUrl}';
375
414
  const parsedUrl = url.parse(invokeUrl);
376
415
 
377
- // Transform event based on source
378
- // LocalStack sends events through different sources (SQS, DynamoDB, SNS, etc.)
379
- // We need to pass them correctly to the Serverless Offline handler
416
+ // SQS/DynamoDB/SNS deliver batches under Records; EventBridge delivers the
417
+ // event object itself (source / detail-type / detail) with no wrapper — real
418
+ // AWS Lambda targets read event.detail directly, so wrapping it would break
419
+ // handlers written for production. Wrap only non-EventBridge-shaped events.
380
420
  let transformedEvent = event;
381
-
382
- // If the event already has Records (SQS/DynamoDB/SNS event), use it as is
383
- // Otherwise wrap it in a Records array
384
- if (!event.Records) {
421
+ const isEventBridgeEvent = Boolean(event && event['detail-type'] !== undefined && event.source !== undefined);
422
+ if (!event.Records && !isEventBridgeEvent) {
385
423
  transformedEvent = {
386
424
  Records: [event]
387
425
  };
@@ -435,7 +473,7 @@ export const handler = async (event, context) => {
435
473
  async createEventSourceMapping(serviceName, mapping, invokeUrl) {
436
474
  try {
437
475
  // Use the fully-qualified Lambda name straight from the CFN template
438
- // (e.g. "pro-sample-microservice-dev-processOrderQueue"). This is what
476
+ // (e.g. "localstack-ultimate-dev-processOrderQueue"). This is what
439
477
  // serverless-offline's invoke endpoint (lambdaPort) requires; shorter
440
478
  // forms return 404 "Function not found".
441
479
  const actualFunctionName = this.resolveLambdaName(serviceName, mapping.functionName);
@@ -493,6 +531,122 @@ export const handler = async (event, context) => {
493
531
  }
494
532
  }
495
533
  }
534
+ async createOpenSearchCollection(resource) {
535
+ try {
536
+ await this.openSearchClient.send(new CreateCollectionCommand({
537
+ name: resource.name,
538
+ type: resource.collectionType,
539
+ description: resource.description,
540
+ }));
541
+ // The same base the client above targeted, so the logged data-plane URL
542
+ // is the one that actually answers.
543
+ const base = aossEndpoint(ConfigManager.getInstance(), LocalStackManager.getInstance().getConfig().endpoint);
544
+ const endpoint = `${base}/_aoss/${resource.name}`;
545
+ console.log(` ✓ Created OpenSearch collection: ${resource.name} (endpoint: ${endpoint})`);
546
+ }
547
+ catch (error) {
548
+ if (error?.name === 'ConflictException' || error?.message?.includes('already exist')) {
549
+ console.log(` ⚠ OpenSearch collection already exists: ${resource.name}`);
550
+ }
551
+ else if (error?.message?.includes('not yet implemented') || error?.message?.includes('pro feature')) {
552
+ // LocalStack has no aoss provider (someone disabled the sidecar) — say
553
+ // so instead of surfacing an opaque 501. Matched on the LocalStack
554
+ // message, not the error name, so genuine self-engine failures stay
555
+ // untouched.
556
+ throw new Error(`${error.message} — OpenSearch Serverless needs the self engine ("engine": "self"), ` +
557
+ 'the LSS aoss sidecar (aossSidecar.enabled), or an engine that supports aoss');
558
+ }
559
+ else {
560
+ throw error;
561
+ }
562
+ }
563
+ }
564
+ async createEventBus(resource) {
565
+ try {
566
+ await this.eventBridgeClient.send(new CreateEventBusCommand({ Name: resource.name }));
567
+ console.log(` ✓ Created EventBridge bus: ${resource.name}`);
568
+ }
569
+ catch (error) {
570
+ if (error?.name === 'ResourceAlreadyExistsException') {
571
+ console.log(` ⚠ EventBridge bus already exists: ${resource.name}`);
572
+ }
573
+ else {
574
+ throw error;
575
+ }
576
+ }
577
+ }
578
+ // Resolve a rule's EventBusName: a logical id from the same template maps to
579
+ // the provisioned bus name; anything else is a literal name/ARN, both of
580
+ // which PutRule/PutTargets accept. Undefined targets the default bus.
581
+ resolveEventBusName(busRef) {
582
+ if (!busRef)
583
+ return undefined;
584
+ const direct = this.resourcesByLogicalId.get(busRef);
585
+ if (direct && direct.type === 'eventbus') {
586
+ return direct.name;
587
+ }
588
+ return busRef;
589
+ }
590
+ async createEventRule(serviceName, rule, invokeUrl) {
591
+ if (rule.eventBusUnresolved) {
592
+ // Binding it to the default bus instead would "work" but never match the
593
+ // producers' events — skipping with a warning is the honest failure.
594
+ console.warn(` ⚠ Skipped EventBridge rule ${rule.name}: EventBusName could not be resolved from the template (e.g. Fn::ImportValue).`);
595
+ return;
596
+ }
597
+ const eventBusName = this.resolveEventBusName(rule.eventBusRef);
598
+ // PutRule/PutTargets are upserts, so re-registration is naturally idempotent.
599
+ await this.eventBridgeClient.send(new PutRuleCommand({
600
+ Name: rule.name,
601
+ EventBusName: eventBusName,
602
+ EventPattern: rule.eventPattern ? JSON.stringify(rule.eventPattern) : undefined,
603
+ ScheduleExpression: rule.scheduleExpression,
604
+ State: rule.enabled ? 'ENABLED' : 'DISABLED',
605
+ }));
606
+ console.log(` ✓ Put EventBridge rule: ${rule.name}${eventBusName ? ` (bus: ${eventBusName})` : ''}`);
607
+ const targets = [];
608
+ for (const target of rule.targets) {
609
+ // Targets arrive as logical ids (Fn::GetAtt) or literal Lambda ARNs.
610
+ const actualFunctionName = target.functionRef.startsWith('arn:aws:')
611
+ ? target.functionRef.split(':function:')[1]?.split(':')[0]
612
+ : this.resolveLambdaName(serviceName, target.functionRef);
613
+ if (!actualFunctionName) {
614
+ console.warn(` ⚠ Skipped EventBridge target ${target.id} on rule ${rule.name}: unsupported target ${target.functionRef}`);
615
+ continue;
616
+ }
617
+ await this.ensureLambdaProxyExists(serviceName, actualFunctionName, actualFunctionName, invokeUrl);
618
+ const ruleArn = `arn:aws:events:${this.currentRegion}:000000000000:rule/${eventBusName ? `${eventBusName}/` : ''}${rule.name}`;
619
+ try {
620
+ await this.lambdaClient.send(new AddPermissionCommand({
621
+ FunctionName: actualFunctionName,
622
+ StatementId: `events-invoke-${rule.name}`,
623
+ Action: 'lambda:InvokeFunction',
624
+ Principal: 'events.amazonaws.com',
625
+ SourceArn: ruleArn,
626
+ }));
627
+ }
628
+ catch (error) {
629
+ // ResourceConflictException = statement already exists, which is fine.
630
+ if (error?.name !== 'ResourceConflictException') {
631
+ console.warn(` ⚠ Could not add EventBridge invoke permission for ${actualFunctionName}: ${error?.message || error}`);
632
+ }
633
+ }
634
+ targets.push({
635
+ Id: target.id,
636
+ Arn: `arn:aws:lambda:${this.currentRegion}:000000000000:function:${actualFunctionName}`,
637
+ Input: target.input,
638
+ InputPath: target.inputPath,
639
+ });
640
+ }
641
+ if (targets.length === 0)
642
+ return;
643
+ await this.eventBridgeClient.send(new PutTargetsCommand({
644
+ Rule: rule.name,
645
+ EventBusName: eventBusName,
646
+ Targets: targets,
647
+ }));
648
+ console.log(` ✓ Wired ${targets.length} target(s) on EventBridge rule: ${rule.name}`);
649
+ }
496
650
  async ensureLambdaProxyExists(serviceName, proxyName, invokeName, invokeUrl) {
497
651
  try {
498
652
  // Check if function already exists
@@ -663,13 +817,20 @@ export const handler = async (event, context) => {
663
817
  const s3 = region && region !== this.currentRegion
664
818
  ? new S3Client({ ...config, forcePathStyle: true })
665
819
  : this.s3Client;
666
- const [tables, queues, topics, buckets] = await Promise.all([
820
+ const aoss = region && region !== this.currentRegion
821
+ ? new OpenSearchServerlessClient({
822
+ ...config,
823
+ endpoint: aossEndpoint(ConfigManager.getInstance(), baseConfig.endpoint),
824
+ })
825
+ : this.openSearchClient;
826
+ const [tables, queues, topics, buckets, collections] = await Promise.all([
667
827
  this.listDynamoDBTables(dynamo),
668
828
  this.listSQSQueues(sqs),
669
829
  this.listSNSTopics(sns),
670
830
  this.listS3Buckets(s3),
831
+ this.listOpenSearchCollections(aoss),
671
832
  ]);
672
- return { tables, queues, topics, buckets };
833
+ return { tables, queues, topics, buckets, collections };
673
834
  }
674
835
  async listDynamoDBTables(client = this.dynamoClient) {
675
836
  try {
@@ -710,12 +871,35 @@ export const handler = async (event, context) => {
710
871
  return [];
711
872
  }
712
873
  }
874
+ // Empty on engines without aoss (community LocalStack) — the dashboard just
875
+ // shows zero collections there.
876
+ async listOpenSearchCollections(client = this.openSearchClient) {
877
+ try {
878
+ const response = await client.send(new ListCollectionsCommand({}));
879
+ return response.collectionSummaries?.map(c => c.name || '').filter(n => n !== '') || [];
880
+ }
881
+ catch {
882
+ return [];
883
+ }
884
+ }
713
885
  async cleanupResources(serviceName, resources) {
714
886
  if (!resources || resources.length === 0) {
715
887
  console.log(`No resources to clean up for ${serviceName}`);
716
888
  return;
717
889
  }
890
+ // Rebuild the logical id map so event-rule cleanup can resolve which bus
891
+ // each rule lives on (same lookup provisioning uses).
892
+ this.resourcesByLogicalId.clear();
893
+ for (const r of resources) {
894
+ if ('logicalId' in r && r.logicalId) {
895
+ this.resourcesByLogicalId.set(r.logicalId, r);
896
+ }
897
+ }
718
898
  let cleaned = 0;
899
+ // Buses are deleted after the main loop: EventBridge refuses to delete a
900
+ // bus that still has rules, and template order doesn't guarantee the rules
901
+ // come first.
902
+ const eventBuses = [];
719
903
  for (const resource of resources) {
720
904
  try {
721
905
  switch (resource.type) {
@@ -735,6 +919,17 @@ export const handler = async (event, context) => {
735
919
  await this.deleteS3Bucket(resource.name);
736
920
  cleaned++;
737
921
  break;
922
+ case 'eventbus':
923
+ eventBuses.push(resource);
924
+ break;
925
+ case 'event-rule':
926
+ await this.deleteEventRule(resource);
927
+ cleaned++;
928
+ break;
929
+ case 'opensearch':
930
+ await this.deleteOpenSearchCollection(resource.name);
931
+ cleaned++;
932
+ break;
738
933
  case 'event-source':
739
934
  await this.deleteEventSourceMapping(serviceName, resource.functionName);
740
935
  cleaned++;
@@ -747,8 +942,59 @@ export const handler = async (event, context) => {
747
942
  console.error(`Failed to cleanup ${resource.type}:${resourceName}:`, errorMessage);
748
943
  }
749
944
  }
945
+ for (const bus of eventBuses) {
946
+ try {
947
+ await this.deleteEventBus(bus.name);
948
+ cleaned++;
949
+ }
950
+ catch (error) {
951
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
952
+ console.error(`Failed to cleanup eventbus:${bus.name}:`, errorMessage);
953
+ }
954
+ }
750
955
  console.log(`✅ Cleaned up ${cleaned} resources for ${serviceName}`);
751
956
  }
957
+ async deleteOpenSearchCollection(name) {
958
+ // DeleteCollection takes the collection id — resolve it from the name.
959
+ const found = await this.openSearchClient.send(new BatchGetCollectionCommand({ names: [name] }));
960
+ const id = found.collectionDetails?.[0]?.id;
961
+ if (!id) {
962
+ console.log(`OpenSearch collection not found (already deleted?): ${name}`);
963
+ return;
964
+ }
965
+ await this.openSearchClient.send(new DeleteCollectionCommand({ id }));
966
+ console.log(`Deleted OpenSearch collection: ${name}`);
967
+ }
968
+ async deleteEventRule(rule) {
969
+ const eventBusName = this.resolveEventBusName(rule.eventBusRef);
970
+ try {
971
+ if (rule.targets.length > 0) {
972
+ await this.eventBridgeClient.send(new RemoveTargetsCommand({
973
+ Rule: rule.name,
974
+ EventBusName: eventBusName,
975
+ Ids: rule.targets.map(t => t.id),
976
+ }));
977
+ }
978
+ await this.eventBridgeClient.send(new DeleteRuleCommand({ Name: rule.name, EventBusName: eventBusName }));
979
+ console.log(`Deleted EventBridge rule: ${rule.name}`);
980
+ }
981
+ catch (error) {
982
+ if (error?.name !== 'ResourceNotFoundException') {
983
+ throw error;
984
+ }
985
+ }
986
+ }
987
+ async deleteEventBus(busName) {
988
+ try {
989
+ await this.eventBridgeClient.send(new DeleteEventBusCommand({ Name: busName }));
990
+ console.log(`Deleted EventBridge bus: ${busName}`);
991
+ }
992
+ catch (error) {
993
+ if (error?.name !== 'ResourceNotFoundException') {
994
+ throw error;
995
+ }
996
+ }
997
+ }
752
998
  async deleteDynamoDBTable(tableName) {
753
999
  try {
754
1000
  await this.dynamoClient.send(new DeleteTableCommand({ TableName: tableName }));
@@ -1 +1 @@
1
- {"version":3,"file":"resource-provisioner.js","sourceRoot":"","sources":["../../../src/server/services/resource-provisioner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-provisioner.js","sourceRoot":"","sources":["../../../src/server/services/resource-provisioner.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export interface RegisterResult {
13
13
  routesCount: number;
14
14
  warnings: string[];
15
15
  }
16
+ export declare function isInsideProject(serviceRoot: string, projectRoot: string): boolean;
16
17
  export declare class ServiceRegistrar {
17
18
  private static instance;
18
19
  private cache;
@@ -1 +1 @@
1
- {"version":3,"file":"service-registrar.d.ts","sourceRoot":"","sources":["../../../src/server/services/service-registrar.ts"],"names":[],"mappings":"AAQA,OAAO,EAAwB,QAAQ,EAAkB,MAAM,4BAA4B,CAAC;AAM5F,OAAO,EAAgB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AASnE,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAKD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,UAAU,CAAS;IAE3B,MAAM,CAAC,WAAW,IAAI,gBAAgB;YAOxB,WAAW;IAQnB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAoHvD,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BlD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB7B,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB9C,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAOtC,YAAY;YAyDZ,SAAS;CAQxB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAIvD"}
1
+ {"version":3,"file":"service-registrar.d.ts","sourceRoot":"","sources":["../../../src/server/services/service-registrar.ts"],"names":[],"mappings":"AAQA,OAAO,EAAwB,QAAQ,EAAkB,MAAM,4BAA4B,CAAC;AAM5F,OAAO,EAAgB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AASnE,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAGjF;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,UAAU,CAAS;IAE3B,MAAM,CAAC,WAAW,IAAI,gBAAgB;YAOxB,WAAW;IAQnB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAoHvD,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BlD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B7B,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB9C,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAOtC,YAAY;YAyDZ,SAAS;CAQxB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAIvD"}
@@ -17,6 +17,11 @@ import { SourceWatcher } from './source-watcher.js';
17
17
  import { runServerlessPackage, ServerlessPackageError } from './serverless-packager.js';
18
18
  const cfnParser = new CloudFormationParser();
19
19
  const stateParser = new ServerlessStateParser();
20
+ // True when `serviceRoot` is `projectRoot` itself or lives underneath it.
21
+ export function isInsideProject(serviceRoot, projectRoot) {
22
+ const rel = path.relative(path.resolve(projectRoot), path.resolve(serviceRoot));
23
+ return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
24
+ }
20
25
  export class ServiceRegistrar {
21
26
  static instance;
22
27
  cache = new CacheManager();
@@ -40,14 +45,14 @@ export class ServiceRegistrar {
40
45
  const resolvedPath = path.resolve(input.servicePath);
41
46
  const dirName = path.basename(resolvedPath);
42
47
  const effectiveRegion = input.region || configManager.getConfig().region || 'us-east-1';
48
+ const warnings = [];
43
49
  const template = await this.readTemplate(resolvedPath, dirName);
44
- const resources = cfnParser.parse(template);
50
+ const resources = cfnParser.parse(template, warnings);
45
51
  const templateHash = cfnParser.calculateHash(template);
46
52
  // serverless-state.json is the declarative source for routes/authorizers.
47
53
  // Missing state (older setups) degrades gracefully: functions still come
48
54
  // from the CFN template, HTTP routes are just unavailable.
49
55
  const state = await this.readState(resolvedPath);
50
- const warnings = [];
51
56
  let functions = [];
52
57
  let routes = [];
53
58
  let authorizers = [];
@@ -164,17 +169,27 @@ export class ServiceRegistrar {
164
169
  }
165
170
  async rehydrateAll() {
166
171
  const cache = await this.ensureCache();
172
+ const projectRoot = ConfigManager.getInstance().getProjectRoot();
167
173
  const services = await cache.listServices();
174
+ let reactivated = 0;
168
175
  for (const metadata of services) {
176
+ // The cache dir is project-scoped, so entries here belong to this
177
+ // orchestrator even when their sources live outside the config file's
178
+ // directory (config under infra/, services elsewhere) — register()
179
+ // accepts those layouts, so rehydration must too. Log it for forensics.
180
+ if (metadata.root && !isInsideProject(metadata.root, projectRoot)) {
181
+ console.log(`ℹ️ Cached service "${metadata.name}" has its root outside the project root (${metadata.root}) — reactivating anyway`);
182
+ }
169
183
  try {
170
184
  await this.activate(metadata);
185
+ reactivated++;
171
186
  }
172
187
  catch (err) {
173
188
  console.error(`❌ Failed to activate cached service "${metadata.name}":`, err);
174
189
  }
175
190
  }
176
- if (services.length) {
177
- console.log(`🔁 Reactivated ${services.length} cached service(s)`);
191
+ if (reactivated) {
192
+ console.log(`🔁 Reactivated ${reactivated} cached service(s)`);
178
193
  }
179
194
  }
180
195
  // Full reload for the watcher: re-package (when autoPackage allows) and