Skip to content

v0.27.0

Choose a tag to compare

@AlexGalhardo AlexGalhardo released this 18 Oct 00:12
· 216 commits to main since this release

Added

  • site: Add a changelog page linked from the header (6381fa5)
  • auth: Add ProblemJSON so every API auth failure is problem+json (0c183cf)
  • vukem: Warn once when proxy headers arrive without TRUSTED_PROXIES (06ee06a)
  • ratelimit: Export IPKey and group throttle keys by it (b0e40f5)
  • vukem: Let lazy store funcs fall back with ErrUseDefault (7c2b800)
  • telegram: Read the Bot API base URL from TELEGRAM_API_URL (eaab1b3)
  • fixinline: Check every go:fix inline wrapper against go fix (8655ddb)
  • database: Add ScanTime for timestamps SQLite returns as text (7198679)
  • factory: Add en and pt-BR locales with commerce and address data (9c5bf18)
  • factory: Add CreateMany to insert factory models in batches (7dc730b)
  • vukem: Select seeders and pass seeder flags in db:seed (4312444)
  • flags: Add typed feature flags with a cached database store (30031c3)
  • vukem: Register feature flags with WithFlags and build them with app.Flags (ffed272)
  • admin: Add a feature flags page with audit events (041c0f5)
  • cli: Add install:flags and wire feature flags into the admin scaffold (f70d6b0)
  • web: Let a frontend adapter render the error page (358087f)
  • cli: Ship an Error page in the Inertia starters (f9c00a7)
  • BREAKING: vukem: Cap request headers at 64 KiB with HTTP_MAX_HEADER_BYTES (320b89b)
  • grpc: Let operators raise the gRPC port's header cap (7db5602)
  • vukem: Keep an existing ErrorPage hook and warn without an Error page (0ab65c5)

Changed

  • vukem: Group the root package files by theme (a90f9c8)
  • factory: Replace NewFakerWithLocale with Faker.WithLocale (fe297b4)
  • flags: Type scopes, version cached values and describe flags with Info (5593d07)
  • web: Pass error pages to the hook as a web.ErrorPage struct (b34be2b)

Fixed

  • BREAKING: cli: Require the account's login to verify an email address (37da4e1)
  • cli: Send expired verification links to the resend page (379620d)
  • BREAKING: ratelimit: Key IPv6 clients by their /64 in ByIP (6f66901)
  • vukem: Harden the ErrUseDefault fallback of lazy store funcs (9ac99f1)
  • BREAKING: grpc: Give the gRPC port its own cleartext opt-in (91cf1f5)
  • BREAKING: otel: Export metrics to the generic OTLP endpoint by default (4cb0b8e)
  • apicheck: Reject trailing braces and foreign-major exception versions (4156585)
  • orm: Scan text timestamps into time fields on SQLite (fc0eac7)
  • vukem: Fail closed on db:seed --class without a name (4de9aa6)
  • database: Accept space-separated RFC 3339 text in ScanTime (ea2ef1c)
  • flags: Match FLAG_ keys exactly when checking for unknown flags (7895fad)
  • vukem: Refuse FLAG_ keys in .env when no flag is registered (c5c2697)
  • admin: Redact string flag values and survive a failed audit row (52881da)
  • cli: Make install:flags safe to re-run (7bbcbf6)
  • apidocs: Load the API reference with zero CSP violations (770263f)

Security

  • repo: Move the community health files into .github (49c22b0)
  • apicheck: Add a versioned exception list for security-driven breaks (e4542e7)
  • BREAKING: inertia: Render an Error page for errors on Inertia requests (d9d3876)
  • web: Render the built-in status pages under the default CSP (83fcc01)