Skip to Content
⚠️Active Development Notice: TimeTiles is under active development. Information may be placeholder content or not up-to-date.
ReferenceChangelog

Changelog

All notable changes to TimeTiles are documented here. Format based on Keep a Changelog .

See the release process for how new versions are cut.

[Unreleased]

Changes landed on main since the last tagged release.

Added

  • Environment banner on non-prod deployments
  • Auto-activation of data packages on boot per environment
  • Bundled data-package manifests delivered via git pull on deploy
  • Demonstrations.org data packages with POST pagination
  • UCDP HDX data package and catalog metadata
  • NSU Offener Prozess scraper example
  • Transactional emails queued via Payload tasks
  • Storybook stories for UI primitives, charts, layout/editorial blocks, overlays, navigation, map controls, and form/feedback components
  • LOGIN_SUCCESS, LOGIN_FAILED, and REGISTERED audit events
  • Points cluster display mode
  • Smart groupBy filtering with shared settings panel
  • URL-sync for fullscreen state and groupBy UX
  • Contextual category filters with cross-filtering
  • Multi-column grid layout (renamed from List view)
  • Collapsible chart section with unified header
  • CardToolbar primitive and “Analyze” chart button
  • Info popover on catalog group headers
  • Split-to-array transform for multi-value CSV fields
  • E2E_MODE signal and isE2E() helper
  • ESLint rule preventing sql.raw() with dynamic strings
  • SonarCloud scripts: coverage-per-file, security-hotspot review, quality-gate fetch

Changed

  • Wizard store actions renamed to intent-based names
  • Trivy scan and wait_for_health extracted into reusable CI helpers
  • Explore view-toggle terminology unified on “List”
  • editDatasetId replaced with editScheduleData state
  • Documentation <img> tags converted to next/image

Fixed

  • Scheduled-ingest retries, quotas, and URL-fetch hardening regressions
  • CSV identity values preserved through import
  • Map and import flows hardened (replacing fake tests with real assertions)
  • Maintenance job task enum values aligned with code
  • Numeric strings no longer accepted as inferred dates; trusted HTTP date guard simplified
  • Deployment: nginx healthcheck timing, postgres race on first boot, SMTP cert mismatch, container UID for logs//uploads/, DEPLOYMENT_ENVIRONMENT propagated to the web container, post-pull re-exec
  • schemaMode propagation in wizard first-run and scraper paths
  • “Create new catalog/dataset” placed at top of dropdown

Security

  • Scheduled ingest validation hardened
  • HTTP security headers baseline and SSRF/path-traversal hardening on import
  • Critical and high-priority findings from the 2026-04-16 audit closed

[0.1.0-alpha.4] - 2026-03-31

End-of-funding-period iteration. Final state of the platform on the last day of the Prototype Fund Software Sprint funding period (FKZ 16IS25S03).

Added

  • H3 hexagonal grid clustering with expert mode
  • Cluster focus mode, H3-based cluster filtering, mini dashboard
  • Unique-locations model — separate locations from clusters
  • Dataset-centric filter sidebar with multi-catalog support
  • Dataset info popover, colored checkboxes, dataset bounds API
  • Auto-zoom to data on dataset selection change
  • Beeswarm chart type with d3-force layout and server-side temporal clustering
  • Grouped charts: groupBy for beeswarm and stacked histogram
  • Chart type synced to URL parameter
  • Tag field support for multi-value array filtering
  • HTML-in-JSON import format with detail-page enrichment
  • JSON pre-processing with group-by and date merge
  • Embeddable views via /embed route
  • Photon and LocationIQ geocoding providers (weighted distribution)
  • Funding logos (Prototype Fund, BMFTR) in docs, web app, and README

Changed

  • Tag chips in event detail show field labels
  • Filter rows left-aligned; redundant catalog labels removed
  • Catalog chart hidden for single-catalog selections

Fixed

  • cluster_events() location_name cast to text

[0.1.0-alpha.3] - 2026-03-22

Second Second-Stage iteration. Feature work in direct response to feedback from the partner-organisation cooperation: internationalization, scraper sandboxing, JSON API ingestion, full wizard redesign.

Added

  • Internationalization with next-intl (English and German locales)
  • Translation of all user-facing components and email templates (EN/DE)
  • Payload CMS content localization for EN/DE
  • Custom scraper system with isolated Podman runner, scraper management UI, and CLI
  • Scraper quota enforcement
  • Block registry, UI customization, and layout templates
  • Branding global wired into emails (siteName and logo)
  • API key authentication
  • Configurable legal notices on the registration form
  • Timezone support for scheduled imports
  • JSON API import with pagination and wizard UX
  • JSON file upload in the import wizard
  • Edit scheduled import via the import wizard
  • Multi-stage progress timeline and column-centric mapping in the import wizard
  • Multi-worker support with concurrency control for jobs
  • Error boundaries on explore and import pages
  • React Compiler enabled

Changed

  • Renamed service factories to create*Service convention
  • Replaced custom fade animations with native View Transitions API
  • Migrated all frontend routes to locale-aware [locale]/(frontend)/ structure
  • Renamed importingest across the codebase
  • Schema-detection package consolidated into the app

[0.1.0-alpha.2] - 2026-03-12

First Second-Stage iteration. Code quality, infrastructure hardening, and platform consolidation in preparation for the partner-cooperation work.

Added

  • Restic-based backup system with S3 offsite support
  • All-in-one Docker image for single-server deployments
  • Pre-built GHCR images in docker-compose, pull-based deployment workflow
  • Integration tests for nginx routing, backup/restore, and Docker container lifecycle
  • Forgot-password and reset-password pages
  • Generic audit log with broad codebase coverage (extends the original audit-logging service)
  • apiRoute() framework with auto-wrapping; all API routes migrated
  • Zod validation schemas across all API routes
  • Encryption of credentials at rest
  • Sites collection wired into layouts with data-scope filtering
  • Worktree-management script with env-file setup
  • 80 additional oxlint native rules
  • Shared ContentState component for empty/error/no-match states

Changed

  • Decomposed large files into focused modules
  • Logo and asset reorganisation with new naming and folder structure

Fixed

  • Access control hardening (5 audit findings, including a security bug)
  • Dataset-schemas access control denormalised for performance
  • Constant-time email change, quota caching, env naming

[0.1.0-alpha.1] - 2025-12-02

First feature-complete public alpha at the close of the regular Prototype Fund Software Sprint Phase 1 (June–November 2025, FKZ 16IS25S03). Implements the milestones from the original proposal: design system, geocoding/data ingest, layout components, filters, visualisation, documentation.

Added

  • Initial public alpha of TimeTiles
  • Interactive geospatial timeline visualization with MapLibre GL JS
  • Data import system supporting CSV, Excel, and ODS formats
  • Automatic schema detection and field mapping
  • Multi-provider geocoding (Nominatim, Google) with database-driven provider configuration and persistent location cache
  • Real-time map clustering and timeline scrubbing
  • Timeline histogram for event distribution over time
  • Dynamic filters by category, date, and location with URL-based state
  • Categorical field filters with schema-based enum support
  • Map theme toggle and zoom controls
  • Adaptive tooltip formatting for histogram chart
  • Responsive web interface with light/dark themes
  • Mobile navigation drawer and filter sheet
  • Import wizard with field-mapping detection and user usage tracking
  • Transforms UI and flow editor
  • Scheduled URL-based imports with automatic execution and webhook triggers
  • Background job runner
  • Account management, feature flags, and branding globals (logos, favicons, site name)
  • Newsletter signup integrated with Payload CMS in the footer
  • Pages collection and MainMenu global for CMS-driven navigation; flexible page builder with block-based content
  • Multi-user permission and quota system with trust levels (0–5)
  • Owner-based access control for private data
  • Comprehensive audit logging service
  • Views collection for saved display configurations
  • Comprehensive E2E testing with Playwright
  • PostgreSQL 17 + PostGIS 3.5 backend
  • Next.js 16 frontend with Payload CMS 3 (integrated mode)
  • Documentation site (Nextra)
  • AGPL-3.0 license

For development changes, see the Git commit history .

Last updated on