Onboarding website and billing backend for the Hero ecosystem.
  • Rust 75%
  • Shell 25%
Find a file
despiegk 6b83490101
Some checks failed
lab publish / publish (push) Failing after 29s
chore: remove hard version pinning from hero_* dependencies
2026-06-06 08:36:57 +02:00
.forgejo/workflows ci: install lab onto PATH from ~/.local/bin in the publish workflow 2026-05-29 15:38:23 -04:00
crates Phase 13: auto-release cron on VmAllocation.expires_at 2026-05-21 19:24:49 -04:00
docs Phase 13: auto-release cron on VmAllocation.expires_at 2026-05-21 19:24:49 -04:00
scripts Phase 13: auto-release cron on VmAllocation.expires_at 2026-05-21 19:24:49 -04:00
.gitignore chore: ignore Cargo.lock files 2026-06-06 07:54:39 +02:00
Cargo.toml chore: remove hard version pinning from hero_* dependencies 2026-06-06 08:36:57 +02:00
README.md Phase 1 scaffold: workspace + 4 crates + oschema + lab build/infocheck green 2026-05-20 14:08:34 -04:00

hero_onboarding

Onboarding website + billing backend for the Hero ecosystem.

Status: Phase 1 scaffold. The skeleton ships the canonical 4-crate layout (CLI + server + admin + schema) so subsequent phases can land without restructuring. Real payment, KYC, mycelium-address proof-of-control auth, per-node billing-record push, and the centralized aggregator all land in later phases.

Full plan + phasing + acceptance criteria: #1 — Hero onboarding website + billing backend — full plan

Crates

Crate Kind Purpose
hero_onboarding cli Command-line launcher. Phase 1 stub — points at lab service hero_onboarding_server --start.
hero_onboarding_server web End-user onboarding website (login + dashboard + payment). Phase 1: in-memory state, mycelium-address login stubbed, payment stubbed.
hero_onboarding_admin admin Operator dashboard. Phase 1 placeholder; full admin surface lands in Phase 5.
hero_onboarding_schema library oschema definitions (User, Billing, UsageRecord, PaymentEvent) with build.rs codegen via hero_rpc_osis. Generated module gated behind the onboarding feature flag.

Phase 1 acceptance (this scaffold)

Per #1's "Phased delivery > Phase 1":

  • Workspace layout (Cargo.toml, 4 crates, 3 service.toml, build.rs)
  • hero_onboarding_schema/User / Billing / UsageRecord / PaymentEvent in oschema
  • hero_onboarding_server/kind=web skeleton, mycelium-address login (stubbed), dashboard, payment stub
  • hero_onboarding_admin/kind=admin daemon placeholder
  • README + service.toml entries follow canonical D-10 / D-11 shape
  • lab build --release --install clean
  • lab infocheck clean
  • lab service hero_onboarding_server --start opens the page; login + dashboard render

Quick start (dev)

# Build the workspace
lab build --release --install

# Start the onboarding daemon (binds 127.0.0.1:9920 by default)
lab service hero_onboarding_server --start

# Visit http://127.0.0.1:9920 in a browser

Roadmap

Phase Scope Tracking
1 Schema scaffold + skeleton web service (this PR) #1
1.5 Mycelium-address proof-of-control auth + canonical hero_login pattern (to file)
2 Stripe sandbox integration (lifted from in-house top-up flow) (to file)
3 ClickPesa sandbox integration (to file)
4 Per-node billing-record push via hero_proc cron + lab repo push (to file)
5 Centralized aggregator + hash-resume idempotency (to file)
6 Production keys + Idenfy KYC + PoolAssignmentProvisioner + live wiring (to file)

See #1 for the canonical phasing, pricing model, architecture (per-node Forge billing repos + hash-resume aggregator + agnostic Provisioner trait), and the 9 open questions for Kristof + Emre.