@localstack/lstk_darwin_amd64 0.17.1 → 0.19.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 (3) hide show
  1. package/README.md +18 -464
  2. package/lstk +0 -0
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -2,12 +2,11 @@
2
2
 
3
3
  **A command-line interface for LocalStack**. Built in Go with a modern terminal UI and native CLI experience for managing and interacting with LocalStack deployments. 👾
4
4
 
5
-
6
5
  ```bash
7
6
  npm install -g @localstack/lstk
8
7
  ```
9
8
 
10
- See [installation](#installation) below.
9
+ See [Installation](#installation) for other install methods.
11
10
 
12
11
  ## Prerequisites
13
12
 
@@ -16,19 +15,20 @@ See [installation](#installation) below.
16
15
 
17
16
  ## Installation
18
17
 
19
- ### 1. Homebrew (macOS / Linux)
18
+ ### Homebrew (macOS / Linux)
20
19
 
21
20
  ```bash
22
21
  brew install localstack/tap/lstk
23
22
  ```
24
23
 
25
- ### 2. NPM
24
+ ### npm
26
25
 
27
26
  ```bash
28
27
  npm install -g @localstack/lstk
29
28
  ```
30
29
 
31
- ### 3. Binaries
30
+ ### Binaries
31
+
32
32
  Pre-built binaries are also available from [GitHub Releases](https://github.com/localstack/lstk/releases). 📦
33
33
 
34
34
  ## Quick Start
@@ -37,471 +37,25 @@ Pre-built binaries are also available from [GitHub Releases](https://github.com/
37
37
  lstk
38
38
  ```
39
39
 
40
- Running `lstk` will automatically handle configuration setup and start LocalStack.
40
+ Running `lstk` will automatically handle authentication, configuration, and container setup, then start LocalStack. On the first interactive run, it also prompts you to pick which emulator to run (AWS, Azure, or Snowflake) and remembers your choice.
41
41
 
42
42
  ## Features
43
43
 
44
- - **Start / stop / status** — manage LocalStack emulators with a single command
45
- - **Interactive TUI** — a Bubble Tea-powered terminal UI shown in an interactive terminal for commands like `start`, `login`, `status`, etc.
46
- - **Plain output** for CI/CD and scripting (auto-detected in non-interactive environments or forced with `--non-interactive`)
47
- - **Log streaming** — tail emulator logs in real-time with `--follow`; use `--verbose` to show all logs without filtering
48
- - **Snapshots** — save, load, and remove emulator state as local files, named cloud snapshots (`pod:` prefix), or in your own S3 bucket (`s3://`), and auto-load one on start
49
- - **Browser-based login** — authenticate via browser and store credentials securely in the system keyring
50
- - **AWS CLI proxy** — run `lstk aws <args>` with endpoint, credentials, and region pre-configured
51
- - **AWS CLI profile** — optionally configure a `localstack` profile in `~/.aws/` after start
52
- - **Terraform integration** — proxy Terraform commands to LocalStack with automatic AWS provider endpoint configuration
53
- - **CDK integration** — proxy AWS CDK commands to LocalStack with automatic endpoint configuration (requires AWS CDK >= 2.177.0)
54
- - **SAM integration** — proxy AWS SAM CLI commands to LocalStack (requires AWS SAM CLI >= 1.95.0)
55
- - **Reset / restart** — clear in-memory emulator state with `lstk reset`, or restart the emulator with `lstk restart`
56
- - **Extensions** — Git-style `lstk-<name>` executables extend the CLI with new commands
57
- - **Self-update** — check for and install the latest `lstk` release with `lstk update`
58
- - **Shell completions** — bash, zsh, and fish completions included
59
- - **Structured JSON output** — pass `--json` to a supported command (`stop`, `reset`, `update` today, more planned) for a machine-readable envelope instead of formatted text; see [docs/structured-output.md](docs/structured-output.md)
60
-
61
- ## Authentication
62
-
63
- The CLI supports multiple auth workflows. `lstk` resolves your auth token in this order:
64
-
65
- 1. **System keyring** — a token stored by a previous `lstk login`
66
- 2. **`LOCALSTACK_AUTH_TOKEN` environment variable**
67
- 3. **Browser login** — triggered automatically in interactive mode when neither of the above is present
68
-
69
- > [!NOTE]
70
- > If a keyring token exists, it takes precedence over `LOCALSTACK_AUTH_TOKEN`. Setting or changing the environment variable will have no effect until the keyring token is removed. Run `lstk logout` to clear the stored keyring token, after which the env var will be used.
71
-
72
-
73
- ## Configuration
74
-
75
- `lstk` uses a TOML config file, created automatically on first run.
76
-
77
- `lstk` uses the first `config.toml` found in this order:
78
- 1. `./.lstk/config.toml` (project-local)
79
- 2. `$HOME/.config/lstk/config.toml`
80
- 3. **macOS**: `$HOME/Library/Application Support/lstk/config.toml` / **Windows**: `%AppData%\lstk\config.toml`
81
-
82
- On first run, the config is created at `$HOME/.config/lstk/config.toml` if `$HOME/.config/` already exists, otherwise at the OS default (#3). This means #3 is only reached on macOS when `$HOME/.config/` didn't exist at first run.
83
-
84
- To see which config file is currently in use:
85
-
86
- ```bash
87
- lstk config path
88
- ```
89
-
90
- ### Choosing an emulator
91
-
92
- `lstk` starts the AWS emulator by default. To run the Snowflake or Azure emulator instead, either select it interactively when prompted at start, or set the `type` in your config:
93
-
94
- ```toml
95
- [[containers]]
96
- type = "azure" # or "snowflake"
97
- port = "4566"
98
- ```
99
-
100
- The chosen emulator must be running before you set up or use its CLI integration below.
101
-
102
- > [!NOTE]
103
- > Only one `[[containers]]` block can be enabled at a time — running multiple emulators together (e.g. AWS and Snowflake) isn't supported yet.
104
-
105
- You can also configure cloud CLI integration:
106
-
107
- ```bash
108
- lstk setup aws # localstack profile in ~/.aws/
109
- lstk setup azure # isolated Azure CLI config for `lstk az` (requires the Azure CLI); alias: lstk setup az
110
- ```
111
-
112
- After starting the Azure emulator and running `lstk setup azure`, run Azure CLI commands against LocalStack with `lstk az`:
113
-
114
- ```bash
115
- lstk az group list
116
- ```
117
-
118
- `lstk setup azure` registers a custom Azure cloud — pointing at LocalStack's endpoints — inside an isolated `AZURE_CONFIG_DIR`, so your global `~/.azure` keeps pointing at real Azure.
119
-
120
- To run existing `az` scripts unmodified against LocalStack, you can instead redirect your **global** Azure CLI:
121
-
122
- ```bash
123
- lstk az start-interception # plain `az` now targets LocalStack
124
- az group list # hits LocalStack, no `lstk` prefix needed
125
- lstk az stop-interception # back to real Azure (use --cloud to pick another cloud)
126
- ```
127
-
128
- This is optional and changes global state affecting every `az` invocation until you stop it; prefer `lstk az <command>` unless a script must call plain `az`.
129
-
130
- You can also point `lstk` at a specific config file for any command:
131
-
132
- ```bash
133
- lstk --config /path/to/config.toml start
134
- ```
135
-
136
- ### Default config
137
-
138
- ```toml
139
- [[containers]]
140
- type = "aws" # Emulator type. Currently supported: "aws", "snowflake", "azure"
141
- tag = "latest" # Docker image tag, e.g. "latest", "2026.03"
142
- port = "4566" # Host port the emulator will be accessible on
143
- # image = "" # Override the default Docker image, e.g. an internal registry mirror (see below)
144
- # volumes = [] # Bind mounts, "host:container[:ro]" (see below)
145
- # env = [] # Named environment profiles to apply (see [env.*] sections below)
146
- # snapshot = "pod:my-baseline" # Snapshot REF auto-loaded on start (AWS only); see Snapshots below
147
- ```
148
-
149
- **Fields:**
150
- - `type`: emulator type; one of `"aws"`, `"snowflake"`, or `"azure"`
151
- - `tag`: Docker image tag for LocalStack (e.g. `"latest"`, `"4.14.0"`); useful for pinning a version
152
- - `port`: port LocalStack listens on (default `4566`)
153
- - `image`: (optional) override the default `localstack/<product>:<tag>` image, e.g. `"my-registry.example.com/localstack:latest"` for an internal mirror or a locally loaded offline image; if it already carries a tag, `tag` above is ignored
154
- - `volumes`: (optional) list of `"host:container[:ro]"` bind mounts, e.g. for init hooks or the persistent-state directory (see below)
155
- - `env`: (optional) list of named environment variable groups to inject into the container (see below)
156
- - `snapshot`: (optional) snapshot REF auto-loaded after the emulator starts on a fresh run — a local file path or a `pod:` cloud snapshot (see [Snapshots](#snapshots))
157
-
158
- ### Passing environment variables to the container
159
-
160
- Define reusable named env sets and reference them per container:
161
-
162
- ```toml
163
- [[containers]]
164
- type = "aws"
165
- tag = "latest"
166
- port = "4566"
167
- env = ["debug", "ci"]
168
-
169
- [env.debug]
170
- DEBUG = "1"
171
- ENFORCE_IAM = "1"
172
- PERSISTENCE = "1"
173
-
174
- [env.ci]
175
- SERVICES = "s3,sqs"
176
- EAGER_SERVICE_LOADING = "1"
177
- ```
178
-
179
- Host environment variables prefixed with `LOCALSTACK_` are also forwarded to the emulator.
180
-
181
- ### Exposing the emulator beyond localhost
182
-
183
- By default the gateway (and its published ports) are only reachable from `localhost`. To expose it more broadly (e.g. on an EC2 or VM host), set `GATEWAY_LISTEN` in an `[env.*]` profile:
184
-
185
- ```toml
186
- [[containers]]
187
- type = "aws"
188
- port = "4566"
189
- env = ["public"]
190
-
191
- [env.public]
192
- GATEWAY_LISTEN = "0.0.0.0:4566,0.0.0.0:443"
193
- ```
194
-
195
- The host part of the first entry becomes the bind address for every published port (the gateway ports and the 4510-4559 service range); it defaults to `127.0.0.1` when unset.
196
-
197
- ### Mounting volumes and init hooks
198
-
199
- Use `volumes` to bind-mount host files or directories into the emulator, given as Docker-style `"host:container[:ro]"` strings. The most common use is [init hooks](https://docs.localstack.cloud/snowflake/capabilities/init-hooks/) — scripts LocalStack runs automatically on startup when mounted into `/etc/localstack/init/{boot,start,ready,shutdown}.d`:
200
-
201
- ```toml
202
- [[containers]]
203
- type = "snowflake"
204
- port = "4566"
205
- volumes = ["./init.sf.sql:/etc/localstack/init/ready.d/init.sf.sql"]
206
- ```
207
-
208
- - Relative host paths resolve against the config file's directory, and a leading `~/` is expanded.
209
- - Append `:ro` to mount read-only.
210
- - Host sources must already exist (init-hook entries are files, so `lstk` does not create them).
211
-
212
- #### Persistent state
213
-
214
- The persistent-state directory (mounted at `/var/lib/localstack`, managed by `lstk volume path` / `lstk volume clear`) defaults to the OS cache dir. Point it elsewhere with a `volumes` entry targeting that path:
215
-
216
- ```toml
217
- volumes = ["/data:/var/lib/localstack"]
218
- ```
219
-
220
- > The singular `volume = "..."` field is a legacy way to set only this directory. It still works, but `volumes` is preferred and is the only option for init hooks or other mounts.
221
-
222
- ### Offline / enterprise environments
223
-
224
- `lstk start` degrades gracefully when the common enterprise blockers (Docker Hub unreachable, a forward proxy, TLS interception, or an unreachable license server) make a network request fail:
225
-
226
- - If the image cannot be pulled but is already present locally, `lstk` warns and starts the local image instead of failing.
227
- - If the license server cannot be reached, or it rejects the configured image tag as unrecognized (e.g. a `dev` nightly or a custom enterprise-mirror tag), `lstk` skips its pre-flight check and lets the emulator validate the license at startup. A definitive rejection from the server (e.g. an invalid token) stays fatal.
228
-
229
- Pair this with a custom `image` in the config to point at a locally loaded image or an internal-registry mirror.
230
-
231
- ## Interactive And Non-Interactive Mode
232
-
233
- `lstk` uses the TUI in an interactive terminal and plain output elsewhere. Use `--non-interactive` to force plain output even in a TTY:
234
-
235
- ```bash
236
- lstk --non-interactive
237
- ```
238
-
239
- ## Logging
240
-
241
- `lstk` writes diagnostic logs to `lstk.log` in the same directory as the config file. The log file appends across runs and is automatically cleared when it exceeds 1 MB. Use `lstk config path` to print the full config file path; the log file lives alongside it in the same directory.
242
-
243
- ## Environment Variables
244
-
245
- | Variable | Description |
246
- |---|---|
247
- | `LOCALSTACK_AUTH_TOKEN` | Auth token used for non-interactive runs or to skip browser login |
248
- | `LOCALSTACK_DISABLE_EVENTS=1` | Disables telemetry event reporting |
249
- | `LSTK_OTEL=1` | Enables OpenTelemetry trace export (disabled by default). When enabled, standard `OTEL_EXPORTER_OTLP_*` env vars are respected by the SDK (e.g. `OTEL_EXPORTER_OTLP_ENDPOINT` defaults to `http://localhost:4318`). Requires an OTLP-compatible backend to receive and visualize telemetry — for local development, `make otel` starts one (UI at http://localhost:16686). |
250
- | `DOCKER_HOST` | Override the Docker daemon socket (e.g. `unix:///home/user/.colima/default/docker.sock`). When unset, lstk tries the default socket and then probes common alternatives (Colima, OrbStack). |
251
-
252
- ### AWS CLI Proxy
253
-
254
- `lstk aws <args>` runs the AWS CLI against LocalStack with the endpoint, credentials, and region pre-configured — equivalent to `aws --endpoint-url http://localhost:4566 <args>` with `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `AWS_DEFAULT_REGION` set automatically. Requires the AWS CLI on your `PATH`. This is separate from `lstk setup aws`, which configures a persistent `localstack` profile in `~/.aws/` instead.
255
-
256
- ```bash
257
- lstk aws s3 ls
258
- lstk aws sqs list-queues
259
- ```
260
-
261
- ### Terraform Integration
262
-
263
- `lstk terraform` (alias `tf`) is a proxy that runs Terraform commands against LocalStack, automatically configuring the AWS provider to use LocalStack's endpoints. This allows you to test infrastructure-as-code locally before deploying to AWS.
44
+ - **Start / stop / status / logs** — manage the full LocalStack emulator lifecycle with a single command
45
+ - **Interactive TUI** — a Bubble Tea-powered terminal UI in interactive terminals, plain output for CI/CD and scripting
46
+ - **Browser-based login** authenticate via browser and store credentials securely in the system keyring, or use `LOCALSTACK_AUTH_TOKEN` for CI
47
+ - **Snapshots** — save, load, and manage emulator state as local files, cloud snapshots, or in your own S3 bucket
48
+ - **Cloud CLI proxies** — run `aws`, `az`, `terraform`, `cdk`, and `sam` commands against LocalStack with the endpoint, credentials, and region pre-configured
49
+ - **Extensions** — Git-style `lstk-<name>` executables extend the CLI with new commands; see [docs/extensions-authoring.md](docs/extensions-authoring.md)
50
+ - **Self-update** — `lstk update` checks for and installs the latest release
51
+ - **Structured JSON output** — pass `--json` to a supported command for a machine-readable envelope instead of formatted text; see [docs/structured-output.md](docs/structured-output.md)
264
52
 
265
- **lstk-specific flags** (appear after the `terraform`/`tf` subcommand):
266
- - `--region <region>` — Deployment region (default: `us-east-1`)
267
- - `--account <id>` — Target AWS account ID, 12 digits (default: `test`)
268
-
269
- **Environment variables:**
270
- - `LSTK_TF_CMD` — Terraform binary to invoke; default is `terraform` (e.g., use `tofu` for OpenTofu)
271
- - `LSTK_TF_OVERRIDE_FILE_NAME` — Override file name (default: `localstack_providers_override.tf`)
272
- - `LSTK_TF_DRY_RUN` — Generate the override file but do not run terraform
273
- - `AWS_ENDPOINT_URL` — Override the auto-resolved LocalStack endpoint
274
- - `AWS_REGION` — Fallback for `--region` flag
275
- - `AWS_ACCESS_KEY_ID` — Fallback for `--account` flag
276
-
277
- ### CDK Integration
278
-
279
- `lstk cdk` is a proxy that runs AWS CDK commands against LocalStack, pointing the CDK CLI at LocalStack's endpoints via environment variables (so deploys target the running emulator instead of real AWS).
280
-
281
- **Requires AWS CDK CLI version 2.177.0 or newer** on your `PATH` (lstk targets LocalStack purely through environment variables, which older CDK versions ignore).
282
-
283
- **lstk-specific flags** (appear after the `cdk` subcommand):
284
- - `--region <region>` — Deployment region (default: `us-east-1`)
285
-
286
- CDK always targets the default LocalStack account 000000000000; there is no --account flag.
287
-
288
- **Environment variables:**
289
- - `LSTK_CDK_CMD` — CDK binary to invoke (default: `cdk`)
290
- - `AWS_ENDPOINT_URL` — Override the auto-resolved LocalStack endpoint
291
- - `AWS_ENDPOINT_URL_S3` — Override the auto-derived S3 endpoint
292
- - `AWS_REGION` — Fallback for `--region` flag
293
-
294
- ### SAM Integration
295
-
296
- `lstk sam` is a proxy that runs AWS SAM CLI commands against LocalStack, automatically configuring the endpoint and credentials.
297
-
298
- **Requires AWS SAM CLI version 1.95.0 or newer** on your `PATH` (older versions ignore `AWS_ENDPOINT_URL` and would target real AWS).
299
-
300
- **lstk-specific flags** (appear after the `sam` subcommand):
301
- - `--region <region>` — Deployment region (default: `us-east-1`)
302
- - `--account <id>` — Target AWS account ID, 12 digits (default: `000000000000`)
303
-
304
- **Environment variables:**
305
- - `LSTK_SAM_CMD` — SAM binary to invoke (default: `sam`)
306
- - `AWS_ENDPOINT_URL` — Override the auto-resolved LocalStack endpoint
307
- - `AWS_ENDPOINT_URL_S3` — Override the auto-derived S3 endpoint
308
- - `AWS_REGION` — Fallback for `--region` flag
309
- - `AWS_ACCESS_KEY_ID` — Fallback for `--account` flag
310
-
311
- Known limitations versus `samlocal`: image/container-based Lambda (ECR) deploys and nested CloudFormation stacks are not supported.
312
-
313
- ## Usage
314
-
315
- ```bash
316
- # Start the LocalStack emulator
317
- lstk
318
-
319
- # Start non-interactively (e.g. in CI)
320
- LOCALSTACK_AUTH_TOKEN=<token> lstk --non-interactive
321
-
322
- # Stop the running emulator
323
- lstk stop
324
-
325
- # Restart the emulator
326
- lstk restart
327
-
328
- # Clear in-memory emulator state (buckets, functions, etc.) without stopping it
329
- lstk reset
330
-
331
- # Show emulator status and deployed resources
332
- lstk status
333
-
334
- # Stream emulator logs
335
- lstk logs --follow
336
-
337
- # Stream all emulator logs without filtering
338
- lstk logs --follow --verbose
339
-
340
- # Log in (opens browser for authentication)
341
- lstk login
342
-
343
- # Log out (removes stored credentials)
344
- lstk logout
345
-
346
- # Check whether a newer lstk version is available
347
- lstk update --check
348
-
349
- # Update lstk to the latest version
350
- lstk update
351
-
352
- # Show resolved config file path
353
- lstk config path
354
-
355
- # Run AWS CLI commands against LocalStack
356
- lstk aws s3 ls
357
-
358
- # Set up AWS CLI profile integration
359
- lstk setup aws
360
-
361
- # Set up Azure CLI integration (isolated config for `lstk az`)
362
- lstk setup azure
363
-
364
- # Run Azure CLI commands against LocalStack
365
- lstk az group list
366
-
367
- # Or redirect your global `az` so existing scripts hit LocalStack unmodified
368
- lstk az start-interception
369
- lstk az stop-interception
370
-
371
- # Save emulator state to a local file (`lstk save` is a shortcut for `lstk snapshot save`)
372
- lstk snapshot save ./my-snapshot.snapshot
373
-
374
- # Save emulator state as a named cloud snapshot on the LocalStack platform
375
- lstk snapshot save pod:my-baseline
376
-
377
- # Save to your own S3 bucket (credentials from AWS_* env vars or --profile)
378
- lstk snapshot save my-pod s3://my-bucket/prefix
379
-
380
- # Load a snapshot back into the running emulator (`lstk load` is a shortcut for `lstk snapshot load`)
381
- lstk snapshot load pod:my-baseline
382
- lstk snapshot load my-pod s3://my-bucket/prefix
383
-
384
- # List cloud snapshots on the LocalStack platform (--all for the whole organization)
385
- lstk snapshot list
386
-
387
- # List snapshots in your own S3 bucket (requires a running emulator)
388
- lstk snapshot list s3://my-bucket/prefix
389
-
390
- # Show metadata for a single cloud snapshot
391
- lstk snapshot show pod:my-baseline
392
-
393
- # Delete a cloud snapshot (prompts for confirmation; --force to skip)
394
- lstk snapshot remove pod:my-baseline
395
-
396
- # Initialize Terraform with LocalStack
397
- lstk terraform init
398
-
399
- # Plan Terraform deployment in a specific region
400
- lstk terraform --region us-west-2 plan
401
-
402
- # Apply Terraform configuration (short form)
403
- lstk tf apply
404
-
405
- # Bootstrap and deploy an AWS CDK app against LocalStack
406
- lstk cdk bootstrap
407
- lstk cdk deploy --require-approval never
408
-
409
- # Synthesize a CDK app (offline, no running emulator needed)
410
- lstk cdk synth
411
-
412
- # Build and deploy a SAM app against LocalStack
413
- lstk sam build
414
- lstk sam deploy
415
-
416
- ```
417
-
418
- ## Snapshots
419
-
420
- Snapshots capture the running emulator's state so you can restore it later.
421
-
422
- A snapshot reference is a **local file**, a **cloud snapshot**, or an **S3 remote**:
423
-
424
- - **Local file** — an absolute or relative path. A `.snapshot` extension is added if omitted (snapshots saved as `.zip` by older lstk versions still load).
425
- - **Cloud snapshot** — a name with the `pod:` prefix (e.g. `pod:my-baseline`), stored on the LocalStack platform. Requires authentication (`LOCALSTACK_AUTH_TOKEN` or `lstk login`).
426
- - **S3 remote** — an `s3://bucket/prefix` location backed by your own S3 bucket. Supported by `save`, `load`, and `list`.
427
-
428
- ```bash
429
- # Save (local, cloud, or S3)
430
- lstk snapshot save ./my-snapshot.snapshot
431
- lstk snapshot save pod:my-baseline
432
- lstk snapshot save my-pod s3://my-bucket/prefix
433
-
434
- # Load (starts the emulator first if needed)
435
- lstk snapshot load pod:my-baseline
436
- lstk snapshot load my-pod s3://my-bucket/prefix
437
-
438
- # List cloud snapshots — only your own by default, --all for the whole organization
439
- lstk snapshot list
440
- lstk snapshot list --all
441
-
442
- # List snapshots in an S3 bucket
443
- lstk snapshot list s3://my-bucket/prefix
444
-
445
- # Show metadata for a single cloud snapshot
446
- lstk snapshot show pod:my-baseline
447
-
448
- # Remove — cloud snapshots only; local files are never deleted by the CLI
449
- lstk snapshot remove pod:my-baseline # prompts for confirmation
450
- lstk snapshot remove pod:my-baseline --force # skip the prompt (required in non-interactive mode)
451
- ```
452
-
453
- `lstk snapshot load` supports merge strategies via `--merge` (`account-region-merge` (default), `overwrite`, `service-merge`) to control how snapshot state combines with running state.
454
-
455
- ### S3 remotes
456
-
457
- `save`, `load`, and `list` can target your own S3 bucket with an `s3://bucket/prefix` location. The pod name (the snapshot's identity within the bucket) is a positional argument separate from the `s3://` location — required for `load`, auto-generated for `save` when omitted, and unused for `list`.
458
-
459
- Credentials come from `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` (and optional `AWS_SESSION_TOKEN`), or from a named profile via `--profile <name>`. **Never put credentials in the URL** — lstk rejects an `s3://` ref that embeds them. lstk itself never touches S3: the running emulator performs the transfer, so these commands require a running emulator, and `list s3://…` queries the emulator rather than the LocalStack platform.
460
-
461
- ```bash
462
- export AWS_ACCESS_KEY_ID=...
463
- export AWS_SECRET_ACCESS_KEY=...
464
-
465
- lstk snapshot save my-pod s3://my-bucket/prefix
466
- lstk snapshot load my-pod s3://my-bucket/prefix
467
- lstk snapshot list s3://my-bucket/prefix
468
-
469
- # Or read credentials from a named AWS profile instead of env vars
470
- lstk snapshot save my-pod s3://my-bucket/prefix --profile my-aws-profile
471
- ```
472
-
473
- The S3 bucket must already exist — lstk checks up front and errors out rather than creating it on a typo. `remove` and `show` are not yet supported for S3 remotes.
474
-
475
- ### Auto-load on start
476
-
477
- The AWS emulator can automatically load a snapshot whenever it starts. Set the `snapshot` field on its `[[containers]]` block to any snapshot reference — a local file or a `pod:` cloud snapshot:
478
-
479
- ```toml
480
- [[containers]]
481
- type = "aws"
482
- port = "4566"
483
- snapshot = "pod:my-baseline"
484
- ```
485
-
486
- Override or disable it for a single run without editing the config:
487
-
488
- ```bash
489
- lstk start --snapshot pod:other-baseline # load a different snapshot this run
490
- lstk start --no-snapshot # skip auto-loading this run
491
- ```
492
-
493
- ## Extensions
494
-
495
- lstk supports Git-style extensions: running `lstk <name>`, for a name that isn't a built-in command, resolves and delegates to an external `lstk-<name>` executable — checked first in lstk's bundled-extensions directory, then on your `PATH` — forwarding all arguments and passing stdin/stdout/stderr through.
496
-
497
- ```bash
498
- lstk my-tool --flag # resolves and runs lstk-my-tool, if it exists
499
- ```
53
+ For the full command reference, configuration options, environment variables, and troubleshooting, see the **[lstk documentation](https://docs.localstack.cloud/aws/developer-tools/running-localstack/lstk/)**.
500
54
 
501
- Extensions receive context about the current lstk setup (config dir, auth token, running emulators) via environment variables, so they can integrate without reimplementing discovery.
55
+ ## Contributing
502
56
 
503
- See [docs/extensions-authoring.md](docs/extensions-authoring.md) for the extension contract and how to author your own.
57
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, architecture, and pull request guidelines.
504
58
 
505
59
  ## Reporting bugs
506
60
 
507
- Feedback is welcome! Use the repository issue tracker for bug reports or feature requests.
61
+ Feedback is welcome! Use the [repository issue tracker](https://github.com/localstack/lstk/issues) for bug reports or feature requests.
package/lstk CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@localstack/lstk_darwin_amd64",
3
- "version": "0.17.1",
3
+ "version": "0.19.0",
4
4
  "bin": {
5
5
  "lstk_darwin_amd64": "lstk"
6
6
  },