feat(org): project remote set and checked, repository editable on Settings (#1873) #1948

Merged
jason.woltje merged 5 commits from project-remote into refactor 2026-11-12 19:51:26 +00:00
5 Commits
Author SHA1 Message Date
jason.woltje 2ad4b30ebd fix(org): repo set refuses under a copy binding that still grants the project (#1873 F7)
A copy binding grants the repositories its projects' remotes name when a
credential is issued, and its decision records only project names. repo set
(CLI, route, Settings tab) is now refused with project-repo-bound while a
pending or bound copy binding names the project, before any check, origin
change or write, and again under the lock. The message names the copies and
the next step: revoke the binding, set the repository, raise a new binding
decision. An unbound binding, or none, behaves as before. Bindings are read
from the loader-validated document; binding, launcher and broker code are
unchanged. New refusal-table entry for project-repo-bound.
2026-11-12 13:39:26 -06:00
jason.woltje 0e3ffd2133 fix(org): old business path for repo-remote.mjs (#1873 P1-6)
The rename r2 B golden pins one packages/business/src re-export per
packages/organization/src module; repo-remote.mjs had none.
2026-11-12 13:39:13 -06:00
jason.woltje f0f721c83e fix(org): an ssh check says the host key was not verified (#1873 P1-6)
The check's ssh client accepts any host key, so an answer over ssh shows
only that something at that address speaks git. Security review P2: a
reachable or needs-credential ssh outcome now adds "the ssh host key was
not verified"; https and unreachable outcomes are unchanged.
2026-11-12 13:39:13 -06:00
jason.woltje c44e4e28fd fix(org): review round for project remote set and check (#1873 P1-6, P1-7)
The needs-credential line no longer promises that a binding will supply
one; it says the check sends none. A recorded check is shown only for
the URL it checked. The Settings section says when the git origin differs
from the recorded repository, and a save repairs it. The URL rule message
names what is refused. Tests cover a document write that fails after
origin is set, the drift line and its repair, and Quick Setup in remote
mode.
2026-11-12 13:39:13 -06:00
jason.woltje f5df067304 feat(org): project remote set and checked, repository editable on Settings (#1873 P1-6, P1-7)
Remote mode sets the project checkout's origin and checks it once with
git ls-remote, with no credential, no prompt, a protocol allowlist of
https and ssh and a 15 second limit. The receipt reports reachable,
needs-credential or unreachable with git's error summarized. Nothing is
pushed. URLs are https or ssh only; ext:: and other helpers, file://,
local paths, option-like values and credential-bearing URLs are refused.

`mosaic org project repo set` changes a project's repository later, both
ways between remote and local only, through the same rules and check,
with a revision guard and an org.project.repo.set receipt. The Console's
organization project Settings tab edits it through
/api/orgs/ID/repo/project/PROJECT; Quick Setup accepts ssh and shows the
check.
2026-11-12 13:39:13 -06:00