Skip to content

Add organizations, team roles, and shared live sessions - #518

Merged
ralyodio merged 2 commits into
mainfrom
feat/team-shared-sessions
Sep 13, 2026
Merged

ralyodio merged 2 commits into
mainfrom
feat/team-shared-sessions

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

Live terminal sessions were accessible only to their owner. Add organizations, teams, and member roles to app.moshcode.sh so teammates can watch or work in the same running session. Session owners explicitly share a terminal with a team; readers watch, writers send input, and admins/owners manage membership within their scope.

The Teams pages support organization/team creation and adding existing accounts by email, with read access as the default. Membership changes preserve a last owner. Organization administrators inherit team access, while other organization members only see teams they belong to. Equivalent API routes accept CLI Bearer credentials.

Browser commands record their author, and the owner's CLI checks current permissions again when claiming them. Revocation also stops further live output, including output on an already-open stream. CLI output, acknowledgements, and command polling remain owner-only. Existing MCP grants keep their separate scope and revocation checks.

Validation: 3,253 repository tests passed (4 skipped), including all 749 PWA tests. Browser verification covered creating Profullstack/Contractors, read-only viewing on mobile, promoting a teammate to writer, and sending input through the existing CLI command queue. Regression tests cover cross-organization isolation, CSRF/Bearer separation, owner protection, and revocation of both pending input and live output.

Comment thread apps/pwa/src/routes/sessions.mjs Fixed
@github-actions

github-actions Bot commented Sep 13, 2026

Copy link
Copy Markdown

ThreatCrush Security Scan

0 finding(s) in the 8 file(s) this pull request changes.

Nothing in the files this pull request changes.

97 pre-existing finding(s) elsewhere in the repository — **HIGH/CRITICAL**: 8 | **MEDIUM**: 78 | **LOW**: 11

Not introduced by this pull request. The full set is in the Security tab.

Severity Rule Location
HIGH js-ssrf-outbound-request apps/pwa/public/sw.js:45
HIGH tls-verification-disabled apps/pwa/src/lib/moshpit-gateway.mjs:299
HIGH sh-remote-script-execution install.sh:86
HIGH sh-remote-script-execution install.sh:90
HIGH sh-remote-script-execution install.sh:258
HIGH sh-remote-script-execution install.sh:269
HIGH sh-remote-script-execution install.sh:275
HIGH tls-verification-disabled src/dns.mjs:766
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:139
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:153
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:179
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:373
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:377
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:422
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:671
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:867
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:869
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:928
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:974
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:1044

…and 77 more. Full results in the Security tab.

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit a6fb5e0 into main Sep 13, 2026
6 checks passed
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