Skip to content

Data Model

Understanding how ByteFreezer organizes your data.

Hierarchy Overview

Account (Organization)
  └── Tenant (Data Source / Environment)
        └── Dataset (Data Stream / Collection)
              └── Events (Individual Records)

Accounts

An Account represents your organization or a customer organization. Accounts are the top-level container for all data and configuration.

Property Description
ID Unique identifier (UUID)
Name Human-readable account name
Status Active or Inactive
Deployment Managed (ByteFreezer cloud) or On-Prem

Tenants

Tenants represent distinct data sources or environments within an account. Common use cases:

  • Different applications (web-app, mobile-app, backend-api)
  • Different environments (production, staging, development)
  • Different data sources (firewall-logs, application-logs, metrics)
Property Description
ID User-defined identifier (alphanumeric + hyphens)
Account ID Parent account
Name Human-readable tenant name
Status Active or Inactive

Naming Convention

Choose tenant IDs that are meaningful and stable. They appear in webhook URLs and cannot be changed after creation.

Datasets

Datasets are individual data streams within a tenant. Each dataset:

  • Has its own webhook endpoint for data ingestion
  • Can have custom transformation pipelines
  • Is stored and processed independently
Property Description
ID User-defined identifier (alphanumeric + hyphens)
Tenant ID Parent tenant
Name Human-readable dataset name
Status Active or Inactive
Retention Data retention period in days

Webhook URL Format

https://receiver.bytefreezer.com/webhook/{tenant_id}/{dataset_id}

Events

Events are individual records within a dataset. ByteFreezer accepts events in JSON or JSON Lines format.

// Single event
{"timestamp": "2024-01-15T10:30:00Z", "level": "info", "message": "User logged in"}

// Multiple events (JSON Lines)
{"timestamp": "2024-01-15T10:30:00Z", "level": "info", "message": "User logged in"}
{"timestamp": "2024-01-15T10:30:01Z", "level": "warn", "message": "Rate limit approaching"}

Best Practices

Practice Description
Account per organization Each customer or business unit should have its own account
Tenant per data source type Group related data streams under the same tenant
Dataset per unique schema Data with different structures should be in separate datasets
Consistent naming Use lowercase with hyphens (e.g., web-app, error-logs)