Conversation
Introduces full Firebird source support (3.x/4.x/5.x) with dump, restore, connection testing, ping, alias-based database discovery, and adapter registration/permissions/credentials wiring. Adds Firebird-specific UI for alias configuration and restore target selection, including Firebird restore constraints in the restore client. Updates backup extension mapping, test seeding and integration config, adds unit coverage for Firebird adapter behavior, and extends Docker/test infrastructure with Firebird client tools and Firebird test containers. Documentation was expanded with a new Firebird user guide page, navigation updates, developer adapter docs, and changelog entries.
Switch from arm64-specific Firebird images to standard images with explicit amd64 platform for versions 3.0 and 4.0. These older versions don't have official arm64 support, so they run under Rosetta/QEMU emulation on Apple Silicon anyway. Using the standard image with platform specification is more reliable. Firebird 5.0 continues to use the standard image (which supports native arm64).
Updates Firebird integration to match current official release artifacts and runtime behavior. The Docker image now pulls the correct nested buildroot payload, installs missing client deps, and wires gbak/isql with full client libs and firebird.msg. Test containers were aligned with verified Firebird Docker env/path conventions and healthchecks now use `isql` against `/var/lib/firebird/data`. Integration test configs, macOS setup automation, and developer setup docs were updated so local, CI, and containerized Firebird tooling use the same expected binaries and database paths.
Improve tool discovery for Firebird adapters by: 1. Adding a new `isFirebirdBinary()` function that verifies a resolved binary is actually Firebird's tool, not unixODBC's same-named isql 2. Adding `FALLBACK_DIRS` array with well-known Firebird installation paths (e.g., /opt/firebird/bin, /opt/homebrew/firebird-client/bin) for cases where tools aren't in PATH 3. Implementing a three-tier resolution strategy: check PATH with verification → check fallback dirs → fallback to command name This fixes issues on dev machines that ran setup scripts but haven't restarted their shell/dev server, and systems where unixODBC's isql command might be found instead of Firebird's.
Adds support for Firebird database adapter to the UI by including a custom SVG icon. The icon is sourced from the Iconify API (MIT licensed) since the devicon npm package lacks it. Also includes a launch configuration file for the dev server.
Add Firebird-specific rendering in `adapter-manager` so each adapter row now shows `host:port` plus the configured database alias count with correct pluralization. This makes Firebird entries consistent with other adapter types and easier to scan in the UI.
Switch Firebird restore flow from alias-only targeting to literal filesystem paths. The restore UI now uses path-oriented inputs, prefills from configured alias paths when available, and shows an "Unverified" overwrite state because Firebird cannot enumerate databases. On the backend, Firebird restore accepts direct target paths, removes alias preflight enforcement, and extends `DatabaseInfo`/`getDatabasesWithStats` to expose alias paths. Unit tests were updated to cover the new path-based behavior.
Implement Firebird table browsing in the adapter by adding getTables and getTableData, including SQL identifier/literal escaping, LIST output parsing, and column type mapping from Firebird metadata. Export runIsqlQuery for reuse and wire the new browser methods into the Firebird adapter. Add focused unit tests for parsing, pagination/sorting SQL generation, null handling, and escaping behavior. Update the stress data generator to populate Redis and Firebird containers, and document the CI script update in the changelog.
Redis Database Explorer now displays key counts per database instead of always blank. Similarly, Firebird explorer now shows table counts fetched via live queries. Changes: - Refactored Firebird's `runQuery` from browser.ts to connection.ts for reuse - Added `getDatabasesWithStats()` to Redis adapter, parsing `INFO keyspace` output to extract per-database key counts - Both adapters support local and SSH modes, with graceful fallback when stats unavailable - Updated tests to match refactored interfaces
Fixes two SSH-related failures: rsync private-key connections now force `IdentitiesOnly=yes` to avoid agent key spam causing "Too many authentication failures", and Firebird SSH mode now uses a host/port wire-protocol connection string instead of a bare local path so containerized remote servers work correctly. Also adds VM helper scripts and npm commands to provision/tear down a Multipass-based SSH test host and seed SSH-mode adapter configs, with changelog updates and adjusted Firebird unit tests to match the new behavior.
Introduces a new independent `/website` Next.js app with landing page sections, blog index and post pages (MDX content), SEO routes (robots/sitemap), reusable UI components, and static assets. Root tooling was updated to treat it as a separate project by excluding/ignoring `website` in Docker, ESLint, and TypeScript configs, plus adding dedicated `website:*` pnpm scripts in the main `package.json`. The changelog now records the new standalone website feature.
Overhauls the marketing site with a broader visual refresh and shared UI primitives, including new section heading and reveal components, refreshed hero/nav/footer/feature/blog layouts, and a new automation section. Adds system light-dark theme support with a toggle, icon-based integration cards, reusable browser and traffic-light framing, and improved GitHub widgets using shared sessionStorage caching for stars and contributors. The product tour is now interactive and auto-advancing with pause-on-hover/focus, reduced-motion handling, in-view detection, and light-theme screenshot support for the overview tab. Also tightens ESLint unused-var handling for underscore-prefixed names and updates the changelog entry to reflect the expanded website feature set.
Updated the website theme from a purple tint to a cooler blue palette in light and dark modes, including hero glow accents. Reordered the homepage so the Product Tour appears earlier, simplified the hero headline by removing the lock icon treatment, and tightened marketing copy for consistency by changing storage counts from "13+" to "13" across sections. Also refined the simplicity feature text to emphasize UI-first configuration over environment variables.
Shift all theme color hues from 235 to 256 and reduce chroma on primary colors (light: 0.19→0.08, dark: 0.17→0.09) for a more neutral blue-indigo tone. Also adjusts hero glow gradient to match the new palette.
Add a new `.claude/launch.json` with a `website-dev` configuration that runs `pnpm --dir website run dev` on port 3001. Update the website global color tokens to shift the blue hue family from 256 to 257, and slightly retune primary/ring values in both light and dark themes for a refreshed palette consistency, including the hero glow gradient.
Tightens the site visuals for dark mode by softening the ambient glow, updating section backgrounds and borders, and removing the extra glow from the product tour.
Add a local `mounted` state in `ThemeToggle` and render the placeholder button until the mount effect runs. This ensures the first client render matches the server output even when `next-themes` resolves `resolvedTheme` synchronously.
Integrates `rehype-pretty-code` and Shiki to render highlighted MDX code blocks on blog pages, using a new `CodeBlock` component with copy-to-clipboard support. Adds a shared `highlightCode` helper and updates Hero and Quick Start snippets to render pre-highlighted HTML with light/dark token variables in global CSS. Also includes a targeted lint note in `theme-toggle` to preserve the client-only mount pattern used to avoid hydration mismatch.
Updated blog post rendering to use a light/dark `rehype-pretty-code` theme pair so syntax highlighting matches the site theme, and refined prose code/pre styling so inline code and fenced blocks render consistently with the custom `CodeBlock` container. Also changed the author frontmatter in two blog posts from "DBackup Team" to "Skyfay".
Updated `website/src/app/page.tsx` to move `Integrations` directly after `StatsBand` and place `AutomationSection` earlier, before `FeatureGrid`. This adjusts the landing page content sequence to surface integrations and automation sooner in the user journey.
Reworks the website product tour to use shadcn tabs as a rounded segmented screenshot switcher and hides the section on mobile where the dashboard previews were not readable. It also removes the old auto-progress animation styles and records the homepage/product tour update in the changelog.
Tightens spacing and refreshes the integrations card styling with larger icons, rounded badges, hover lift, and updated text sizing for a cleaner visual hierarchy.
Move roadmap from docs/roadmap.md to a new website/src/app/roadmap page with status-filtered tabs, GitHub star milestones (live via API), and a shipped feature timeline. Updates nav, footer, sitemap, and README links to point to the new page. Removes the standalone docs/roadmap.md.
Simplifies the v0.13.0 changelog by replacing two separate website feature bullets with one launch-focused entry for dbackup.app, and removing now-redundant website improvement and docs removal sections.
Add a `needsDarkModeBoost` helper in `adapter-icons` for logos with poor dark-theme visibility (`mysql`, `mariadb`, `sqlite`) and apply conditional dark-mode brightness and contrast filters in the integrations grid via `cn`. This keeps the existing icon circle styling while making affected logos readable in dark mode.
Update the website product tour to use a new set of UI screenshots, including light and dark variants for each tab. This also replaces outdated sections (like Vault and Security), aligns labels with current pages, and adds slight image scaling to avoid edge gaps at some viewport widths.
Adds an optional `beta` flag to adapter definitions, sets Firebird as beta, and updates the adapter picker UI to render a Beta badge next to beta adapters. Also updates the changelog entry to note Firebird’s beta status in the source type picker.
Stop tracking Claude Code local workspace settings by adding `.claude` to `.gitignore` and deleting the committed `.claude/launch.json`. This keeps machine-specific tooling config out of version control.
Ensure `scripts/decrypt_backup.js` is available in production images by whitelisting it in `.dockerignore` and copying that file explicitly into the runner stage. This fixes Vault Recovery Kit downloads showing a missing-script warning. Added changelog entry for #120.
Bumps project and docs versions from 2.9.0 to 2.10.0 and updates both OpenAPI specs to match. Finalizes the changelog by converting vNEXT into the v2.10.0 released entry, refreshing Docker image tags for the release, and polishing notes with contributor credit and wording fixes.
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.