@fonderie/vue-audit

Vue 3 composables for Fonderie's audit log — thin bindings over @fonderie/client.
2,244 5
Install
npm install @fonderie/vue-audit
Latest Version:0.5.2
Vue:3
License:MIT
Last Updated:Oct 19, 2026
Links: GitHub  ·  npm
Maintainer: fonderie

@fonderie/vue-audit

Vue 3 composable for Fonderie's audit log — useAuditEvents (cursor-paginated, filterable by type/actorId/date range, with loadMore). Thin bindings over @fonderie/client: reactive refs for loading/error/data state and the request itself, nothing else. Bring your own UI.

Install

npm install @fonderie/vue-audit

One client at the root (recommended)

Install the plugin from @fonderie/vue once (or call provideFonderie(client) in a root setup()) and every composable resolves the client by injection — no client argument at call sites:

import { FonderiePlugin } from "@fonderie/vue";

createApp(App).use(FonderiePlugin, client).mount("#app");

// in any component setup():
const { ...state } = useAuditEvents();

Passing a client explicitly (as below) still works everywhere and takes precedence over injection — handy in tests and multi-client apps.

Use

<script setup>
import { FonderieClient } from '@fonderie/client';
import { useAuditEvents } from '@fonderie/vue-audit';

const client = new FonderieClient({ baseUrl: 'https://api.example.com/v1' });
const { events, hasMore, loadMore } = useAuditEvents(client.audit, { type: 'workspace.updated' });
</script>

<template>
  <ul>
    <li v-for="e in events" :key="e.id">{{ e.type }} — {{ e.createdAt }}</li>
  </ul>
  <button v-if="hasMore" @click="loadMore">Load more</button>
</template>

useAuditEvents takes the same AuditClient instance (client.audit) — construct one FonderieClient at the app root and pass it down (provide/inject or a prop). The client's access token is shared with client.auth automatically, so signing in via @fonderie/vue-auth is enough to authenticate audit requests too. Requests default to the caller's personal workspace until you call client.audit.setWorkspaceId(id) to scope them to a team, same as client.billing/client.workspaces.

@fonderie/audit has one route, read-only — there's no create/update/delete composable because there's no such endpoint; audit events are written internally by other modules. Filters are read once at setup, same as every other *-admin/*-workspaces composable's key/environment params in this SDK — call refresh() yourself after changing filters.

Want a pre-built screen instead of wiring your own log viewer? See @fonderie/vue-audit-screens.

Why this exists

You've shipped this plumbing before — auth, teams, billing, messaging — and the next project will ask for it again. Fonderie packages it once: plain TypeScript modules for @fonderie/core, PostgreSQL-backed, self-hosted, MIT. No external control plane, no per-seat anything. Register the modules you need; skip the ones you don't.

This package owns the Vue binding for the audit log — reactive state management around @fonderie/client, nothing more. No business logic lives here; it lives in @fonderie/audit on the server.

Browse the whole set at fonderiejs/fonderie · follow @fonderiejs

License

MIT © Fonderie, Inc.

Related Packages

@fonderie/vue-audit-screens

Pre-built Vue screen for Fonderie's audit log — filterable, cursor-paginated eve...

1,387 5
@fonderie/vue-auth

Vue composables for Fonderie auth — thin bindings over @fonderie/client.

4,674 5
@fonderie/vue-webhooks

Vue 3 composables for Fonderie's outgoing webhooks — thin bindings over @fonderi...

2,583 5
@fonderie/vue-workspaces

Vue 3 composables for Fonderie workspaces — thin bindings over @fonderie/client.

3,954 5
@fonderie/vue-customers

Vue 3 composables for Fonderie's customers module — thin bindings over @fonderie...

3,051 5

Version History

Version Released License
0.5.2 MIT
0.5.1 MIT
0.5.0 MIT
0.4.6 MIT
0.4.5 MIT