Skip to content

fix(ops): cipher-api Known Roads + compose fixes - #1154

Merged
POWERFULMOVES merged 3 commits into
mainfrom
fix/cipher-api-known-roads
Mar 28, 2026
Merged

POWERFULMOVES merged 3 commits into
mainfrom
fix/cipher-api-known-roads

Conversation

@POWERFULMOVES

@POWERFULMOVES POWERFULMOVES commented Mar 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Compose fix: cipher-api healthcheck changed from localhost to 127.0.0.1 — Alpine BusyBox wget resolves to IPv6 [::1] first, but Node.js 0.0.0.0 only binds IPv4
  • Compose env: Added OLLAMA_BASE_URL=http://pmoves-ollama:11434 so cipher-api can reach in-network Ollama (interim — TensorZero-routed config with cloud fallback is a separate PR)
  • Makefile: Added cipher-api to up-agents-stack, new up-cipher + cipher-health make targets — closes Known Roads gap where cipher-api had no canonical make path

Context

Cipher-api was in the agents compose profile but missing from all up-* make targets. Starting it required raw docker compose which bypasses the --env-file chain and fails on CHIT_PROD_PASSPHRASE. This PR gives it a proper Known Roads path.

Deferred (separate PR)

  • Pmoves-cipher/memAgent/cipher.yml LLM provider config — needs TensorZero routing (not direct Ollama), TAC tree documentation, cloud fallback chain
  • Pmoves-cipher/src/core/mcp/client.ts MCP SDK TS2353 fix — submodule-level PR

Test plan

  • make -C pmoves up-cipher builds and starts cipher-api
  • make -C pmoves cipher-health returns healthy
  • make -C pmoves up-agents-stack includes cipher-api in startup
  • Healthcheck passes inside container (wget http://127.0.0.1:3000/health)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added Cipher API service with independent startup and health check capabilities.
  • Bug Fixes

    • Fixed IPv6 localhost resolution issue in health checks.
    • Consolidated container registry organization and updated image references across integrations.
  • Chores

    • Normalized integration kit image references for consistency.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Mar 28, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@POWERFULMOVES has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 25 minutes and 49 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 25 minutes and 49 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a3ce4e37-6276-4e61-996a-0d33f89dd534

📥 Commits

Reviewing files that changed from the base of the PR and between 2e390de and f3d3970.

📒 Files selected for processing (3)
  • pmoves/Makefile
  • pmoves/docker-compose.yml
  • pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md
📝 Walkthrough

Walkthrough

This pull request consolidates the GHCR registry from cataclysm-studios-inc to powerfulmoves namespace, integrates cipher-api into the agent stack with Ollama wiring, extends the CHIT safe paths allowlist for compose integration files, and adds health check automation. Updates include image reference normalization across docker-compose files, Makefile targets for cipher service management, and operational documentation of these changes.

Changes

Cohort / File(s) Summary
CHIT Configuration
.claude/hooks/damage-control/patterns.yaml
Extended chitSafePaths allowlist to include docker-compose.integrations and pr-kits for safe CHIT operations on integration compose overrides.
Makefile Targets
pmoves/Makefile
Updated up-agents-stack to include cipher-api; added up-cipher target to bring up cipher-api with build; added cipher-health target for health check probing on port 8096.
Cipher API Integration
pmoves/docker-compose.yml
Added OLLAMA_BASE_URL=http://pmoves-ollama:11434 environment variable to cipher-api service; updated healthcheck probe to use 127.0.0.1 instead of localhost to avoid IPv6 resolution issues.
Registry Image References
pmoves/docker-compose.integrations.images.yml, pmoves/integrations/pr-kits/firefly/..., pmoves/integrations/pr-kits/jellyfin/..., pmoves/integrations/pr-kits/open-notebook/..., pmoves/integrations/pr-kits/wger/...
Normalized GHCR image namespace and casing from POWERFULMOVES/cataclysm-studios-inc to lowercase powerfulmoves across pmoves-yt, firefly, jellyfin, open-notebook, and wger service image references.
Operational Documentation
pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md, pmoves/docs/operations/CONTAINER_REBUILD_MANIFEST.md
Documented GHCR registry consolidation, cipher-api activation, image reference corrections, CHIT safe path extensions, and make target additions for cipher service bring-up and health monitoring.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Poem

🐰 With whiskers twitching, I hopped through the files,
Registry rabbits now organized in styles,
Cipher hops faster with Ollama's bright light,
Safe paths extended, our burrow's built right! 🔒✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The description covers Summary, Context, and Test plan with clear explanations of the fixes and reasoning, but omits the required Testing section with command output and the Required Checks/Review Coordination sections. Add a Testing section with actual commands/output, confirm CHIT Contract Check status, document any Codex/Copilot reviews, and include Reviewer Notes if needed.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main changes: cipher-api Known Roads (make targets) and compose fixes (healthcheck + env var).
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
  • Commit unit tests in branch fix/cipher-api-known-roads

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.

🧹 Nitpick comments (2)
.claude/hooks/damage-control/patterns.yaml (1)

883-886: Consider using more specific path prefixes to limit scope.

The chitSafePaths check uses substring matching (see write-tool-damage-control.py line 125: if safe_normalized in normalized_fwd). The bare string "pr-kits" would match any path containing that substring anywhere, including potentially sensitive paths like some/path/pr-kits/secrets.env.

For tighter scoping while still enabling the intended PR-kit compose edits:

♻️ More specific path patterns
   # Integration compose overrides — registry reference fixes (GHCR org consolidation)
-  - "docker-compose.integrations"
+  - "docker-compose.integrations.images.yml"
   # PR-kit compose files — integration starter templates
-  - "pr-kits"
+  - "integrations/pr-kits"

This maintains the ability to edit pmoves/integrations/pr-kits/*/docker-compose.pmoves-net.yml files while preventing accidental matches on unrelated paths containing "pr-kits".

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

In @.claude/hooks/damage-control/patterns.yaml around lines 883 - 886, The
current patterns.yaml entry uses a bare substring "pr-kits" which the
chitSafePaths check (see write-tool-damage-control.py and the conditional "if
safe_normalized in normalized_fwd") will match anywhere and can accidentally
allow sensitive files; change the pattern to a more specific path prefix that
only matches the intended compose files (for example use the repo-relative
prefix used by your integrations like "pmoves/integrations/pr-kits/" or
"pmoves/integrations/pr-kits/*/docker-compose.pmoves-net.yml") so that
write-tool-damage-control.py's substring check only permits the intended PR-kit
compose edits.
pmoves/docker-compose.yml (1)

2169-2169: Consider using environment variable override pattern for consistency.

The OLLAMA_BASE_URL is hardcoded while other environment variables in this service use the ${VAR:-default} pattern (e.g., NEO4J_USER=${NEO4J_USER:-neo4j}). For consistency and flexibility in different deployment scenarios:

♻️ Suggested change for consistency
-      - OLLAMA_BASE_URL=http://pmoves-ollama:11434
+      - OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-http://pmoves-ollama:11434}

Based on learnings: "teams pre-wire environment variables using the ${VAR:-} empty-default pattern for forward compatibility."

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

In `@pmoves/docker-compose.yml` at line 2169, The OLLAMA_BASE_URL env var is
hardcoded; update its declaration to follow the existing override pattern by
using the shell parameter expansion syntax so it can be pre-wired or overridden
(e.g., change the value to use ${OLLAMA_BASE_URL:-http://pmoves-ollama:11434}) —
locate the OLLAMA_BASE_URL entry in the service env block and replace the
literal URL with the ${VAR:-default} form to match other variables like
NEO4J_USER.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.claude/hooks/damage-control/patterns.yaml:
- Around line 883-886: The current patterns.yaml entry uses a bare substring
"pr-kits" which the chitSafePaths check (see write-tool-damage-control.py and
the conditional "if safe_normalized in normalized_fwd") will match anywhere and
can accidentally allow sensitive files; change the pattern to a more specific
path prefix that only matches the intended compose files (for example use the
repo-relative prefix used by your integrations like
"pmoves/integrations/pr-kits/" or
"pmoves/integrations/pr-kits/*/docker-compose.pmoves-net.yml") so that
write-tool-damage-control.py's substring check only permits the intended PR-kit
compose edits.

In `@pmoves/docker-compose.yml`:
- Line 2169: The OLLAMA_BASE_URL env var is hardcoded; update its declaration to
follow the existing override pattern by using the shell parameter expansion
syntax so it can be pre-wired or overridden (e.g., change the value to use
${OLLAMA_BASE_URL:-http://pmoves-ollama:11434}) — locate the OLLAMA_BASE_URL
entry in the service env block and replace the literal URL with the
${VAR:-default} form to match other variables like NEO4J_USER.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 16d03994-f981-4a4f-930b-2af1743afe30

📥 Commits

Reviewing files that changed from the base of the PR and between beb2e44 and 2e390de.

📒 Files selected for processing (10)
  • .claude/hooks/damage-control/patterns.yaml
  • pmoves/Makefile
  • pmoves/docker-compose.integrations.images.yml
  • pmoves/docker-compose.yml
  • pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md
  • pmoves/docs/operations/CONTAINER_REBUILD_MANIFEST.md
  • pmoves/integrations/pr-kits/firefly/docker-compose.pmoves-net.yml
  • pmoves/integrations/pr-kits/jellyfin/docker-compose.pmoves-net.yml
  • pmoves/integrations/pr-kits/open-notebook/docker-compose.pmoves-net.yml
  • pmoves/integrations/pr-kits/wger/docker-compose.pmoves-net.yml

Comment thread pmoves/docker-compose.yml
- NEO4J_USER=${NEO4J_USER:-neo4j}
- NEO4J_PASSWORD=${NEO4J_PASSWORD:-neo4j}
- NATS_URL=${NATS_URL:-nats://nats:pmoves@nats:4222}
- OLLAMA_BASE_URL=http://pmoves-ollama:11434

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.

🔥 The Roast: Every other service in this file uses ${OLLAMA_URL:-http://pmoves-ollama:11434} (line 1746, 1908) or ${OLLAMA_BASE_URL:-http://pmoves-ollama:11434} (line 2676) — but cipher-api gets a hardcoded value with no env var override. It's like this one service got invited to the party but wasn't told the dress code. The PR description literally says TensorZero routing is "deferred" — how exactly do you plan to route it if the URL is baked into YAML?

🩹 The Fix:

Suggested change
- OLLAMA_BASE_URL=http://pmoves-ollama:11434
- OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-http://pmoves-ollama:11434}

📏 Severity: suggestion

Comment thread pmoves/Makefile
.PHONY: up-cipher
up-cipher: ## Start Cipher Memory (knowledge-graph memory for Claude Code / agents)
@$(DC) --profile agents up -d --build cipher-api
@echo "✔ Cipher Memory ready at http://localhost:$${CIPHER_PORT:-8096}"

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.

🔥 The Roast: docker compose up -d returns as soon as the container is created, not when it's healthy. Printing "✔ Cipher Memory ready" right after is like shouting "dinner's served!" the moment you put the pizza in the oven. You literally created a cipher-health target 4 lines below this — use it! Also, port 8096 is Jellyfin's default host port too, so when both are running, someone's getting a surprise.

🩹 The Fix: Either call cipher-health after the up -d (with a retry loop), or soften the message to "starting..." and point users to make cipher-health. Also consider defaulting CIPHER_PORT to something other than 8096 to avoid the Jellyfin collision.

📏 Severity: warning

@kilo-code-bot

kilo-code-bot Bot commented Mar 28, 2026

Copy link
Copy Markdown
Contributor

Code Review Roast 🔥

Verdict: 2 Issues Found (carried forward) | Recommendation: Track as follow-up (PR already merged)

Overview

Severity Count
🚨 critical 0
⚠️ warning 2
💡 suggestion 0
🤏 nitpick 0
Issue Details (click to expand)
File Line Roast
pmoves/docker-compose.yml 2169 OLLAMA_BASE_URL hardcoded without ${VAR:-default} override pattern — every other service uses the env-var pattern
pmoves/Makefile 2204 up-cipher prints "✔ ready" after docker compose up -d without waiting for healthcheck; also defaults to port 8096 which collides with Jellyfin

🏆 Best part: The incremental commit is genuinely impressive in scope. The publishState.ts state machine is a clean, well-tested piece of work — 9 test cases covering the full pipeline lifecycle with zero ambiguity. The room manifest schema extension (team_refs, service_refs, launcher_refs) has proper minLength, pattern, and uniqueItems constraints. The fleet remote access runbook is the most thorough operational doc I've seen in this repo — 11-item context pack, secret separation table, ETag-aware ACL policy rules. Whoever wrote this has been burned by credential leaks before and it shows.

💀 Worst part: The 2 carried-forward issues from the first review commit are still sitting there untouched. The hardcoded OLLAMA_BASE_URL on line 2169 remains the odd one out in a file where every other env var uses ${VAR:-default}, and the up-cipher target still celebrates "✔ ready" the instant docker compose up -d returns. These aren't new sins — they're the ones that got a pass last time.

📊 Overall: This PR evolved from a focused ops fix (GHCR registry + healthcheck IPv6) into a substantial feature drop — fleet remote access runbooks, publish pipeline state machine with tests, room schema extensions, submodule bumps, and a mountain of documentation. The new code is clean. The old warnings are still warnings. Like a house that got a beautiful new addition but still hasn't fixed the leaky faucet in the original bathroom.

Carried-Forward Issues (unchanged from previous review)
  1. pmoves/docker-compose.yml:2169OLLAMA_BASE_URL=http://pmoves-ollama:11434 is the only service env without the ${VAR:-default} pattern. Should be OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-http://pmoves-ollama:11434}.
  2. pmoves/Makefile:2204up-cipher prints readiness before healthcheck passes. Add a $(MAKE) cipher-health call after docker compose up -d, or use --wait flag.
Files Reviewed (27 files in incremental + 10 from prior review)

New files reviewed (incremental):

  • pmoves/ui/app/dashboard/publishState.ts — clean, well-structured state machine
  • pmoves/ui/__tests__/publishState.test.ts — 9 test cases, good coverage
  • pmoves/ui/app/dashboard/studio-board/page.tsx — integration clean
  • pmoves/ui/app/dashboard/videos/page.tsx — integration clean
  • pmoves/ui/jest.config.js — clean config
  • pmoves/ui/lib/rooms.ts — type additions for new schema fields
  • pmoves/contracts/schemas/room/room.manifest.v1.schema.json — clean schema with proper constraints
  • pmoves/docs/operations/FLEET_REMOTE_ACCESS_RUNBOOK.md — thorough ops doc
  • pmoves/docs/TAILSCALE_NODE_HYGIENE.md — good privacy sanitization of device names
  • pmoves/docs/AGENTS/CODEX_OPERATOR_HOME.md — clean fleet section addition
  • pmoves/docs/AGENTS/CODEX_CLAUDE_PARITY_MAP.md — clean parity additions
  • pmoves/docs/AGENTS/CODEX_ECOSYSTEM_TRAVERSAL.md — clean
  • pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md — agent log entries
  • pmoves/docs/PMOVES.AI PLANS/PMOVES_TAILSCALE_STATUS.md — clean status update
  • pmoves/docs/PMOVES.AI PLANS/README_DOCS_INDEX.md — clean index update
  • pmoves/docs/operations/RUSTDESK_SELF_HOSTED.md — watcher install additions clean
  • docs/SECRETS_ONBOARDING.md — clean credential guidance
  • pmoves/env.shared.example — clean TAILSCALE_API_KEY addition
  • pmoves/config/rooms/*.json — clean ref additions matching schema
  • .claude/CLAUDE.md — fleet section addition
  • .claude/context/nats-subjects.md — fleet audit subjects
  • .claude/context/services-catalog.md — fleet audit watcher catalog entry
  • PMOVES-ClawZ / PMOVES-autoresearch / PMOVES-transcribe-and-fetch — submodule gitlinks

Carried forward from prior review:

  • pmoves/Makefile — 1 issue (premature ready message)
  • pmoves/docker-compose.yml — 1 issue (hardcoded OLLAMA_BASE_URL)

Fix these issues in Kilo Cloud


Reviewed by glm-5.1 (incremental from 2e390de) · incremental tokens


Reviewed by glm-5.1 · 416,244 tokens

POWERFULMOVES and others added 3 commits March 28, 2026 17:09
Alpine BusyBox wget resolves `localhost` to IPv6 [::1] first, but
Node.js 0.0.0.0 binding only listens on IPv4. Changed healthcheck
URL from localhost to 127.0.0.1.

Added OLLAMA_BASE_URL=http://pmoves-ollama:11434 to cipher-api env
so the container can reach the in-network Ollama instance. This is
the interim direct connection; TensorZero-routed config with cloud
fallback is a separate PR (needs TAC tree + cipher.yml rework).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
cipher-api was in the agents compose profile but missing from all
make targets — any attempt to start it required raw docker compose
(which bypasses the env-file chain and fails on CHIT_PROD).

- Added cipher-api to up-agents-stack service list
- New up-cipher target (--build for fresh image)
- New cipher-health target (curl health probe)

Closes Known Roads gap: cipher-api now has a canonical make path.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
z890-claude session: PR #1148 review/merge, 5/6 manifest images
rebuilt (tensorzero, botz, flute-gw, publisher-discord, cipher-api),
3 Dockerfile blockers resolved, n8n runners activated (Python+JS),
28 healthy containers (up from 20/23).

CLAIM/RELEASE/ACK signed for PHI-4482-T1.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@POWERFULMOVES
POWERFULMOVES force-pushed the fix/cipher-api-known-roads branch from 2e390de to f3d3970 Compare March 28, 2026 21:09
@POWERFULMOVES
POWERFULMOVES merged commit 6b5a4e0 into main Mar 28, 2026
16 of 18 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Docker Hardening Validation

Hardening Validation Report

Validated: Sat Mar 28 21:09:45 UTC 2026

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.

1 participant