bullmq-dash 0.2.7 → 0.3.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/README.md CHANGED
@@ -15,7 +15,7 @@ Terminal UI dashboard for [BullMQ](https://bullmq.io/)
15
15
 
16
16
  ## Requirements
17
17
 
18
- - [Bun](https://bun.sh/) >= 1.0.0
18
+ - [Bun](https://bun.sh/) >= 1.3.0
19
19
  - Redis server with BullMQ queues
20
20
 
21
21
  ## Installation
@@ -38,7 +38,7 @@ npx bullmq-dash
38
38
  bullmq-dash --tui
39
39
 
40
40
  # Connect with a URL
41
- bullmq-dash --tui --redis-url redis://localhost:6379
41
+ bullmq-dash --tui --redis-url <redis-url>
42
42
  ```
43
43
 
44
44
  ### CLI Options
@@ -50,8 +50,8 @@ Options:
50
50
  --profile <name> Use a named profile from the config file
51
51
  --config <path> Path to config file
52
52
  (default: ~/.config/bullmq-dash/config.json)
53
- --redis-url <url> Full connection URL: redis://[user:pass@]host[:port][/db]
54
- (rediss:// for TLS)
53
+ --redis-url <url> Full Redis connection URL
54
+ (TLS URLs are supported)
55
55
  --poll-interval <ms> Polling interval in milliseconds (default: 3000)
56
56
  --queues <names> Comma-separated queue names to monitor
57
57
  -v, --version Show version
@@ -69,20 +69,20 @@ were retired so there is one obvious way to point bullmq-dash at a server.
69
69
  bullmq-dash --tui
70
70
 
71
71
  # Connect via a URL
72
- bullmq-dash --tui --redis-url redis://localhost:6379
73
- bullmq-dash --tui --redis-url redis://user:pass@redis.example.com:6379/0
72
+ bullmq-dash --tui --redis-url <local-redis-url>
73
+ bullmq-dash --tui --redis-url <remote-redis-url>
74
74
 
75
- # Use TLS (rediss://) and percent-encode special chars in passwords
76
- bullmq-dash --tui --redis-url rediss://default:p%40ss@redis.upstash.io:6379
75
+ # Use TLS
76
+ bullmq-dash --tui --redis-url <tls-redis-url>
77
77
 
78
78
  # Connect via a named profile from the config file
79
79
  bullmq-dash --tui --profile prod
80
80
 
81
81
  # Monitor specific queues only
82
- bullmq-dash --tui --redis-url redis://localhost --queues email,notifications,payments
82
+ bullmq-dash --tui --redis-url <redis-url> --queues email,notifications,payments
83
83
 
84
84
  # Custom polling interval (5 seconds)
85
- bullmq-dash --tui --redis-url redis://localhost --poll-interval 5000
85
+ bullmq-dash --tui --redis-url <redis-url> --poll-interval 5000
86
86
  ```
87
87
 
88
88
  ## Connection Profiles
@@ -95,7 +95,7 @@ and reference it with `--profile`:
95
95
  {
96
96
  "defaultProfile": "local",
97
97
  "profiles": {
98
- "local": { "redis": { "url": "redis://localhost:6379" } },
98
+ "local": { "redis": { "url": "<local-redis-url>" } },
99
99
  "prod": {
100
100
  "redis": { "url": "${REDIS_PROD_URL}" },
101
101
  "queues": ["payments", "notifications"]
@@ -105,7 +105,7 @@ and reference it with `--profile`:
105
105
  }
106
106
  ```
107
107
 
108
- Each profile carries a single `redis.url`. The `${VAR}` form interpolates an environment variable as the **whole value** (partial substitution is intentionally not supported), which pairs nicely with managed providers (Upstash, Heroku Redis, Render, Railway, Fly) that hand you a single `REDIS_URL` env var. For inline auth, percent-encode any special characters in the password.
108
+ Each profile carries a single `redis.url`. The `${VAR}` form interpolates an environment variable as the **whole value** (partial substitution is intentionally not supported), which pairs nicely with managed providers (Upstash, Heroku Redis, Render, Railway, Fly) that hand you a single `REDIS_URL` env var. Prefer environment-backed profile values for authenticated Redis URLs.
109
109
 
110
110
  ```bash
111
111
  # Connect using the default profile (defaultProfile field above)
@@ -116,7 +116,7 @@ bullmq-dash --tui --profile prod
116
116
  bullmq-dash queues list --profile prod
117
117
 
118
118
  # A direct --redis-url overrides whatever the profile would have selected
119
- bullmq-dash queues list --profile prod --redis-url redis://localhost:6380
119
+ bullmq-dash queues list --profile prod --redis-url <redis-url>
120
120
  ```
121
121
 
122
122
  **Resolution order** (highest precedence first):
@@ -221,15 +221,79 @@ bun run build
221
221
 
222
222
  # Run production build
223
223
  bun run start
224
+
225
+ # Audit the immutable 0.2.7 Socket target (historical evidence)
226
+ bun run security:audit-0.2.7
227
+
228
+ # Score the configured package version after it is published
229
+ bun run security:score
230
+
231
+ # Verify forbidden local-only files are ignored and not tracked
232
+ bun run security:verify-source-control
233
+
234
+ # Verify Bun package manager pinning, bun.lock tracking, and frozen installs
235
+ bun run security:verify-lockfile
236
+
237
+ # Verify CI/publish workflows pin actions, lock down releases, and score after publish
238
+ bun run security:verify-workflows
239
+
240
+ # Verify source import policy, npm tarball contents, and stripped publish manifest
241
+ bun run security:verify-package
242
+
243
+ # Run release security checks in order
244
+ bun run security:release
224
245
  ```
225
246
 
247
+ `bun run security:audit-0.2.7` audits the originally published security target
248
+ (`bullmq-dash@0.2.7`). Because npm versions are immutable, this is historical
249
+ evidence only — it reports the alerts on that artifact but cannot fix them.
250
+
251
+ `bun run security:verify-package` packs the release tarball end-to-end. It
252
+ checks the source manifest, rejects direct source or packed-entrypoint imports
253
+ of `ioredis` or `zod`, rejects dynamic-code or shell primitives in source or
254
+ `dist/index.js`, rejects literal credentialed `redis://` URL examples in
255
+ packed text — i.e. `redis://`-prefixed authority forms that embed a
256
+ `username:password` pair before the host (a focused doc-leakage guard, not a
257
+ general secret scanner; base64 / env-var-interpolated / split-string forms
258
+ are out of scope by design and belong to repo-level tools like git-secrets
259
+ or gitleaks), enforces packed-tarball size and entry-count limits, and
260
+ verifies the stripped publish manifest. Note: `ioredis` remains a transitive
261
+ dependency through `bullmq`; the policy blocks _direct_ imports only.
262
+
263
+ `bun run security:score` runs the Socket package score against the version in
264
+ `package.json` (must already be published to npm). It compares the alert set
265
+ against an accepted-alert allowlist that includes the capabilities a Redis
266
+ monitoring tool legitimately needs (`networkAccess`, `urlStrings`,
267
+ `filesystemAccess`, `envVars`), Socket's transient `recentlyPublished` window,
268
+ and the transitive alert types present in the `bullmq` and `@opentui/core`
269
+ graphs. The gate exits nonzero only when an alert type appears outside that set,
270
+ which surfaces real regressions from dependency updates without paging on every
271
+ publish.
272
+
273
+ `bun run security:verify-workflows` rejects mutable GitHub Action refs,
274
+ `pull_request_target` triggers, and direct `${{ github.event.* }}` interpolation
275
+ in workflow commands. It also verifies CI and publish workflows run the
276
+ source-control, lockfile, workflow, and package policy verifiers, CI uses
277
+ read-only permissions, and the npm publish workflow scopes secrets to approved
278
+ step env entries, is release-only, runs the source-control, lockfile, workflow,
279
+ and package verifiers before publishing, uses least privilege, keeps npm
280
+ lifecycle scripts enabled, publishes with provenance, installs the Socket CLI by
281
+ the configured exact version `1.1.94`, and runs the post-publish Socket score
282
+ gate.
283
+
284
+ `bun run security:verify-source-control` rejects tracked `.env` / `.envrc` /
285
+ `.npmrc` files, build output, publish manifest backups, and generated package
286
+ archives, and verifies that the ignore policy covers those local-only files.
287
+
288
+ `bun run security:verify-lockfile` rejects missing or untracked `bun.lock`,
289
+ competing package manager lockfiles, a mismatched `packageManager` pin, and CI
290
+ or publish workflows that install dependencies without `--frozen-lockfile`.
291
+
226
292
  ## Tech Stack
227
293
 
228
294
  - **Runtime**: [Bun](https://bun.sh/)
229
295
  - **TUI Framework**: [@opentui/core](https://github.com/pinkpixel-co/opentui)
230
296
  - **Queue Library**: [BullMQ](https://bullmq.io/)
231
- - **Redis Client**: [ioredis](https://github.com/redis/ioredis)
232
- - **Config Validation**: [Zod](https://zod.dev/)
233
297
  - **Build Tool**: Bun bundler
234
298
 
235
299
  ## Color Theme