Commits
-
GitHub webhook ingress for pull-request follow-ups (AL5) (#298)OpenVibers · 3 days ago
83a6a14 -
account-data: a person's events, with the guard on every person column (#163)OpenVibers · 14 days ago
e7af167 -
Serve /llms-full.txt and add IndexNow key file and release pingsOpenVibers · 13 Oct 2026
fceb61a -
Events: the retired events.openvibe.network vhost is deleted (plan T7) (#39)OpenVibers · 10 Oct 2026
aed44d1 -
Links: the developer console (projects, usage, the limits page) is on openvibe.services now. (#27)OpenVibers · 8 Oct 2026
58f6afb -
Events: openvibe.events serves the API and the realtime stream too (plan T7 layer 1) (#20)OpenVibers · 7 Oct 2026
5e955db -
Events: a product home for openvibe.events (browsers get the page, API clients the text index) and its vhost. (#16)OpenVibers · 7 Oct 2026
c910482 -
Add the cloud queue carrier (cloud-v1, SQS-compatible, QUEUE only, off unless CLOUD_QUEUE_URL is set) (#15)OpenVibers · 5 Oct 2026
a89573e -
Post hourly queue-operation readings per project to Billing (#13)OpenVibers · 5 Oct 2026
12d2aae -
Move pruned events into a replay tier and read both with one cursorOpenVibers · 4 Oct 2026
84ec8d9 -
Add the nats-js-v1 JetStream STREAM carrier over the PostgreSQL recordOpenVibers · 4 Oct 2026
10b286c -
Let any first-party service publish the network-wide provider. namespace (#7)OpenVibers · 3 Oct 2026
7c86ccd -
Implement the smallest T7 PR on current origin/main: an optional NATS… (#6)OpenVibers · 3 Oct 2026
73132d2 -
Let OpenVibe.Bot publish its bot. events as a known source (#3)OpenVibers · 2 Oct 2026
18a9a3c -
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 before shipping. npm test 17/17 test files passed.OpenVibers · 29 Sept 2026
0076761 -
Events on PostgreSQL (ADR-035, roadmap WS-X2, repository pass G3).OpenVibers · 28 Sept 2026
f71906e -
Per-actor rate limits at Events' capability routes (roadmap WS-R task 4): openvibe-sdk v0.12.0 is now a dependency, and server/actor-limits.js makes one limiter per app that counts each verified principal (svc:live, app:app_…) after its guard and before any work. Past a limit a route answers 429 problem+json rate_limited with Retry-After, logs one [limits] line and counts events_rate_limited_total{limit,window}.OpenVibers · 28 Sept 2026
7530c2f -
Project usage rollups (roadmap WS-N task 4; Contracts v0.63.0 events.usage.recorded, common.usage-recorded@1): each developer project's use is counted per environment and UTC hour in the transaction that does the work (server/usage.js, table app_usage): events.app.publish in events (events stored in insertBatch; a repeated event_id is not counted), every refused publish request as an error with its problem code, status, trace id and the refused event id; events.app.subscribe in deliveries (webhook attempts to the project's subscriptions, recorded with the delivery row in recordAttempt), an attempt without a 2xx as events.delivery.http_<status>, .timeout or .failed with the event id and its trace. A minute after an hour closes, each rollup is stored once as an events.usage.recorded event (source events, subject the project, visibility internal, priority low) in the transaction that marks it sent, so Events is its own outbox; first-party subscribers (Network's project usage) get it like any event, apps never see it; a count landing in an hour already sent re-sends it as revision 2. EVENTS_USAGE=off counts nothing; EVENTS_USAGE_FLUSH_MS (300000). Pins: openvibe-contracts 0.61.0 -> 0.63.0. test/usage.test.jsOpenVibers · 26 Sept 2026
bb78877 -
Redaction: a producer takes back its own events. Any event may carry payload.redacts ({ event_ids } and/or { subject_type, subject_ids }, up to 1000 each); in the transaction that stores it, every target of the same source (an app: same project and env) becomes a tombstone at its original seq: payload { redacted, redacted_at, redacted_by }, actor the producer itself, envelope otherwise kept. Pull, GET by id, SSE replay (anonymous, signed in, service), queued deliveries and DLQ replays all serve the tombstone; first-party consumers get it and then the deletion event. Naming another source's event is 403 events.redaction_not_allowed (whole batch refused), a malformed directive 422 events.invalid_redaction; no capability beyond events.event.publish. secure_delete on, so old payloads are zeroed on disk. Browsers are replayed public events of the last REALTIME_PUBLIC_REPLAY_SECONDS (300) only, older ones are `event: gap` reason public_window (own subject events and services keep full retention). scripts/redact-backfill.js redacts chat events of messages Chat deleted before it published chat.message.deleted (dry run by default; --apply needs a verified 0600 --backup). Fixes: deleted chat messages (text, anon id) stayed replayable anonymously for 30 daysOpenVibers · 23 Sept 2026
18b873f -
Developer apps cannot disrupt first-party event flowOpenVibers · 23 Sept 2026
cfbd21c -
Developer apps (Wave 20, ADR-014): events.app.publish|read|subscribe with app tokens on the existing routes — app.<project_key>.* types only (project_key = p + lowercased project ULID, source app-<lowercased app ULID>), reads scoped to the own project and env plus public first-party events, subscriptions to public https endpoints only (SSRF guard at subscribe and delivery, pinned lookup, no redirects); sandbox tokens accepted on these routes only, events stored with project_id and env and never crossing environments; per-project publish-rate, retained-bytes and subscription quotas; network.app.revoked / network.grant.changed disable an app's subscriptions and old tokens; public nginx locations for the app routes; openvibe-contracts v0.28.0OpenVibers · 23 Sept 2026
06af758 -
Observability (Track O): GET /metrics (loopback only) with HTTP golden signals by route template, process metrics, release_info and Events gauges (deliveries by status, DLQ depth, latest seq, SSE connections, delivery latency, attempts by outcome); /api/ready built on openvibe-shared/ready (db, network_jwks, delivery_worker required; dlq optional -> degraded); GET /release.json; openvibe-shared v1.3.0OpenVibers · 23 Sept 2026
0c7f9c5 -
Ops and docs: .env.example, systemd unit, nginx vhost for SSE, CI on Node 22.22.1, README usage, STATUS alpha W3OpenVibers · 23 Sept 2026
a5fda92