Skip to content

v1.4.0

Choose a tag to compare

@Polliog Polliog released this 19 Oct 21:21
· 31 commits to main since this release
a1a330b

A feature release that makes LogTide ready to run as a hosted, multi-tenant service. It is the groundwork behind LogTide Cloud, and it ships in the open: anyone who hosts LogTide for other people gets the same build. Every new setting is opt-in. With the new environment variables unset, a self-hosted instance behaves exactly as before.

Added

  • Combined telemetry byte quota: spans and metric datapoints are now metered in bytes like logs, and the new telemetry.max_bytes_monthly quota caps logs, traces and metrics together. Over the limit, log, trace and metric ingestion answer 429
  • Metric datapoint metering and quota: accepted OTLP datapoints are recorded in usage data, with a new metrics.max_datapoints_monthly quota
  • Quota grace and notifications: quota.grace_percent lets a quota overshoot by a margin before it blocks, and owners get an in-app and email notice when a quota is reached and when it blocks
  • Optional email verification (REQUIRE_EMAIL_VERIFICATION) and an hourly registration limit (REGISTRATION_RATE_LIMIT_PER_HOUR)
  • Terms and Privacy acceptance (LOGTIDE_TERMS_URL, LOGTIDE_PRIVACY_URL, LOGTIDE_TERMS_VERSION): required at registration and asked again when the version changes. Ingestion with existing API keys is never blocked
  • Organization caps per user: MAX_ORGANIZATIONS_PER_USER limits owned organizations and MAX_ORGANIZATION_CREATIONS_PER_USER_PER_MONTH limits monthly creations, so deleting and recreating an organization no longer resets its monthly quota
  • Projects limit: a new projects.max capability, also enforced when restoring a deleted project
  • Instance-wide capability defaults: CAPABILITY_DEFAULTS_JSON sets the default of any limit, gate or quota at boot and is validated on startup
  • Upgrade link and admin service token: LOGTIDE_UPGRADE_URL + LOGTIDE_UPGRADE_SIGNING_SECRET add signed Upgrade and Manage billing buttons, and LOGTIDE_ADMIN_SERVICE_TOKEN lets an external billing service manage entitlements through the admin API
  • Hosting guide: docs/cloud-seams.md documents every variable, the handoff token format and how usage is measured

Changed

  • Quota defaults set through CAPABILITY_DEFAULTS_JSON apply to every organization, including ones that never had an override
  • The bundled Compose files pass the new variables through to the backend and the worker, empty when unset
  • LogTide is no longer labeled beta

Fixed

  • Entitlement limits of 2 GiB and above failed with an integer overflow; limits are now stored as BIGINT
  • Credentials in rate-limit keys: with Redis configured, raw API keys and session tokens were used as rate-limit key names; they are now hashed

Upgrading

Migrations 058 to 061 run automatically on start. They are additive and need no backfill.

Full changelog: https://github.com/logtide-dev/logtide/blob/main/CHANGELOG.md