Skip to content

fix(compose): align comfy-watcher MinIO credential variables - #710

Merged
POWERFULMOVES merged 2 commits into
mainfrom
fix/comfy-watcher-minio-vars
Feb 25, 2026
Merged

POWERFULMOVES merged 2 commits into
mainfrom
fix/comfy-watcher-minio-vars

Conversation

@POWERFULMOVES

@POWERFULMOVES POWERFULMOVES commented Feb 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • Aligns comfy-watcher's MinIO env var fallbacks to use MINIO_USER/MINIO_PASSWORD instead of MINIO_ROOT_USER/MINIO_ROOT_PASSWORD
  • Matches the canonical variable names used by all other services in env.tier-data
  • Cherry-picked from post-merge fix on the Hardened-Integrations branch

Test plan

  • comfy-watcher container starts and connects to MinIO with correct credentials
  • docker ps --filter health=unhealthy returns 0 results
  • CI passes

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Authentication environment variables for the cloud storage service now require explicit access and secret keys instead of falling back to previous defaults; deployments should supply these variables. Service behavior remains unchanged otherwise.

MINIO_ACCESS_KEY fallback changed from MINIO_ROOT_USER to MINIO_USER
and MINIO_SECRET_KEY fallback from MINIO_ROOT_PASSWORD to MINIO_PASSWORD
to match the canonical variable names in env.tier-data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Feb 25, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

Docker Compose updated: the comfy-watcher service now sets MinIO credentials using MINIO_ACCESS_KEY and MINIO_SECRET_KEY directly, removing previous fallback references to MINIO_ROOT_USER / MINIO_ROOT_PASSWORD.

Changes

Cohort / File(s) Summary
MinIO env change
pmoves/docker-compose.yml
Replaced comfy-watcher environment entries from MINIO_ACCESS_KEY:-${MINIO_ROOT_USER:-minioadmin} and MINIO_SECRET_KEY:-${MINIO_ROOT_PASSWORD:-minioadmin} to MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY} and MINIO_SECRET_KEY=${MINIO_SECRET_KEY} (removed root-based fallbacks).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I nibbled the compose, made the keys clear,

MINIO_ACCESS and SECRET now hop near,
No root-fallback crumbs left on the tray,
Comfy-watcher sniffs the simpler way. 🥕🔑

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description provides a summary and test plan, but is missing critical required sections: Testing section with documented commands/output, Required Checks checklist, Review Coordination checklist, and Reviewer Notes. Add the missing required sections from the template: Testing section with commands run, Required Checks and Review Coordination checklists, and update CI status once available.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: aligning MinIO credential variables in the comfy-watcher service configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/comfy-watcher-minio-vars

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pmoves/docker-compose.yml`:
- Around line 2255-2256: Remove the hardcoded "minioadmin" fallback from the
MINIO_ACCESS_KEY and MINIO_SECRET_KEY environment entries so no implicit default
credentials remain; update the MINIO_ACCESS_KEY and MINIO_SECRET_KEY lines to
not fall back to ${MINIO_USER:-minioadmin} or ${MINIO_PASSWORD:-minioadmin}
(e.g., use ${MINIO_ACCESS_KEY} and ${MINIO_SECRET_KEY} or require explicit
values) and ensure any related references to MINIO_USER or MINIO_PASSWORD are
adjusted accordingly so the service fails fast when credentials are not
provided.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5318819 and 5d8aeb4.

📒 Files selected for processing (1)
  • pmoves/docker-compose.yml

Comment thread pmoves/docker-compose.yml Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
pmoves/docker-compose.yml (1)

2255-2256: ⚠️ Potential issue | 🟠 Major

Restore canonical MinIO fallback to avoid auth breakage in existing env setups.

Line 2255 and Line 2256 now require MINIO_ACCESS_KEY/MINIO_SECRET_KEY only, so environments that provide only MINIO_USER/MINIO_PASSWORD can end up with empty creds for comfy-watcher. Keep no default secret, but add canonical fallback (or require canonical vars explicitly).

🔧 Proposed fix
-      - MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY}
-      - MINIO_SECRET_KEY=${MINIO_SECRET_KEY}
+      - MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY:-${MINIO_USER:?MINIO_USER is required}}
+      - MINIO_SECRET_KEY=${MINIO_SECRET_KEY:-${MINIO_PASSWORD:?MINIO_PASSWORD is required}}

As per coding guidelines, "Preserve cross-platform bring-up behavior (Windows/WSL/Linux, amd64/arm64)."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pmoves/docker-compose.yml` around lines 2255 - 2256, Restore the canonical
MinIO fallback for the comfy-watcher service by making the environment entries
for MINIO_ACCESS_KEY and MINIO_SECRET_KEY use the canonical vars when the
canonical names are not provided (i.e., fall back to MINIO_USER and
MINIO_PASSWORD), rather than leaving them empty; update the env entries that
currently set MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY} and
MINIO_SECRET_KEY=${MINIO_SECRET_KEY} to use shell-style variable expansion to
prefer MINIO_ACCESS_KEY/MINIO_SECRET_KEY but fall back to
MINIO_USER/MINIO_PASSWORD, keeping no hardcoded defaults.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@pmoves/docker-compose.yml`:
- Around line 2255-2256: Restore the canonical MinIO fallback for the
comfy-watcher service by making the environment entries for MINIO_ACCESS_KEY and
MINIO_SECRET_KEY use the canonical vars when the canonical names are not
provided (i.e., fall back to MINIO_USER and MINIO_PASSWORD), rather than leaving
them empty; update the env entries that currently set
MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY} and MINIO_SECRET_KEY=${MINIO_SECRET_KEY} to
use shell-style variable expansion to prefer MINIO_ACCESS_KEY/MINIO_SECRET_KEY
but fall back to MINIO_USER/MINIO_PASSWORD, keeping no hardcoded defaults.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5d8aeb4 and 7b7edc2.

📒 Files selected for processing (1)
  • pmoves/docker-compose.yml

@POWERFULMOVES
POWERFULMOVES merged commit 91e6bde into main Feb 25, 2026
16 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Docker Hardening Validation

Hardening Validation Report

Validated: Wed 25 Feb 2026 06:54:16 AM UTC

Services Checked

PMOVES.AI Docker Hardening Validation

[INFO] Checking: pmoves/docker-compose.hardened.yml

[INFO] Validating: hi-rag-gateway-v2
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: extract-worker
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: langextract
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: presign
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: render-webhook
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: retrieval-eval
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: pdf-ingest
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: jellyfin-bridge
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: invidious-companion-proxy
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: ffmpeg-whisper
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: media-video
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: media-audio
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: hi-rag-gateway-v2-gpu
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: hi-rag-gateway-gpu
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: deepresearch
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: supaserch
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: publisher-discord
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: mesh-agent
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: nats-echo-req
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: nats-echo-res
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: publisher
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: analysis-echo
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: graph-linker
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: comfy-watcher
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: grayjay-plugin-host
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: agent-zero
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: archon
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: channel-monitor
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: pmoves-yt
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: notebook-sync
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: supabase_service_role_key
[WARN] No user directive
[WARN] No read_only directive
[WARN] No cap_drop: ["ALL"]
[WARN] No no-new-privileges
[WARN] No resource limits

[INFO] Validating: supabase_jwt_secret
[WARN] No user directive
[WARN] No read_only directive
[WARN] No cap_drop: ["ALL"]
[WARN] No no-new-privileges
[WARN] No resource limits

======================================
Summary: 120 passed, 40 warnings, 0 errors

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants