How parallels/prl-devops-service works
Parallels Desktop DevOps Service exposes VM management and status operations, with broader repository capabilities for catalog distribution, host orchestration, and reverse proxying. The principal workflow is a client request entering the REST API, passing authorization, and reaching a controller; VM operations are provided by the Parallels integration, while catalog-manager operations can persist manager records and initiate catalog jobs. The graph also shows distinct catalog, orchestration, and proxy branches visible in the tree. Wiring beyond the sampled excerpts is limited to clear module responsibilities; uncertain calls are omitted.
Main entry points: data/main.go Data access · controllers/main.go API controllers · controllers.go REST API · catalog_managers.go Manager controllers
Components 20
API and access
- REST API
src/restapi/controllers.go - Authorization middleware
src/restapi/token_authorization_middleware.go - API controllers
src/controllers/main.go
VM management
- VM controller
src/controllers/machines.go - Parallels service
src/serviceprovider/parallelsdesktop/main.go
Catalog distribution
- Catalog controllers
src/controllers/catalog.go - Manager controllers
src/controllers/catalog_managers.go - Catalog service
src/catalog/main.go - Storage providers
src/catalog/providers/local/main.go - Catalog cache
src/catalog/cacheservice/main.go
Host orchestration
- Orchestrator operations
src/orchestrator/main.go - Host WebSocket manager
src/orchestrator/host_websocket_manager.go
State and integrations
- Job tracking
src/jobs/main.go - Reverse proxy
src/reverse_proxy/main.go - Data access
src/data/main.go - JSON database
src/data/main.go - SQL service
src/sql/service.go - Event emitter
src/serviceprovider/eventEmitter/main.go
Other components
- API client
- Managed host
Connections 20
- API client → REST API: sends request
- REST API → Authorization middleware: authorizes
- REST API → API controllers: dispatches
- API controllers → VM controller: routes VM requests
- VM controller → Parallels service: manages VMs
- API controllers → Catalog controllers: routes catalog requests
- API controllers → Manager controllers: routes manager requests
- Manager controllers → Data access: reads and writes
- Manager controllers → Job tracking: creates catalog job
- Catalog controllers → Catalog service: catalog operations
- Catalog service → Storage providers: uses provider
- Catalog service → Catalog cache: uses cache
- Orchestrator operations → Data access: loads host state
- Orchestrator operations → Host WebSocket manager: manages host connections
- Host WebSocket manager → Managed host: connects
- Host WebSocket manager → Data access: updates connection status
- Reverse proxy → Parallels service: resolves VM targets
- Data access → JSON database: accesses JSON store
- Data access → SQL service: uses SQL service
- Parallels service → Event emitter: broadcasts VM updates