Commit Graph

354 Commits

Author SHA1 Message Date
Dr.Lt.Data
6288fb0e2a feat(security): add dedicated install flags decoupled from security_level
Gate 'install via git URL' and 'install via pip' with dedicated opt-in
boolean flags (allow_git_url_install / allow_pip_install) in config.ini
[default], fully replacing the security_level term on those surfaces
(REPLACE, not AND — a strict level no longer denies when the flag is on;
a weak level no longer allows when the flag is off).

- glob/manager_server.py: pure predicate is_dedicated_install_allowed
  (flag AND loopback, request-time args.listen); REPLACE gates at
  /customnode/install/git_url and /customnode/install/pip; batch
  unknown-URL arm routes through the same full predicate at the risky
  position (loopback term is load-bearing — the middle entry gate has
  no network-position term; the entry gate itself stays in force);
  unknown-pip in batch stays unconditionally blocked; new
  SECURITY_MESSAGE_FLAG_* denial constants name the responsible flag;
  security_403_response gains flag_token (comfyui_outdated keeps precedence)
- glob/manager_core.py: register both keys (read via get_bool default-false,
  write list, exception fallback); "true"-only truthy; restart-only activation
- js/common.js: 403 dialog copy names the responsible flag at the two
  install call sites
- README.md: security-policy docs for both flags (per-surface scope incl.
  the batch entry-gate qualifier, REPLACE decoupling, loopback bound,
  opt-in config snippet, default-deny + migration note); stale tier lists
  corrected against the actual gates
- CHANGELOG.md: opt-in migration note + accepted residual risk (flags
  bypass the forced-strong outdated-ComfyUI hardening on loopback,
  opt-in only), decoupling claim qualified for the batch entry gate

Tests: unit suite (predicate truth table, REPLACE litmus both directions,
AST binding-proofs against live handlers, subprocess-isolated config
contract) plus a real-server E2E suite that mounts the Manager-under-test
via git worktree (exact-SHA pin, detached) against a real ComfyUI and
exercises both flag surfaces and both arms — deny arms (403 + flag-naming
body/log + no install artifact), git-URL allow arm (real clone), pip allow
arm as a two-phase reservation oracle — with zero-residual self-clean.
Module skips without E2E_COMFYUI_ROOT; unit suite unaffected.

The manager-v4 branch ships the identical policy (shared invariants +
config contract); this tree uses the degraded predicate 'flag AND
loopback' (no personal_cloud-equivalent mode here).
2026-06-15 02:44:26 +09:00
Dr.Lt.Data
3772432847 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-06-14 23:52:11 +09:00
Dr.Lt.Data
d60e603467 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-06-11 01:41:30 +09:00
Dr.Lt.Data
4a1c06b90a update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-06-07 02:51:09 +09:00
Dr.Lt.Data
c571cf3ca9 update DB 2026-06-05 00:49:06 +09:00
Dr.Lt.Data
3ec831a99b update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-06-03 07:27:35 +09:00
Dr.Lt.Data
a0f4d401ec update DB 2026-06-01 02:26:10 +09:00
Dr.Lt.Data
d6f480c911 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-05-30 03:25:33 +09:00
Dr.Lt.Data
7d611c051e update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-05-28 02:15:37 +09:00
Dr.Lt.Data
66617e061c update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-05-27 02:16:39 +09:00
Dr.Lt.Data
ef470d0119 update DB 2026-05-26 07:50:12 +09:00
Dr.Lt.Data
4bab2faa5e update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-05-24 03:29:27 +09:00
Dr.Lt.Data
7cbd62c8bd update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-05-19 18:50:44 +09:00
Dr.Lt.Data
4f7f26da3b update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-05-14 04:21:55 +09:00
Dr.Lt.Data
7a8fc44f90 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-05-08 19:07:12 +09:00
Dr.Lt.Data
66108ccdbc update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-04-27 05:28:49 +09:00
Dr.Lt.Data
d57c142019 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-04-21 05:22:40 +09:00
Dr.Lt.Data
1e8956f42e update DB 2026-04-17 02:46:36 +09:00
Dr.Lt.Data
a7fb42be01 update DB 2026-04-13 21:23:44 +09:00
Dr.Lt.Data
715c6c2426 update DB 2026-04-13 12:46:54 +09:00
Dr.Lt.Data
a1ade259ef update DB 2026-04-06 00:39:20 +09:00
Dr.Lt.Data
3615af1560 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-04-01 02:24:34 +09:00
Dr.Lt.Data
8d750aac72 update DB 2026-03-30 03:26:13 +09:00
Dr.Lt.Data
dd58ac8b99 update DB 2026-03-23 02:23:20 +09:00
Dr.Lt.Data
be5e019ec5 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-03-21 00:46:04 +09:00
Dr.Lt.Data
0187da4672 update DB 2026-03-16 04:17:30 +09:00
Dr.Lt.Data
a801227663 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-03-13 12:58:34 +09:00
Dr.Lt.Data
8ffbde9fa8 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-03-10 23:06:07 +09:00
Dr.Lt.Data
a87171916d update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-03-09 12:46:48 +09:00
Dr.Lt.Data
83edc3d787 update DB 2026-03-05 00:06:28 +09:00
Dr.Lt.Data
001adf19c9 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-03-04 01:33:23 +09:00
Dr.Lt.Data
3ad3f0df39 update DB 2026-03-04 00:38:20 +09:00
Dr.Lt.Data
613d2bd648 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-03-02 11:04:04 +09:00
Dr.Lt.Data
d7aad369a4 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-02-27 02:12:24 +09:00
Dr.Lt.Data
299f7d9c74 update DB 2026-02-27 01:14:18 +09:00
Dr.Lt.Data
93e6ff5168 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-02-26 00:26:34 +09:00
Dr.Lt.Data
03befe1ac7 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-02-24 08:20:09 +09:00
Dr.Lt.Data
eb12e015d5 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-02-21 03:49:07 +09:00
Dr.Lt.Data
db97557ba9 update DB 2026-02-17 09:54:08 +09:00
Dr.Lt.Data
4f4172bf5e update DB 2026-02-13 12:53:36 +09:00
Dr.Lt.Data
6097f88462 update DB 2026-02-12 12:39:53 +09:00
Dr.Lt.Data
7b3f032e77 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-02-09 12:58:09 +09:00
Dr.Lt.Data
08cd0c4e27 update DB 2026-02-09 12:36:58 +09:00
Dr.Lt.Data
920d70a26a update DB 2026-02-06 12:20:24 +09:00
Dr.Lt.Data
544ab8328c update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-02-05 12:47:06 +09:00
Dr.Lt.Data
bafe5004ca update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-02-03 07:35:37 +09:00
Dr.Lt.Data
2944e5ef50 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-02-02 12:58:12 +09:00
Dr.Lt.Data
cf5dfbf99d update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-01-28 18:29:30 +09:00
Dr.Lt.Data
413c3b3855 update DB 2026-01-27 23:25:15 +09:00
Dr.Lt.Data
fcf7581431 update DB 2026-01-24 17:40:20 +09:00