[general]
name=qgizmosql
about=QGIS plugin for browsing spatial data from a GizmoSQL (Arrow Flight SQL) server.<br/>
    Connect to a remote or local GizmoSQL service, pick a table, and add it as a QGIS layer — no raw DuckDB file required.
    Supports password and OAuth/SSO authentication via the adbc-driver-gizmosql Python client.<br/>
    <b>Upgrading?</b> Fully quit and relaunch QGIS after reinstalling — Python caches the old plugin code in the same session.
    For dev iteration, the Plugin Reloader plugin can refresh qgizmosql without a full restart.
category=Database
description=Adds a QGIS data provider that reads geographic layers from a GizmoSQL server over Arrow Flight SQL.

hasProcessingProvider=False
icon=resources/images/logo_gizmosql.png
server=True
tags=gizmosql,database,spatial,sql,arrow,flight,duckdb,adbc

# credits and contact
author=GizmoData (Philip Moore). Forked from QDuckDB by Oslandia (Florent Fougeres, Jean Felder, Julien Moura).
email=philip@gizmodata.com
homepage=https://github.com/gizmodata/qgizmosql
repository=https://github.com/gizmodata/qgizmosql
tracker=https://github.com/gizmodata/qgizmosql/issues

# experimental flag
deprecated=False
experimental=True
qgisMinimumVersion=3.40.0
qgisMaximumVersion=5.99

# versioning
version=0.5.3
changelog=
    0.5.3 - Fix the credential "+" button opening a blank auth-config popup in the Add GizmoSQL Layer dialog (#3): drop the bogus dataprovider filter so all auth methods (incl. Basic authentication) are offered, and refresh the credential list on every dialog show so configs created in Settings appear without restarting QGIS.
    0.5.2 - Bump adbc-driver-gizmosql to 2.0.1: geometry-ingest fix (geoarrow.wkb columns ingest as GEOMETRY instead of BLOB; append-mode ingest into GEOMETRY tables works).
    0.5.1 - Security-scan remediation for the plugins.qgis.org Bandit review: replace asserts with explicit raises, resolve codesign to an absolute path with clean failure handling, and log (instead of silently ignoring) errors swallowed while closing connections/cursors/readers.
    0.5.0 - Run on adbc-driver-gizmosql 2.0, powered by the new native Go GizmoSQL ADBC driver (same API; DDL/DML immediate execution, RETURNING support, gizmosql:// URIs, OAuth/SSO from the shared Go driver library). Refresh all dependency pins and CI action versions.
    0.4.0 - Plumb catalog through the layer URI and provider: dialog picker now shows catalog.schema.table; the internal _gizmosql_system catalog is filtered from the picker; information_schema lookups bind table_catalog so tables outside the connection's default catalog resolve to the right one. Live integration tests against a real GizmoSQL container (Docker fixture locally + GitHub Actions services in CI).
    0.3.1 - CI publish fixes: switch to plugins.qgis.org v2 token API (Bearer JWT, plugin-scoped); gate GitHub Release on publish success; fix workspace-clean order so the slim ZIP survives into the upload step.
    0.3.0 - Lower qgisMinimumVersion to 3.40 LTS (Bratislava) so the plugin installs on both LTS and latest stable QGIS (#1); CI now publishes the slim ZIP to plugins.qgis.org automatically on v* tags.
    0.2.12 - Stream Arrow record batches in the feature iterator (perf win on big layers); bump Flight SQL gRPC max-message-size from 16 MB to 1 GiB (#2).
    0.2.11 - Invalidate import caches after pip install so the post-install probe finds freshly-written modules; ad-hoc re-sign native dylibs on macOS; quiet the pre-install probe; surface real exception on import failure; fix initial Table/SQL enabled state; raise+activate re-clicked dialog.
    0.2.10 - Pass PYTHONHOME/PYTHONPATH to the pip subprocess so QGIS's bundled python can bootstrap standalone; log pip failures with the right Qgis.MessageLevel enum on Qt6.
    0.2.9 - Use the bundled python interpreter (not sys.executable) to drive pip on macOS — sys.executable in QGIS is QGIS itself, so the previous code was launching a 2nd QGIS instance with pip args.
    0.2.8 - First-launch dependency installer now uses QProcess so the progress dialog stays responsive instead of looking frozen during pip's ~60 MB download.
    0.2.7 - Probe importlib_resources in the first-launch dep check so a partial system install no longer skips the prompt.
    0.2.6 - Fix first-launch dep install: pin importlib_resources; always prepend embedded_external_libs to sys.path.
    0.2.5 - Refactor multi-line binary exprs to satisfy both W503 and W504.
    0.2.4 - Modern PEP 8 break-before-operator style (W504 compliance).
    0.2.3 - Mirror plugins.qgis.org checks in CI (bandit, +x detection); drop W503 ignore.
    0.2.2 - Annotate remaining trust-boundary SQL sites (# nosec B608).
    0.2.1 - SQL injection hardening: identifier validation, bind params, trust boundaries.
    0.2.0 - Install native deps at first launch instead of bundling. Slim plugin ZIP for plugins.qgis.org submission. Per-platform offline-install ZIPs for air-gapped users. Include LICENSE in package.
    0.1.1 - CI: ship an unversioned qgizmosql.zip alongside the versioned asset.
    0.1.0 - Initial fork from QDuckDB. Replace embedded DuckDB with ADBC Flight SQL client against a remote GizmoSQL server. QGIS Auth Manager integration; experimental.

[upstream]
forked_from=https://gitlab.com/Oslandia/qgis/qduckdb
original_funders=IFREMER
