fix(deps): update Docker API usage to DockerHost facade, bump dependencies, and adjust tests/docs
This commit is contained in:
@@ -1,2 +1,40 @@
|
||||
- make sure to mention that this package is part of serve.zone and **spark's main purpose** is the be used by @serve.zone/cloudly as a cluster node server system manager.
|
||||
- it is used to maintain and configure servers on the base OS level
|
||||
# Project Memory: @serve.zone/spark
|
||||
|
||||
## Project Overview
|
||||
- **Purpose**: Cluster node server system manager used by @serve.zone/cloudly
|
||||
- **Runtime**: Deno 2.x - this is a Deno-based project, NOT Node.js
|
||||
- **Configuration**: Uses `deno.json` for dependencies and tasks
|
||||
- **Main entry**: `mod.ts` for CLI, exports from `ts/index.ts`
|
||||
|
||||
## Architecture
|
||||
- **SparkConfig**: Key-value store for configuration (`npmextra.KeyValueStore`)
|
||||
- **SparkTaskManager**: Cron-based task scheduling (`taskbuffer.TaskManager`)
|
||||
- **SparkServicesManager**: Docker service management via `@apiclient.xyz/docker`
|
||||
- **SmartDaemon**: Systemd integration for daemon mode
|
||||
|
||||
## Key Dependencies (Updated Feb 2026)
|
||||
- `@apiclient.xyz/docker@^5.1.0` - Docker API (Facade pattern with DockerHost as entry point)
|
||||
- `@serve.zone/api@^5.3.0` - Serve.zone API client
|
||||
- `@serve.zone/interfaces@^5.3.0` - Type definitions
|
||||
- `@push.rocks/taskbuffer@^3.0.10` - Task scheduling
|
||||
- `@push.rocks/smartdaemon@^2.1.0` - Systemd service management
|
||||
- `@push.rocks/smartcli@^4.0.20` - CLI framework
|
||||
|
||||
## Docker API Notes (v5.x)
|
||||
The `@apiclient.xyz/docker` package uses a Facade pattern. All operations go through `DockerHost`:
|
||||
- `dockerHost.getServiceByName(name)` - Get service by name
|
||||
- `dockerHost.getSecretByName(name)` - Get secret by name
|
||||
- `dockerHost.createImageFromRegistry({ imageUrl })` - Pull image
|
||||
- `dockerHost.createSecret({ name, contentArg, version, labels })` - Create secret
|
||||
- `dockerHost.createService({ name, image, networks, secrets, ports, ... })` - Create service
|
||||
- `dockerHost.activateSwarm()` - Initialize swarm mode
|
||||
|
||||
## Testing
|
||||
- Tests use Deno's built-in test runner (`deno task test`)
|
||||
- Test files in `test/` directory
|
||||
- The first test disables resource/ops sanitization due to signal listeners from smartdaemon
|
||||
|
||||
## Build
|
||||
- No build step needed for the TypeScript code
|
||||
- Binary compilation: `deno task compile:all` or `bash scripts/compile-all.sh`
|
||||
- npm package uses postinstall script to download pre-compiled binaries
|
||||
|
||||
Reference in New Issue
Block a user