Commit Graph

551 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
395bb24427 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-06-05 06:08:54 +09:00
Dr.Lt.Data
c571cf3ca9 update DB 2026-06-05 00:49:06 +09:00
Dr.Lt.Data
7ddad11d28 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-06-04 03:05:11 +09:00
Dr.Lt.Data
142f4ce365 update DB 2026-06-04 01:59:12 +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
bf5c346428 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-05-21 05:53:45 +09:00
Dr.Lt.Data
da873b5f3b update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-05-20 00:35:20 +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
9ad16c0188 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-05-18 05:39:11 +09:00
Dr.Lt.Data
3ae1fe6ea6 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-05-16 10:17:57 +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
20d352c2b5 update DB 2026-05-11 00:16:15 +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
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
8aca0751d1 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-03-31 08:50:38 +09:00
Dr.Lt.Data
59ed61722b update DB 2026-03-31 01:43:48 +09:00
Dr.Lt.Data
8d750aac72 update DB 2026-03-30 03:26:13 +09:00
Dr.Lt.Data
448c6b2aab update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-03-23 23:23:32 +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
c94236a614 update DB
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
2026-03-16 04:38:03 +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
03d496d80d update DB 2026-03-05 00:17:14 +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
8ec120e964 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2026-02-25 12:56:25 +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