local-serverless-stack 0.17.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +327 -0
- package/README.md +1157 -224
- package/assets/icon.svg +37 -0
- package/assets/logo.svg +38 -0
- package/bin/cli.js +384 -217
- package/bin/i18n.js +498 -0
- package/dist/client/config-discovery.d.ts.map +1 -1
- package/dist/client/config-discovery.js +2 -1
- package/dist/client/config-discovery.js.map +1 -1
- package/dist/client/http.d.ts +7 -0
- package/dist/client/http.d.ts.map +1 -1
- package/dist/client/http.js +3 -2
- package/dist/client/http.js.map +1 -1
- package/dist/client/lifecycle.d.ts +1 -4
- package/dist/client/lifecycle.d.ts.map +1 -1
- package/dist/client/lifecycle.js +2 -8
- package/dist/client/lifecycle.js.map +1 -1
- package/dist/client/namespaces/health.d.ts +1 -1
- package/dist/client/namespaces/health.d.ts.map +1 -1
- package/dist/client/namespaces/queues.d.ts.map +1 -1
- package/dist/client/namespaces/queues.js +9 -0
- package/dist/client/namespaces/queues.js.map +1 -1
- package/dist/client/namespaces/seeds.d.ts +1 -1
- package/dist/client/namespaces/services.d.ts +34 -0
- package/dist/client/namespaces/services.d.ts.map +1 -1
- package/dist/client/namespaces/services.js +3 -0
- package/dist/client/namespaces/services.js.map +1 -1
- package/dist/client/types.d.ts +17 -5
- package/dist/client/types.d.ts.map +1 -1
- package/dist/mcp/http.d.ts +15 -0
- package/dist/mcp/http.d.ts.map +1 -0
- package/dist/mcp/http.js +86 -0
- package/dist/mcp/http.js.map +1 -0
- package/dist/mcp/protocol.d.ts +36 -0
- package/dist/mcp/protocol.d.ts.map +1 -0
- package/dist/mcp/protocol.js +96 -0
- package/dist/mcp/protocol.js.map +1 -0
- package/dist/mcp/server.d.ts +7 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +41 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +18 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +323 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/server/dev/dynamo-proxy.d.ts.map +1 -1
- package/dist/server/dev/dynamo-proxy.js +16 -2
- package/dist/server/dev/dynamo-proxy.js.map +1 -1
- package/dist/server/engine/backends/self-backend.d.ts +11 -2
- package/dist/server/engine/backends/self-backend.d.ts.map +1 -1
- package/dist/server/engine/backends/self-backend.js +42 -1
- package/dist/server/engine/backends/self-backend.js.map +1 -1
- package/dist/server/engine/dispatch/dispatcher.js +2 -2
- package/dist/server/engine/dispatch/dispatcher.js.map +1 -1
- package/dist/server/engine/engine-manager.d.ts +6 -1
- package/dist/server/engine/engine-manager.d.ts.map +1 -1
- package/dist/server/engine/engine-manager.js +30 -27
- package/dist/server/engine/engine-manager.js.map +1 -1
- package/dist/server/engine/http/is-aws-request.d.ts +8 -0
- package/dist/server/engine/http/is-aws-request.d.ts.map +1 -0
- package/dist/server/engine/http/is-aws-request.js +53 -0
- package/dist/server/engine/http/is-aws-request.js.map +1 -0
- package/dist/server/engine/http/router.d.ts.map +1 -1
- package/dist/server/engine/http/router.js +7 -1
- package/dist/server/engine/http/router.js.map +1 -1
- package/dist/server/engine/store/engine-store.d.ts +1 -0
- package/dist/server/engine/store/engine-store.d.ts.map +1 -1
- package/dist/server/engine/store/engine-store.js +2 -1
- package/dist/server/engine/store/engine-store.js.map +1 -1
- package/dist/server/engine/store/memory-store.d.ts +16 -0
- package/dist/server/engine/store/memory-store.d.ts.map +1 -0
- package/dist/server/engine/store/memory-store.js +167 -0
- package/dist/server/engine/store/memory-store.js.map +1 -0
- package/dist/server/engine/store/wal.d.ts +3 -0
- package/dist/server/engine/store/wal.d.ts.map +1 -1
- package/dist/server/engine/store/wal.js +35 -1
- package/dist/server/engine/store/wal.js.map +1 -1
- package/dist/server/index.js +159 -44
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/config.d.ts.map +1 -1
- package/dist/server/routes/config.js +164 -15
- package/dist/server/routes/config.js.map +1 -1
- package/dist/server/routes/lambdas.d.ts.map +1 -1
- package/dist/server/routes/lambdas.js +65 -0
- package/dist/server/routes/lambdas.js.map +1 -1
- package/dist/server/routes/services.d.ts.map +1 -1
- package/dist/server/routes/services.js +275 -24
- package/dist/server/routes/services.js.map +1 -1
- package/dist/server/services/bind-host.d.ts +30 -0
- package/dist/server/services/bind-host.d.ts.map +1 -0
- package/dist/server/services/bind-host.js +182 -0
- package/dist/server/services/bind-host.js.map +1 -0
- package/dist/server/services/cache-manager.d.ts +2 -1
- package/dist/server/services/cache-manager.d.ts.map +1 -1
- package/dist/server/services/cache-manager.js +4 -14
- package/dist/server/services/cache-manager.js.map +1 -1
- package/dist/server/services/config-manager.d.ts +59 -35
- package/dist/server/services/config-manager.d.ts.map +1 -1
- package/dist/server/services/config-manager.js +787 -131
- package/dist/server/services/config-manager.js.map +1 -1
- package/dist/server/services/dynamo-explorer.d.ts +1 -0
- package/dist/server/services/dynamo-explorer.d.ts.map +1 -1
- package/dist/server/services/dynamo-explorer.js +28 -6
- package/dist/server/services/dynamo-explorer.js.map +1 -1
- package/dist/server/services/explorer-region.d.ts +2 -0
- package/dist/server/services/explorer-region.d.ts.map +1 -0
- package/dist/server/services/explorer-region.js +23 -0
- package/dist/server/services/explorer-region.js.map +1 -0
- package/dist/server/services/gateway-manager.d.ts.map +1 -1
- package/dist/server/services/gateway-manager.js +18 -5
- package/dist/server/services/gateway-manager.js.map +1 -1
- package/dist/server/services/invocation-activity.d.ts +45 -0
- package/dist/server/services/invocation-activity.d.ts.map +1 -0
- package/dist/server/services/invocation-activity.js +102 -0
- package/dist/server/services/invocation-activity.js.map +1 -0
- package/dist/server/services/lambda-runtime-manager.d.ts +7 -1
- package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
- package/dist/server/services/lambda-runtime-manager.js +118 -10
- package/dist/server/services/lambda-runtime-manager.js.map +1 -1
- package/dist/server/services/opensearch-explorer.d.ts.map +1 -1
- package/dist/server/services/opensearch-explorer.js +14 -10
- package/dist/server/services/opensearch-explorer.js.map +1 -1
- package/dist/server/services/project-scope.d.ts +2 -0
- package/dist/server/services/project-scope.d.ts.map +1 -0
- package/dist/server/services/project-scope.js +23 -0
- package/dist/server/services/project-scope.js.map +1 -0
- package/dist/server/services/queue-inspector.d.ts.map +1 -1
- package/dist/server/services/queue-inspector.js +15 -6
- package/dist/server/services/queue-inspector.js.map +1 -1
- package/dist/server/services/resource-provisioner.d.ts +0 -2
- package/dist/server/services/resource-provisioner.d.ts.map +1 -1
- package/dist/server/services/resource-provisioner.js +24 -14
- package/dist/server/services/resource-provisioner.js.map +1 -1
- package/dist/server/services/s3-explorer.js +3 -3
- package/dist/server/services/s3-explorer.js.map +1 -1
- package/dist/server/services/secrets-explorer.d.ts.map +1 -1
- package/dist/server/services/secrets-explorer.js +10 -3
- package/dist/server/services/secrets-explorer.js.map +1 -1
- package/dist/server/services/seed-manager.d.ts.map +1 -1
- package/dist/server/services/seed-manager.js +17 -8
- package/dist/server/services/seed-manager.js.map +1 -1
- package/dist/server/services/serverless-state-parser.d.ts +10 -0
- package/dist/server/services/serverless-state-parser.d.ts.map +1 -1
- package/dist/server/services/serverless-state-parser.js +20 -1
- package/dist/server/services/serverless-state-parser.js.map +1 -1
- package/dist/server/services/service-registrar.d.ts.map +1 -1
- package/dist/server/services/service-registrar.js +19 -5
- package/dist/server/services/service-registrar.js.map +1 -1
- package/dist/server/services/service-scanner.d.ts +20 -0
- package/dist/server/services/service-scanner.d.ts.map +1 -0
- package/dist/server/services/service-scanner.js +173 -0
- package/dist/server/services/service-scanner.js.map +1 -0
- package/dist/server/services/source-watcher.d.ts.map +1 -1
- package/dist/server/services/source-watcher.js +31 -6
- package/dist/server/services/source-watcher.js.map +1 -1
- package/dist/ui/assets/ApisPage-BOuimwWz.js +1 -0
- package/dist/ui/assets/BucketDetailPage-vLYwhoQt.js +1 -0
- package/dist/ui/assets/BucketsPage-Cu5lU1Hp.js +1 -0
- package/dist/ui/assets/DynamoPage-y3TTEPUL.js +1 -0
- package/dist/ui/assets/DynamoTablePage-BnmSRZjc.js +3 -0
- package/dist/ui/assets/LambdaDetailPage-B5q_d27t.js +4 -0
- package/dist/ui/assets/LambdasPage-CJpRoEDx.js +1 -0
- package/dist/ui/assets/OnboardingPage-D02dymQi.js +1 -0
- package/dist/ui/assets/OpenSearchCollectionPage-B_wWTlfL.js +1 -0
- package/dist/ui/assets/OpenSearchPage-BLEgfF_g.js +1 -0
- package/dist/ui/assets/{OverviewPage-C7JlCyW1.css → OverviewPage-C1pBJ8aP.css} +1 -1
- package/dist/ui/assets/OverviewPage-EdJWiAt6.js +1 -0
- package/dist/ui/assets/QueueDetailPage-ByEYHvHe.js +1 -0
- package/dist/ui/assets/QueuesPage-CvwYHSll.js +1 -0
- package/dist/ui/assets/SecretsPage-DASw8Ntf.js +1 -0
- package/dist/ui/assets/ServiceDetailPage-BMsUDg6L.js +2 -0
- package/dist/ui/assets/ServicesPage-2JuiIiRr.js +2 -0
- package/dist/ui/assets/SettingsPage-DStO4bgN.js +1 -0
- package/dist/ui/assets/engine-D0mFFNbL.js +1 -0
- package/dist/ui/assets/index-BIEznsi4.js +37 -0
- package/dist/ui/assets/index-BRMvNP3Y.css +1 -0
- package/dist/ui/assets/onboarding-DQmlvyWU.js +1 -0
- package/dist/ui/assets/resourceIcons-baecADXA.js +1 -0
- package/dist/ui/assets/triggerIcons-DIPWQkJ3.js +1 -0
- package/dist/ui/favicon.svg +37 -0
- package/dist/ui/index.html +5 -3
- package/package.json +12 -12
- package/dist/server/engine/aoss-sidecar.d.ts +0 -13
- package/dist/server/engine/aoss-sidecar.d.ts.map +0 -1
- package/dist/server/engine/aoss-sidecar.js +0 -93
- package/dist/server/engine/aoss-sidecar.js.map +0 -1
- package/dist/server/engine/backends/localstack-backend.d.ts +0 -25
- package/dist/server/engine/backends/localstack-backend.d.ts.map +0 -1
- package/dist/server/engine/backends/localstack-backend.js +0 -199
- package/dist/server/engine/backends/localstack-backend.js.map +0 -1
- package/dist/server/engine/engine-backend.d.ts +0 -17
- package/dist/server/engine/engine-backend.d.ts.map +0 -1
- package/dist/server/engine/engine-backend.js +0 -7
- package/dist/server/engine/engine-backend.js.map +0 -1
- package/dist/server/services/localstack-manager.d.ts +0 -17
- package/dist/server/services/localstack-manager.d.ts.map +0 -1
- package/dist/server/services/localstack-manager.js +0 -31
- package/dist/server/services/localstack-manager.js.map +0 -1
- package/dist/ui/assets/ApisPage-9Lk0_ZLj.js +0 -1
- package/dist/ui/assets/BucketDetailPage-CdLGW5em.js +0 -1
- package/dist/ui/assets/BucketsPage-CDP95vp8.js +0 -1
- package/dist/ui/assets/DynamoPage-CV7omZpi.js +0 -1
- package/dist/ui/assets/DynamoTablePage-C8v42fy7.js +0 -3
- package/dist/ui/assets/LambdaDetailPage-DkGxePSD.js +0 -4
- package/dist/ui/assets/LambdasPage-Bg7_taxW.js +0 -1
- package/dist/ui/assets/OpenSearchCollectionPage-Ci1hHyy2.js +0 -1
- package/dist/ui/assets/OpenSearchPage-CBKqZeim.js +0 -1
- package/dist/ui/assets/OverviewPage-D8lrE9rQ.js +0 -1
- package/dist/ui/assets/QueueDetailPage-D0DSIGZ2.js +0 -1
- package/dist/ui/assets/QueuesPage-BXebf6st.js +0 -1
- package/dist/ui/assets/SecretsPage-Be2Nw9BM.js +0 -1
- package/dist/ui/assets/SecretsPage-D3XYogv-.css +0 -1
- package/dist/ui/assets/ServiceDetailPage-DZpczZ-G.js +0 -2
- package/dist/ui/assets/ServicesPage-CdzxEqs3.js +0 -2
- package/dist/ui/assets/_plugin-vue_export-helper-DlAUqK2U.js +0 -1
- package/dist/ui/assets/index-C1Wb35Y8.css +0 -1
- package/dist/ui/assets/index-CGpxa55R.js +0 -37
- package/packages/serverless-plugin/README.md +0 -115
- package/packages/serverless-plugin/dist/index.d.ts +0 -2
- package/packages/serverless-plugin/dist/index.d.ts.map +0 -1
- package/packages/serverless-plugin/dist/index.js +0 -107
- package/packages/serverless-plugin/dist/index.js.map +0 -1
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
# Serverless Orchestrator Plugin
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/serverless-lss)
|
|
4
|
-
|
|
5
|
-
Automatically register your Serverless microservices with the Local Serverless Stack Local Orchestrator.
|
|
6
|
-
|
|
7
|
-
## Installation
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm install --save-dev serverless-lss
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## Usage
|
|
14
|
-
|
|
15
|
-
Add the plugin to your `serverless.yml`:
|
|
16
|
-
|
|
17
|
-
```yaml
|
|
18
|
-
plugins:
|
|
19
|
-
- serverless-lss
|
|
20
|
-
|
|
21
|
-
custom:
|
|
22
|
-
orchestrator:
|
|
23
|
-
enabled: true
|
|
24
|
-
orchestratorUrl: http://localhost:3100
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## How it works
|
|
28
|
-
|
|
29
|
-
After running `sls package` or `sls deploy`:
|
|
30
|
-
|
|
31
|
-
1. The plugin sends a registration request to the Orchestrator (service path, ports, region)
|
|
32
|
-
2. The Orchestrator reads the `sls package` artifacts from `.serverless/` (CloudFormation template + `serverless-state.json`)
|
|
33
|
-
3. It provisions resources (DynamoDB, SQS, SNS, S3) to LocalStack
|
|
34
|
-
4. It registers the service's Lambda functions, HTTP routes and authorizers, starts a runtime worker, and binds the service's API port (30xx) and Lambda-invoke port (130xx) — replacing `serverless-offline`
|
|
35
|
-
|
|
36
|
-
## Configuration Options
|
|
37
|
-
|
|
38
|
-
- `enabled` (boolean, default: `true`): Enable/disable the plugin
|
|
39
|
-
- `orchestratorUrl` (string, default: `http://localhost:3100`): Orchestrator API endpoint
|
|
40
|
-
|
|
41
|
-
### Service ports
|
|
42
|
-
|
|
43
|
-
The plugin reports which ports LSS should serve the service on:
|
|
44
|
-
|
|
45
|
-
```yaml
|
|
46
|
-
custom:
|
|
47
|
-
lss: # preferred — explicit LSS ports
|
|
48
|
-
apiPort: 3010 # API Gateway emulator (HTTP routes)
|
|
49
|
-
invokePort: 13010 # AWS Lambda Invoke API
|
|
50
|
-
serverless-offline: # fallback — drop-in for services already using offline
|
|
51
|
-
httpPort: 3010
|
|
52
|
-
lambdaPort: 13010
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
If only `apiPort` is known, the orchestrator derives `invokePort = apiPort + 10000`
|
|
56
|
-
(configurable via `lambdaRuntime.invokePortOffset`).
|
|
57
|
-
|
|
58
|
-
### Example with custom config:
|
|
59
|
-
|
|
60
|
-
```yaml
|
|
61
|
-
plugins:
|
|
62
|
-
- serverless-lss
|
|
63
|
-
|
|
64
|
-
custom:
|
|
65
|
-
orchestrator:
|
|
66
|
-
enabled: true
|
|
67
|
-
orchestratorUrl: http://my-orchestrator:3100
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Environment Variables (optional)
|
|
71
|
-
|
|
72
|
-
You can also use environment variables to override the configuration:
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
ORCHESTRATOR_URL=http://localhost:3100 sls package
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Features
|
|
79
|
-
|
|
80
|
-
✅ Auto-registers on `sls package`
|
|
81
|
-
✅ Auto-registers on `sls deploy`
|
|
82
|
-
✅ Non-blocking: deployment continues even if orchestrator is unavailable
|
|
83
|
-
✅ Colored console output
|
|
84
|
-
✅ Minimal dependencies
|
|
85
|
-
|
|
86
|
-
## Behavior
|
|
87
|
-
|
|
88
|
-
- If the Orchestrator is unavailable, the plugin logs a warning but doesn't fail the deployment
|
|
89
|
-
- The plugin is compatible with all Serverless Framework providers
|
|
90
|
-
- It only reads existing `.serverless/cloudformation-template-update-stack.json` files (doesn't create them)
|
|
91
|
-
|
|
92
|
-
## Troubleshooting
|
|
93
|
-
|
|
94
|
-
**"Orchestrator unavailable" message**
|
|
95
|
-
|
|
96
|
-
Make sure the Orchestrator is running:
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
cd orchestrator
|
|
100
|
-
npm run server
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
**Plugin not found**
|
|
104
|
-
|
|
105
|
-
Make sure you're using a recent version of Serverless Framework (3.0+) and that the plugin is installed in `node_modules`.
|
|
106
|
-
|
|
107
|
-
## Development
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
# Build
|
|
111
|
-
npm run build
|
|
112
|
-
|
|
113
|
-
# Watch mode
|
|
114
|
-
npm run dev
|
|
115
|
-
```
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
7
|
-
class ServerlessOrchestratorPlugin {
|
|
8
|
-
serverless;
|
|
9
|
-
orchestratorUrl;
|
|
10
|
-
enabled;
|
|
11
|
-
hooks;
|
|
12
|
-
constructor(serverless, options = {}) {
|
|
13
|
-
this.serverless = serverless;
|
|
14
|
-
const customConfig = (this.serverless.service?.custom || {}).orchestrator || {};
|
|
15
|
-
// Merge priority: env > options > custom > defaults
|
|
16
|
-
const merged = {
|
|
17
|
-
enabled: true,
|
|
18
|
-
orchestratorUrl: 'http://localhost:3100',
|
|
19
|
-
...customConfig,
|
|
20
|
-
...options,
|
|
21
|
-
};
|
|
22
|
-
// Env overrides win over file/options so the same serverless.yml can register
|
|
23
|
-
// against different LSS instances at runtime (e.g. an isolated e2e stack).
|
|
24
|
-
// ORCHESTRATOR_URL (a full URL) is the most explicit and wins over
|
|
25
|
-
// LSS_DASHBOARD_PORT (just the dashboard port of the target instance).
|
|
26
|
-
if (process.env.ORCHESTRATOR_URL) {
|
|
27
|
-
merged.orchestratorUrl = process.env.ORCHESTRATOR_URL;
|
|
28
|
-
}
|
|
29
|
-
else if (process.env.LSS_DASHBOARD_PORT) {
|
|
30
|
-
merged.orchestratorUrl = `http://localhost:${process.env.LSS_DASHBOARD_PORT}`;
|
|
31
|
-
}
|
|
32
|
-
if (process.env.ORCHESTRATOR_ENABLED) {
|
|
33
|
-
merged.enabled = process.env.ORCHESTRATOR_ENABLED !== 'false';
|
|
34
|
-
}
|
|
35
|
-
this.orchestratorUrl = merged.orchestratorUrl;
|
|
36
|
-
this.enabled = merged.enabled !== false;
|
|
37
|
-
this.hooks = {
|
|
38
|
-
'after:package:finalize': this.registerWithOrchestrator.bind(this),
|
|
39
|
-
// 'after:deploy:deploy': this.registerWithOrchestrator.bind(this),
|
|
40
|
-
'before:offline:start': this.registerWithOrchestrator.bind(this),
|
|
41
|
-
'before:offline:start:init': this.registerWithOrchestrator.bind(this),
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
log(message, type = 'info') {
|
|
45
|
-
const timestamp = new Date().toLocaleTimeString();
|
|
46
|
-
let formattedMessage = '';
|
|
47
|
-
switch (type) {
|
|
48
|
-
case 'success':
|
|
49
|
-
formattedMessage = chalk_1.default.green(`✓ [${timestamp}] ${message}`);
|
|
50
|
-
break;
|
|
51
|
-
case 'error':
|
|
52
|
-
formattedMessage = chalk_1.default.red(`✗ [${timestamp}] ${message}`);
|
|
53
|
-
break;
|
|
54
|
-
default:
|
|
55
|
-
formattedMessage = chalk_1.default.blue(`ℹ [${timestamp}] ${message}`);
|
|
56
|
-
}
|
|
57
|
-
console.log(formattedMessage);
|
|
58
|
-
}
|
|
59
|
-
async registerWithOrchestrator() {
|
|
60
|
-
if (!this.enabled) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const servicePath = this.serverless.config.servicePath;
|
|
64
|
-
const serviceName = this.serverless.service?.service || this.serverless.config.service || 'unknown';
|
|
65
|
-
const region = this.serverless.service?.provider?.region; // Don't use fallback, let orchestrator handle it
|
|
66
|
-
// Port discovery: custom.lss wins; custom.serverless-offline keeps drop-in
|
|
67
|
-
// compatibility for services already configured for offline (httpPort →
|
|
68
|
-
// apiPort, lambdaPort → invokePort).
|
|
69
|
-
const lssConfig = this.serverless.service?.custom?.lss || {};
|
|
70
|
-
const serverlessOfflineConfig = this.serverless.service?.custom?.['serverless-offline'] || {};
|
|
71
|
-
const invokePort = lssConfig.invokePort ?? serverlessOfflineConfig.lambdaPort;
|
|
72
|
-
const apiPort = lssConfig.apiPort ?? serverlessOfflineConfig.httpPort;
|
|
73
|
-
if (region) {
|
|
74
|
-
this.log(`Registering service "${serviceName}" (region: ${region} from Serverless Framework) with orchestrator at ${this.orchestratorUrl}...`, 'info');
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
this.log(`Registering service "${serviceName}" (region will use orchestrator configuration) with orchestrator at ${this.orchestratorUrl}...`, 'info');
|
|
78
|
-
}
|
|
79
|
-
try {
|
|
80
|
-
const response = await fetch(`${this.orchestratorUrl}/api/services/register`, {
|
|
81
|
-
method: 'POST',
|
|
82
|
-
headers: {
|
|
83
|
-
'Content-Type': 'application/json',
|
|
84
|
-
},
|
|
85
|
-
body: JSON.stringify({
|
|
86
|
-
servicePath,
|
|
87
|
-
invokePort,
|
|
88
|
-
...(apiPort !== undefined && { apiPort }),
|
|
89
|
-
...(region && { region }), // Only include region if defined in Serverless Framework
|
|
90
|
-
}),
|
|
91
|
-
});
|
|
92
|
-
if (!response.ok) {
|
|
93
|
-
const error = (await response.json().catch(() => ({ error: response.statusText })));
|
|
94
|
-
throw new Error(error.error || `HTTP ${response.status}`);
|
|
95
|
-
}
|
|
96
|
-
const result = (await response.json());
|
|
97
|
-
this.log(`Orchestrator: Registered ${result.resourcesCount} resources for "${serviceName}"`, 'success');
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
// Non-blocking error: log but don't fail the deployment
|
|
101
|
-
this.log(`Orchestrator unavailable or registration failed: ${error.message}. Continuing without orchestrator sync.`, 'error');
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
// Export for serverless framework (CommonJS)
|
|
106
|
-
module.exports = ServerlessOrchestratorPlugin;
|
|
107
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|