release / build (push) Successful in 4m0s
37 + 73 = 100 btw
1. tracing
- much more tracing across agent and cc
- metrics, logs and spans exported through otlp (grpc)
- console logs, otlp logs and traces have independent filters now
- follow a command from cc to agent, or a snapshot from collection to storage, in one trace
- exporters retry temporary failures with backoff and keep queues bounded
- prolonged collector outages can lose telemetry
- exporter and transport diagnostics stay in console logs so exports don't generate more exports
- check out them fields at docs/telemetry.md
- process them with guides from docs/telemetry-recipes.md
2. more process info
- agent and cc report process/host uptime, process RSS, CPU time and open file descriptors
- the FD count includes files, sockets and pipes
- host total/available memory and 1/5/15-minute load are included where supported
- these are available through otlp now, with a UI view planned later
3. config duration now uses time strings
- instead of `*_seconds` or `*_days` which is bullshit
- write durations like "30s", "60d" or "1h 30m", parsed by humantime
- check docs/config-durations.md
- old numeric keys still load and produce a deprecation warning
- init-config --from-config rewrites those keys into the new format and keeps your telemetry and access settings
- api/ws numeric fields and existing numeric cli flags are unchanged
4. devices
- clearer labels in the UI
- rename or forget saved devices
- remember, attach and merge keep the details dialog open
- details stay accessible even when the device drops out of your current list filters
- presence comes from endpoints, and unnamed devices get better fallback names
- renaming with an invalid name returns 400, while storage failures return 500
5. backend cleanup
- this helps with tracing
- ~~no more~~ less long asf fns
- related device reads share a SQLite transaction for a consistent view
- snapshot traces show pool wait, transaction begin, row writes and commit separately
- wake lookup searches the full fleet, including devices beyond the UI list's 1,000-row cap
6. fleet collection caching
- reuse the grouped view until DB or connected-agent state changes
- if changes keep interrupting a rebuild, return 503 fleet_busy so the caller can retry
- current fleet/device/endpoint counts are also available as metrics
- cool
7. origin auth
- docs/origin-auth.md
- validate Cloudflare Access tokens at the origin
- caddy calls cc's /internal/auth/verify before proxying protected routes
- configure [access] with the protected app's issuer and AUD
- the signing-key URL defaults from the issuer and can be overridden
- cache signing keys according to HTTP freshness headers and revalidate with ETag/Last-Modified
- update the caddy config!
- keep cc bound to loopback so requests go through caddy's auth checks
- agent endpoints continue using their own authentication
- closing the confirmed origin bypass requires BOTH the cc config and the caddy update
8. retention + deployment bits
- device_retention defaults to "60d", and "0d" disables expiry
- an agent-collected device's retention age resets whenever cc receives a snapshot containing it
- complete snapshots immediately remove rows the agent has omitted
- saved devices and their manually attached identifiers remain saved
- OpenWrt UCI/environment setup, credential-entry fixes and an updated copy script
Ping, multi-CC, the process-info UI and profiling are planned for later.
all codex btw idfk what these do
there are things to do.
66 lines
1.4 KiB
TOML
66 lines
1.4 KiB
TOML
[package]
|
|
name = "wakey"
|
|
version = "0.3.7"
|
|
edition = "2024"
|
|
publish = ["gitea"]
|
|
|
|
[dependencies]
|
|
anyhow = "1"
|
|
chrono = { version = "0.4", default-features = false, features = ["clock"] }
|
|
clap = { version = "4", features = ["derive"] }
|
|
color-eyre = "0"
|
|
comfy-table = "7"
|
|
futures = "0"
|
|
macaddr = { version = "1", features = ["serde", "serde_std"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tokio = { version = "1", features = [
|
|
"fs",
|
|
"process",
|
|
"rt-multi-thread",
|
|
"io-util",
|
|
"macros",
|
|
"time",
|
|
] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
|
|
|
|
[profile.release]
|
|
opt-level = "z"
|
|
strip = true
|
|
|
|
[workspace]
|
|
members = ["ipjs", "wakey-agent", "wakey-control-plane", "wakey-core", "wakey-linux"]
|
|
exclude = ["vendor/vt100"]
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1"
|
|
macaddr = { version = "1", features = ["serde", "serde_std"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tokio = { version = "1", features = [
|
|
"fs",
|
|
"process",
|
|
"rt-multi-thread",
|
|
"io-util",
|
|
"macros",
|
|
"time",
|
|
] }
|
|
tracing = "0.1"
|
|
uuid = { version = "1", features = ["v4"] }
|
|
|
|
[dependencies.lda-ipjs]
|
|
path = "ipjs"
|
|
registry = "gitea"
|
|
version = "0"
|
|
|
|
[dependencies.wakey-core]
|
|
path = "wakey-core"
|
|
registry = "gitea"
|
|
version = "0"
|
|
|
|
[dependencies.wakey-linux]
|
|
path = "wakey-linux"
|
|
registry = "gitea"
|
|
version = "0"
|