local-serverless-stack 0.17.1 → 0.17.2

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 (48) hide show
  1. package/README.md +12 -8
  2. package/dist/server/routes/config.d.ts.map +1 -1
  3. package/dist/server/routes/config.js +182 -6
  4. package/dist/server/routes/config.js.map +1 -1
  5. package/dist/server/services/config-manager.d.ts +31 -0
  6. package/dist/server/services/config-manager.d.ts.map +1 -1
  7. package/dist/server/services/config-manager.js +370 -0
  8. package/dist/server/services/config-manager.js.map +1 -1
  9. package/dist/ui/assets/ApisPage-CXYcWDhm.js +1 -0
  10. package/dist/ui/assets/BucketDetailPage-BwS2--Pe.js +1 -0
  11. package/dist/ui/assets/BucketsPage-khuiYc9C.js +1 -0
  12. package/dist/ui/assets/DynamoPage-aYo0QC0N.js +1 -0
  13. package/dist/ui/assets/DynamoTablePage-rFuV2pgd.js +3 -0
  14. package/dist/ui/assets/LambdaDetailPage-CJmu8M_N.js +4 -0
  15. package/dist/ui/assets/LambdasPage-DniNyKMe.js +1 -0
  16. package/dist/ui/assets/OpenSearchCollectionPage-BBwjgbB9.js +1 -0
  17. package/dist/ui/assets/OpenSearchPage-D5RxJGRo.js +1 -0
  18. package/dist/ui/assets/OverviewPage-Cyt1Xdp8.js +1 -0
  19. package/dist/ui/assets/{OverviewPage-C7JlCyW1.css → OverviewPage-DS6XJ7kG.css} +1 -1
  20. package/dist/ui/assets/QueueDetailPage-3FPsowIp.js +1 -0
  21. package/dist/ui/assets/QueuesPage-CUoDDgHr.js +1 -0
  22. package/dist/ui/assets/SecretsPage-B_mTnUf3.js +1 -0
  23. package/dist/ui/assets/ServiceDetailPage-BcdSjA6e.js +2 -0
  24. package/dist/ui/assets/ServicesPage-CU6fb3f8.js +2 -0
  25. package/dist/ui/assets/SettingsPage-BG8cYxgC.js +1 -0
  26. package/dist/ui/assets/index-BxwA-UT0.css +1 -0
  27. package/dist/ui/assets/index-DGsXIPJ-.js +37 -0
  28. package/dist/ui/index.html +2 -2
  29. package/package.json +2 -2
  30. package/dist/ui/assets/ApisPage-9Lk0_ZLj.js +0 -1
  31. package/dist/ui/assets/BucketDetailPage-CdLGW5em.js +0 -1
  32. package/dist/ui/assets/BucketsPage-CDP95vp8.js +0 -1
  33. package/dist/ui/assets/DynamoPage-CV7omZpi.js +0 -1
  34. package/dist/ui/assets/DynamoTablePage-C8v42fy7.js +0 -3
  35. package/dist/ui/assets/LambdaDetailPage-DkGxePSD.js +0 -4
  36. package/dist/ui/assets/LambdasPage-Bg7_taxW.js +0 -1
  37. package/dist/ui/assets/OpenSearchCollectionPage-Ci1hHyy2.js +0 -1
  38. package/dist/ui/assets/OpenSearchPage-CBKqZeim.js +0 -1
  39. package/dist/ui/assets/OverviewPage-D8lrE9rQ.js +0 -1
  40. package/dist/ui/assets/QueueDetailPage-D0DSIGZ2.js +0 -1
  41. package/dist/ui/assets/QueuesPage-BXebf6st.js +0 -1
  42. package/dist/ui/assets/SecretsPage-Be2Nw9BM.js +0 -1
  43. package/dist/ui/assets/SecretsPage-D3XYogv-.css +0 -1
  44. package/dist/ui/assets/ServiceDetailPage-DZpczZ-G.js +0 -2
  45. package/dist/ui/assets/ServicesPage-CdzxEqs3.js +0 -2
  46. package/dist/ui/assets/_plugin-vue_export-helper-DlAUqK2U.js +0 -1
  47. package/dist/ui/assets/index-C1Wb35Y8.css +0 -1
  48. package/dist/ui/assets/index-CGpxa55R.js +0 -37
package/README.md CHANGED
@@ -45,7 +45,7 @@ LSS features come in two layers:
45
45
  - `autoPackage` — runs `sls package` on demand when the template is missing
46
46
  - Automatic event source mappings: SQS / DynamoDB streams / S3 notifications / EventBridge rules → Lambda — with AWS-faithful failure semantics (`FilterCriteria` enforced, `ReportBatchItemFailures` partial batches, `maximumRetryAttempts` incl. the `-1` "until the record ages out" default)
47
47
  - Per-instance isolation — `stateDir` + port-scoped PID/log paths let many LSS instances coexist (one per project)
48
- - Config: `lss.config.json` / `.lssrc` + env overrides (`LSS_*`); public-safe `GET /api/config` snapshot (never leaks the auth token)
48
+ - Config: `lss.config.json` / `.lssrc` + env overrides (`LSS_*`); public-safe `GET /api/config` snapshot (never leaks the auth token); editable from the dashboard via `PUT /api/config` (writes the file for you to commit) + `POST /api/config/reload`; `GET /api/config/ports` lists every exposed port
49
49
  - **Lambda runtime & API Gateway emulation** (serverless-offline replacement — same `30xx`/`130xx` ports)
50
50
  - Function + route registry: REST (`http`, payload v1), HTTP API (`httpApi`, payload v2) and authorizers — persisted and rehydrated on restart
51
51
  - Per-service worker processes: lazy/warm handler loading, function env/timeout/context, per-invocation log capture, crash restart
@@ -64,7 +64,8 @@ LSS features come in two layers:
64
64
  - **Seeds** (`/api/seeds`): auto-seed on table creation + on-demand run/clear, seed-file ↔ live-table mismatch diagnostic
65
65
  - **Resources** (`/api/resources`, `…/owners`): provisioned resources mapped to owning services
66
66
  - **Health** (`/api/health`): orchestrator + active engine + dynamo-proxy status
67
- - **Dashboard (Vue 3 SPA)** — nine tabs: **Overview**, **Services** (status/start/stop/logs + per-service resource breakdown incl. EventBridge buses & rules and OpenSearch collections), **Lambdas** (registry + invoke + logs), **APIs**, **Queues**, **S3**, **DynamoDB**, **OpenSearch**, **Secrets** — plus a region selector and theme toggle
67
+ - **Dashboard (Vue 3 SPA)** — ten tabs: **Overview** (health, config, exposed-ports map), **Services** (status/start/stop/logs + per-service resource breakdown incl. EventBridge buses & rules and OpenSearch collections), **Lambdas** (registry + invoke + logs), **APIs**, **Queues**, **S3**, **DynamoDB**, **OpenSearch**, **Secrets**, **Settings** — plus a region selector and theme toggle
68
+ - **Settings**: edit `lss.config.json` from the dashboard — only changed fields are written (you review and commit the diff), hot-reload for lazy keys, explicit restart-required and env-var-masked flags, plus a reload-from-disk button
68
69
  - **Branding**: navbar title/subtitle, logo, favicon, default theme and any TreeUI color token per theme, via the `branding` config key
69
70
  - **serverless-lss plugin** — auto-registers each service on `sls package`/`offline`; orchestrator URL precedence (`ORCHESTRATOR_URL` > `LSS_DASHBOARD_PORT` > `custom.orchestrator` > 3100)
70
71
  - **Programmatic client (`LssClient`)** — the CLI/dashboard surface from code: HTTP namespaces `seeds`, `queues`, `dynamo`, `buckets`, `resources`, `services`, `lambdas`, `apis`, `config`, `health` + `lifecycle` (`start`/`stop`/`status`/`logs`/`waitUntilReady`, shells out to the CLI)
@@ -319,12 +320,15 @@ Details (`mode`, `localstackEdition`, `localstackVersion`, `localstackImage`):
319
320
 
320
321
  ## Dashboard
321
322
 
322
- The Vue 3 dashboard at `http://localhost:3100` has seven tabs — **Overview** (health,
323
- config snapshot), **Services** (status, start/stop, live logs, per-service resource
324
- breakdown incl. EventBridge buses & rules), **Lambdas** (registry + invoke), **APIs**
325
- (emulated HTTP routes), **Queues** (send/receive/purge, consumers), **S3** (objects,
326
- upload/download), **DynamoDB** (items explorer, editor, TTL, seeds). A region selector
327
- lets you inspect resources in any region.
323
+ The Vue 3 dashboard at `http://localhost:3100` has ten tabs — **Overview** (health,
324
+ config snapshot, exposed-ports map), **Services** (status, start/stop, live logs,
325
+ per-service resource breakdown incl. EventBridge buses & rules), **Lambdas** (registry +
326
+ invoke), **APIs** (emulated HTTP routes), **Queues** (send/receive/purge, consumers),
327
+ **S3** (objects, upload/download), **DynamoDB** (items explorer, editor, TTL, seeds),
328
+ **OpenSearch**, **Secrets**, and **Settings** — which edits `lss.config.json` in place
329
+ (only changed fields are written, so you review and commit the diff), hot-reloads what it
330
+ can, and flags the keys that need `lss stop && lss start` or are masked by env vars.
331
+ A region selector lets you inspect resources in any region.
328
332
 
329
333
  It can carry your team's identity via the `branding` config key: navbar title/subtitle,
330
334
  logo and favicon (URL or a file next to `lss.config.json`), default theme, and any
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/server/routes/config.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAmDxB,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/server/routes/config.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAiPxB,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,CAAC"}
@@ -1,12 +1,34 @@
1
1
  import { Router } from 'express';
2
- import { ConfigManager } from '../services/config-manager.js';
2
+ import { ConfigManager, ConfigValidationError, } from '../services/config-manager.js';
3
+ import { FunctionRegistry } from '../services/function-registry.js';
3
4
  const router = Router();
4
- // Public-safe LSS configuration snapshot for the UI overview.
5
- // Never expose the LocalStack auth token — only whether it's set.
6
- router.get('/', (_req, res) => {
7
- const cm = ConfigManager.getInstance();
8
- res.json({
5
+ // Per-service packaging blocks may carry secret env VALUES (deploy keys,
6
+ // registry tokens) — expose key names only, mirroring printSummary().
7
+ function redactPackaging(map) {
8
+ return Object.fromEntries(Object.entries(map).map(([service, cfg]) => [
9
+ service,
10
+ {
11
+ packageCommand: cfg.packageCommand,
12
+ packageArgs: cfg.packageArgs,
13
+ packageTimeoutMs: cfg.packageTimeoutMs,
14
+ packageEnvKeys: Object.keys(cfg.packageEnv ?? {}),
15
+ },
16
+ ]));
17
+ }
18
+ // Public-safe LSS configuration snapshot — everything the dashboard shows and
19
+ // edits. Never expose secret VALUES: the LocalStack auth token collapses to
20
+ // hasAuthToken, packageEnv maps collapse to their key names, and the secrets
21
+ // seed map collapses to a count.
22
+ function buildConfigSnapshot(cm) {
23
+ const raw = cm.getConfig();
24
+ const selfEngine = cm.getSelfEngineConfig();
25
+ const aossSidecar = cm.getAossSidecarConfig();
26
+ return {
9
27
  serverPort: cm.getServerPort(),
28
+ engine: {
29
+ kind: cm.getEngineKind(),
30
+ endpoint: cm.getEngineEndpoint(),
31
+ },
10
32
  localstack: {
11
33
  mode: cm.getMode(),
12
34
  endpoint: cm.getLocalStackEndpoint(),
@@ -16,6 +38,20 @@ router.get('/', (_req, res) => {
16
38
  image: cm.getLocalStackImage(),
17
39
  hasAuthToken: Boolean(cm.getLocalStackAuthToken()),
18
40
  },
41
+ selfEngine: {
42
+ port: selfEngine.port,
43
+ dataDir: selfEngine.dataDir,
44
+ account: selfEngine.account,
45
+ idleUnloadMs: selfEngine.idleUnloadMs,
46
+ memoryBudgetMb: selfEngine.memoryBudgetMb,
47
+ fsync: selfEngine.fsync,
48
+ fallbackEndpoint: selfEngine.fallbackEndpoint,
49
+ },
50
+ aossSidecar: {
51
+ enabled: aossSidecar.enabled,
52
+ port: aossSidecar.port,
53
+ endpoint: aossSidecar.endpoint,
54
+ },
19
55
  dynamoProxy: {
20
56
  enabled: cm.isEnableDynamoProxy(),
21
57
  port: cm.getDynamoProxyPort(),
@@ -25,12 +61,152 @@ router.get('/', (_req, res) => {
25
61
  persistence: cm.isPersistence(),
26
62
  debug: cm.isDebug(),
27
63
  seedsDir: cm.getSeedsDir(),
64
+ stateDir: cm.getStateDir() ?? null,
28
65
  autoPackage: cm.isAutoPackage(),
29
66
  packageCommand: cm.getPackageCommand(),
30
67
  packageTimeoutMs: cm.getPackageTimeoutMs(),
68
+ packageArgs: raw.packageArgs ?? [],
69
+ packageEnvKeys: Object.keys(raw.packageEnv ?? {}),
70
+ servicePackaging: redactPackaging(raw.servicePackaging ?? {}),
71
+ lambdaRuntime: {
72
+ enabled: cm.isLambdaRuntimeEnabled(),
73
+ execution: cm.getLambdaExecutionMode(),
74
+ // Raw tri-state: null = mode-dependent default (source→on, artifact→off).
75
+ watch: raw.lambdaRuntime?.watch ?? null,
76
+ invokePortOffset: cm.getInvokePortOffset(),
77
+ invokeHost: cm.getInvokeHost(),
78
+ },
79
+ serviceRuntime: raw.serviceRuntime ?? {},
80
+ secretSeedCount: Object.keys(cm.getSecretSeeds()).length,
81
+ // Keys whose file value is masked by an env var right now — the UI flags
82
+ // these fields so an edit that "doesn't stick" is explained.
83
+ envOverrides: cm.getEnvOverriddenKeys(),
31
84
  configPath: cm.getConfigPath(),
85
+ projectRoot: cm.getProjectRoot(),
32
86
  branding: cm.getBranding(),
87
+ };
88
+ }
89
+ router.get('/', (_req, res) => {
90
+ res.json(buildConfigSnapshot(ConfigManager.getInstance()));
91
+ });
92
+ // Persist a partial config patch into the loaded config file (creating
93
+ // lss.config.json in the project root when none is loaded) and hot-reload the
94
+ // in-memory config. The human reviews and commits the file — LSS never
95
+ // touches git. Boot-materialized keys come back in restartRequired.
96
+ router.put('/', (req, res) => {
97
+ const cm = ConfigManager.getInstance();
98
+ try {
99
+ const result = cm.updateConfig(req.body);
100
+ res.json({
101
+ config: buildConfigSnapshot(cm),
102
+ configPath: result.path,
103
+ restartRequired: result.restartRequired,
104
+ envOverridden: result.envOverridden,
105
+ });
106
+ }
107
+ catch (error) {
108
+ if (error instanceof ConfigValidationError) {
109
+ res.status(400).json({ error: error.message, details: error.details });
110
+ return;
111
+ }
112
+ res.status(500).json({ error: error instanceof Error ? error.message : 'Failed to update config' });
113
+ }
114
+ });
115
+ // Re-read the config file from disk after a hand edit, without restarting the
116
+ // orchestrator. Lazily-consumed keys take effect immediately; the rest come
117
+ // back in restartRequired. A file that no longer parses answers 400 and keeps
118
+ // the working in-memory config untouched.
119
+ router.post('/reload', (_req, res) => {
120
+ const cm = ConfigManager.getInstance();
121
+ try {
122
+ const result = cm.reloadFromDisk();
123
+ res.json({
124
+ config: buildConfigSnapshot(cm),
125
+ configPath: result.path,
126
+ restartRequired: result.restartRequired,
127
+ });
128
+ }
129
+ catch (error) {
130
+ if (error instanceof ConfigValidationError) {
131
+ res.status(400).json({ error: error.message, details: error.details });
132
+ return;
133
+ }
134
+ res.status(500).json({ error: error instanceof Error ? error.message : 'Failed to reload config' });
135
+ }
136
+ });
137
+ // Every local port the stack exposes, so "what do I point my SDK/browser at?"
138
+ // has one answer: orchestrator, active engine (LocalStack edge or self engine),
139
+ // aoss sidecar, DynamoDB proxy, plus each registered service's HTTP API and
140
+ // Lambda invoke listeners.
141
+ router.get('/ports', (_req, res) => {
142
+ const cm = ConfigManager.getInstance();
143
+ const ports = [];
144
+ ports.push({
145
+ name: 'Orchestrator',
146
+ kind: 'orchestrator',
147
+ port: cm.getServerPort(),
148
+ url: cm.getOrchestratorUrl(),
149
+ description: 'Dashboard UI + REST API (register, explorers, seeds)',
33
150
  });
151
+ if (cm.isSelfEngine()) {
152
+ const selfEngine = cm.getSelfEngineConfig();
153
+ ports.push({
154
+ name: 'Self engine',
155
+ kind: 'engine',
156
+ port: selfEngine.port,
157
+ url: `http://localhost:${selfEngine.port}`,
158
+ description: 'In-process AWS emulator — point SDK endpoints here',
159
+ });
160
+ }
161
+ else {
162
+ ports.push({
163
+ name: `LocalStack (${cm.getMode()})`,
164
+ kind: 'engine',
165
+ port: cm.getLocalStackPort(),
166
+ url: cm.getLocalStackEndpoint(),
167
+ description: 'LocalStack edge — every AWS service on one port',
168
+ });
169
+ const aossSidecar = cm.getAossSidecarConfig();
170
+ if (aossSidecar.enabled) {
171
+ ports.push({
172
+ name: 'OpenSearch Serverless sidecar',
173
+ kind: 'sidecar',
174
+ port: aossSidecar.port,
175
+ url: aossSidecar.endpoint,
176
+ description: 'aoss served in-process — no LocalStack edition provides it',
177
+ });
178
+ }
179
+ }
180
+ if (cm.isEnableDynamoProxy()) {
181
+ ports.push({
182
+ name: 'DynamoDB proxy',
183
+ kind: 'proxy',
184
+ port: cm.getDynamoProxyPort(),
185
+ url: `http://localhost:${cm.getDynamoProxyPort()}`,
186
+ description: 'Reverse proxy for tools that expect DynamoDB on a fixed port',
187
+ });
188
+ }
189
+ for (const service of FunctionRegistry.getInstance().listServices()) {
190
+ if (service.apiPort) {
191
+ ports.push({
192
+ name: service.name,
193
+ kind: 'service-api',
194
+ port: service.apiPort,
195
+ url: `http://localhost:${service.apiPort}`,
196
+ description: 'HTTP API (API Gateway emulation)',
197
+ });
198
+ }
199
+ if (service.invokePort) {
200
+ ports.push({
201
+ name: service.name,
202
+ kind: 'service-invoke',
203
+ port: service.invokePort,
204
+ url: `http://localhost:${service.invokePort}`,
205
+ description: 'Lambda invoke listener (AWS SDK Invoke)',
206
+ });
207
+ }
208
+ }
209
+ res.json({ ports });
34
210
  });
35
211
  // Branding only — what the UI needs on boot (title, logo, theme colors).
36
212
  router.get('/branding', (_req, res) => {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/server/routes/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,aAAa,EAAqB,MAAM,+BAA+B,CAAC;AAEjF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;AAExB,8DAA8D;AAC9D,kEAAkE;AAClE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;IAC/C,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC;QACP,UAAU,EAAE,EAAE,CAAC,aAAa,EAAE;QAC9B,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE;YAClB,QAAQ,EAAE,EAAE,CAAC,qBAAqB,EAAE;YACpC,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE;YAC5B,OAAO,EAAE,EAAE,CAAC,oBAAoB,EAAE;YAClC,OAAO,EAAE,EAAE,CAAC,oBAAoB,EAAE;YAClC,KAAK,EAAE,EAAE,CAAC,kBAAkB,EAAE;YAC9B,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC;SACnD;QACD,WAAW,EAAE;YACX,OAAO,EAAE,EAAE,CAAC,mBAAmB,EAAE;YACjC,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE;SAC9B;QACD,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE;QACtB,QAAQ,EAAE,EAAE,CAAC,WAAW,EAAE;QAC1B,WAAW,EAAE,EAAE,CAAC,aAAa,EAAE;QAC/B,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE;QACnB,QAAQ,EAAE,EAAE,CAAC,WAAW,EAAE;QAC1B,WAAW,EAAE,EAAE,CAAC,aAAa,EAAE;QAC/B,cAAc,EAAE,EAAE,CAAC,iBAAiB,EAAE;QACtC,gBAAgB,EAAE,EAAE,CAAC,mBAAmB,EAAE;QAC1C,UAAU,EAAE,EAAE,CAAC,aAAa,EAAE;QAC9B,QAAQ,EAAE,EAAE,CAAC,WAAW,EAAE;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,yEAAyE;AACzE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;IACvD,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,yEAAyE;AACzE,yEAAyE;AACzE,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAA0B,CAAC;IACnD,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/server/routes/config.ts"],"names":[],"mappings":"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"}
@@ -122,6 +122,17 @@ export interface LSSConfig {
122
122
  aossSidecar?: AossSidecarConfig;
123
123
  branding?: BrandingConfig;
124
124
  }
125
+ export declare class ConfigValidationError extends Error {
126
+ readonly details: string[];
127
+ constructor(details: string[]);
128
+ }
129
+ export interface ConfigReloadResult {
130
+ path: string;
131
+ restartRequired: string[];
132
+ }
133
+ export interface ConfigUpdateResult extends ConfigReloadResult {
134
+ envOverridden: string[];
135
+ }
125
136
  export declare class ConfigManager {
126
137
  private static instance;
127
138
  private config;
@@ -197,6 +208,26 @@ export declare class ConfigManager {
197
208
  getBrandingAssetFile(kind: BrandingAssetKind): string | null;
198
209
  private getBrandingAssetUrl;
199
210
  getBranding(): ResolvedBranding;
211
+ getEnvOverriddenKeys(): string[];
212
+ private resolvedBootValues;
213
+ private static diffKeys;
214
+ private resetAndReload;
215
+ /**
216
+ * Re-read the config file from disk — after a hand edit, or after
217
+ * updateConfig() wrote it. Runs the exact boot sequence (file search + env
218
+ * override pass), so the result matches what a fresh process would resolve.
219
+ * Boot-materialized keys that changed are reported as restartRequired: the
220
+ * running listeners/engine keep the old value until `lss stop && lss start`.
221
+ */
222
+ reloadFromDisk(): ConfigReloadResult;
223
+ /**
224
+ * Validate a partial config patch, write it into the loaded config file (or
225
+ * create lss.config.json in the project root when none is loaded) and reload
226
+ * in-memory. The raw file is re-read and patched key-by-key — never the
227
+ * env-resolved in-memory config — so env-var overrides are not baked into
228
+ * the file on save. The human commits the file; LSS never touches git.
229
+ */
230
+ updateConfig(patch: Record<string, unknown>): ConfigUpdateResult;
200
231
  /**
201
232
  * Print configuration summary
202
233
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../../src/server/services/config-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../../src/server/services/config-manager.ts"],"names":[],"mappings":"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"}