Documentation Index
Fetch the complete documentation index at: https://docs.snackbase.dev/llms.txt
Use this file to discover all available pages before exploring further.
The Dashboard service provides statistics and metrics for monitoring your SnackBase instance. It’s useful for building admin dashboards and monitoring systems.
Overview
import { SnackBaseClient } from "@snackbase/sdk";
const client = new SnackBaseClient({
baseUrl: "https://api.example.com",
});
// Access the dashboard service
const dashboard = client.dashboard;
Dashboard statistics require superadmin authentication.
Get Statistics
Retrieve comprehensive dashboard statistics:
const stats = await client.dashboard.getStats();
The response includes:
{
accounts: {
total: number; // Total number of accounts
active: number; // Currently active accounts
new_this_month: number; // Accounts created this month
};
users: {
total: number; // Total number of users
active: number; // Currently active users
new_this_month: number; // Users created this month
};
collections: {
total: number; // Total number of collections
system: number; // Built-in system collections
custom: number; // User-created collections
};
records: {
total: number; // Total records across all collections
created_today: number; // Records created today
created_this_month: number; // Records created this month
};
recent_activity: {
logins: number; // Login count in last 24 hours
api_calls: number; // API calls in last 24 hours
errors: number; // Errors in last 24 hours
};
health: {
database_status: "healthy" | "degraded" | "down";
cache_status: "healthy" | "degraded" | "down";
uptime_seconds: number;
};
}
Use Cases
Admin Dashboard
Display system statistics in an admin interface:
import { useQuery } from "@snackbase/sdk/react";
function DashboardStats() {
const { data: stats, isLoading, error } = useQuery({
queryKey: ["dashboard-stats"],
queryFn: () => client.dashboard.getStats(),
refetchInterval: 60000, // Refresh every minute
});
if (isLoading) return <div>Loading...</div>;
if (error) return <div>Error loading stats</div>;
return (
<div>
<h2>System Overview</h2>
<div>Total Accounts: {stats.accounts.total}</div>
<div>Total Users: {stats.users.total}</div>
<div>Total Collections: {stats.collections.total}</div>
<div>Total Records: {stats.records.total}</div>
<div>Database Status: {stats.health.database_status}</div>
</div>
);
}
Health Monitoring
Check system health programmatically:
async function checkSystemHealth() {
const stats = await client.dashboard.getStats();
const isHealthy = stats.health.database_status === "healthy" &&
stats.health.cache_status === "healthy";
if (!isHealthy) {
console.warn("System health check failed:", stats.health);
// Trigger alert or notification
}
return isHealthy;
}
Activity Monitoring
Monitor recent activity levels:
async function getActivityReport() {
const stats = await client.dashboard.getStats();
return {
logins: stats.recent_activity.logins,
apiCalls: stats.recent_activity.api_calls,
errors: stats.recent_activity.errors,
errorRate: (stats.recent_activity.errors / stats.recent_activity.api_calls * 100).toFixed(2)
};
}
Next Steps