Add Python agent, WebSocket relay, real viewer, enrollment tokens
- WebSocket relay service (FastAPI) bridges agents and viewers - Python agent with screen capture (mss), input control (pynput), script execution, and auto-reconnect - Windows service wrapper, PyInstaller spec, NSIS installer for silent mass deployment (RemoteLink-Setup.exe /S /SERVER= /ENROLL=) - Enrollment token system: admin generates tokens, agents self-register - Real WebSocket viewer replaces simulated canvas - Linux agent binary served from /downloads/remotelink-agent-linux - DB migration 0002: viewer_token on sessions, enrollment_tokens table - Sign-up pages cleaned up (invite-only redirect) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -51,7 +51,7 @@ export async function POST(request: NextRequest) {
|
||||
.set({ usedAt: new Date(), usedBy: session.user.id, isActive: false })
|
||||
.where(eq(sessionCodes.id, sessionCode.id))
|
||||
|
||||
// Create session record
|
||||
// Create session record (viewer_token is auto-generated by DB default)
|
||||
const newSession = await db
|
||||
.insert(sessions)
|
||||
.values({
|
||||
@@ -61,7 +61,11 @@ export async function POST(request: NextRequest) {
|
||||
connectionType: 'session_code',
|
||||
sessionCode: normalizedCode,
|
||||
})
|
||||
.returning({ id: sessions.id })
|
||||
.returning({ id: sessions.id, viewerToken: sessions.viewerToken })
|
||||
|
||||
return NextResponse.json({ sessionId: newSession[0].id })
|
||||
return NextResponse.json({
|
||||
sessionId: newSession[0].id,
|
||||
viewerToken: newSession[0].viewerToken,
|
||||
machineId: sessionCode.machineId,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user