92 lines
2.0 KiB
Markdown
92 lines
2.0 KiB
Markdown
# Upstreams / Dependency Notes
|
|
|
|
This file is a concise reference for important repo/runtime dependencies that affect current implementation work.
|
|
|
|
Use it for:
|
|
- major framework/runtime dependencies
|
|
- important transport or proxy assumptions
|
|
- shared infrastructure dependencies such as the artifact server
|
|
|
|
Do not use this file as a backlog.
|
|
|
|
---
|
|
|
|
## Portal (`zpack-portal`)
|
|
|
|
Core dependencies / assumptions:
|
|
- Next.js
|
|
- Axios for API interaction
|
|
- WebSocket-backed console UI through the API bridge
|
|
- multipart/FormData upload flows through API/agent paths
|
|
|
|
Portal boundary:
|
|
- Portal talks to API, not directly to agents, for normal state/actions
|
|
|
|
---
|
|
|
|
## API (`zpack-api`)
|
|
|
|
Core dependencies / assumptions:
|
|
- Node.js (ESM)
|
|
- Express
|
|
- Prisma
|
|
- token/cookie-based auth flows
|
|
- WebSocket proxying for console / IDE flows
|
|
- raw `http.request` piping for upload proxy paths
|
|
|
|
API boundary:
|
|
- API is the polling/heartbeat authority for agent state
|
|
- API normalizes state for Portal consumption
|
|
|
|
---
|
|
|
|
## Agent (`zlh-agent`)
|
|
|
|
Core dependencies / assumptions:
|
|
- Go
|
|
- filesystem enforcement / sandboxing
|
|
- PTY and WebSocket console transport
|
|
- local metadata tracking for managed files/workloads
|
|
- local Minecraft backup / restore support
|
|
|
|
Agent boundary:
|
|
- agent owns local workload-aware behavior
|
|
- agent does not own offsite/PBS durability strategy
|
|
|
|
---
|
|
|
|
## `zlh-artifacts` (Artifact Server)
|
|
|
|
Role:
|
|
- central artifact distribution for runtime and addon installs
|
|
|
|
Artifacts currently hosted:
|
|
|
|
```text
|
|
devcontainer/
|
|
_catalog.json
|
|
go/
|
|
node/
|
|
python/
|
|
java/
|
|
dotnet/
|
|
|
|
addons/
|
|
code-server/
|
|
```
|
|
|
|
Used by:
|
|
- `zlh-agent`
|
|
|
|
Artifacts are downloaded during provisioning via artifact URL helpers (for example, `provcommon.BuildArtifactURL(...)`).
|
|
|
|
Containers do not rely on prepositioned artifacts.
|
|
|
|
---
|
|
|
|
## Operational reminders
|
|
|
|
- upload transport uses raw piping, not `fetch()`, on proxy/upload paths
|
|
- hosted browser IDE flow is edge → API → container, not direct edge → container
|
|
- game publish flow and dev IDE flow should not be conflated
|