Commits
-
Card payments: the Stripe keys and the live switch are owner settings (billing.cards) (#205)OpenVibers · 6 days ago
2a47b0b -
Vibes Pay (D12): app charges, the pay sheet, the project wallet and signed webhooks (#191)OpenVibers · 8 days ago
16089d0 -
Billing answers account export and deletion (ADR-033): the person's balances and money records exported, money records kept on deletion, settings removed; /internal/events on loopback, subscriptions at boot (#77)OpenVibers · 27 days ago
2c50eb4 -
Subscription tiers priced by Billing (contracts 0.201.0) (#76)OpenVibers · 27 days ago
3349a5b -
Turn the 3-day renewal grace on by defaultOpenVibers · 4 Oct 2026
e4c4f8a -
Retry failed credit renewals in a pastdue grace before ending them (#12)OpenVibers · 4 Oct 2026
defae23 -
Rate stored usage readings into the ledger under hard budgetsOpenVibers · 4 Oct 2026
6bebb8f -
The SQLite era is gone (on PostgreSQL since 2026-09-28; no compatibility kept): the one-time migrate-to-postgres script, the *_DB_PATH settings (config, .env.example, systemd unit, test helpers), the unused better-sqlite3 dependency and its lockfile entries, and docs, docstrings and STATUS lines about SQLite or its rollback window. Reviewed independently (VERDICT: SHIP). npm test 19/19 test files passed.OpenVibers · 29 Sept 2026
fe4ff08 -
Billing on PostgreSQL (ADR-035, roadmap WS-X2): openvibe-sdk/db, async throughout, every money movement serializable.OpenVibers · 28 Sept 2026
5fc1af3 -
Per-person rate limits on Billing's money-creating routes (roadmap WS-R task 4; openvibe-sdk v0.12.0 is now a dependency). Every /api/v1 caller is a first-party service (Live, Tips, VIP) acting for many people, so server/api/actor-limits.js never counts per service. A request counts against the person its body names (the buyer, the payer, the creator, the subscriber), whichever service sends it, and a refund counts against the payer of the transfer it gives back. The limit runs after the capability and freeze checks (a request refused while frozen is not counted) and before the idempotency store and the ledger. A refusal therefore stores nothing, and the same Idempotency-Key works after Retry-After. Past a limit a route answers 429 problem+json rate_limited with Retry-After, logs one line and counts billing_rate_limited_total{limit,window}. BILLING_LIMITS=off turns every limit off, as a rollback lever that needs no deploy.OpenVibers · 28 Sept 2026
80f97aa -
.env.example: names with a working default are commented (optional), so ovhost validate's from-example check requires only what the service cannot run withoutOpenVibers · 26 Sept 2026
4a5cddf -
Staff console access from the contracts staff map (WS-D, ADR-022; Contracts 0.38.0): a listed subject must also hold staff.money.cashouts (money is the owner's), not role admin; the session keeps the effective role and is re-checked against the map on every request, so existing admin-role sessions end and the owner signs in again. test/staff-map.test.js fails on raw role checksOpenVibers · 24 Sept 2026
85fd198 -
EXTERNAL PowerChat tips reach Tips; hourly reconciliation; /metrics; overflow and race hardeningOpenVibers · 23 Sept 2026
b774c5c -
.env.example: POWERCHAT_SITE_USERNAME is required for PowerChat site-routed settlementOpenVibers · 23 Sept 2026
839da1b -
Docs and deploy for the staff console: README section, cutover runbook (the console replaces Live's cashout admin; Network redirect URI for client billing), .env.example (BILLING_STAFF_SUBJECTS, BILLING_SESSION_SECRET), nginx (console proxied, /api/v1 denied on the public host, /webhooks/* public), STATUS, manifest proposal adds billing.staff.actionOpenVibers · 23 Sept 2026
8af6e69 -
OpenVibe.Billing W8: balanced append-only journal, provider receipts, subscriptions, payouts, freeze, reconciliation and the Live import (ADR-012)OpenVibers · 23 Sept 2026
ab5ae81