Skip to content

feat(daq): add QuestDB storage backend (ILP ingest + PGWire query).#2213

Open
CuAuPro wants to merge 1 commit intofrangoteam:masterfrom
CuAuPro:feature/daq-questdb
Open

feat(daq): add QuestDB storage backend (ILP ingest + PGWire query).#2213
CuAuPro wants to merge 1 commit intofrangoteam:masterfrom
CuAuPro:feature/daq-questdb

Conversation

@CuAuPro
Copy link

@CuAuPro CuAuPro commented Feb 24, 2026

📌 Description

This PR adds QuestDB support as a DAQ storage backend.

  • What problem does this solve?

    • FUXA had no QuestDB storage adapter.
    • QuestDB-specific configuration in the app settings was missing/unclear.
    • UI labels for QuestDB sender/query connections were not explicit.
  • What was changed?

    • Added server/runtime/storage/questdb/index.js backend.
    • Wired questDB into server/runtime/storage/daqstorage.js.
    • Implemented QuestDB dual-path access:
      • Ingestion via ILP (@questdb/nodejs-client)
      • Querying via PGWire (pg Pool)
    • Added typed value handling in QuestDB storage:
      • number_value for numeric/bool(0/1)
      • string_value for string values
    • Added configurable QuestDB table name (tableName, default meters).
    • Extended frontend DAQ settings model for QuestDB fields:
      • host, tableName, configurationString
    • Updated app settings UI:
      • Added QuestDB-specific configuration section
      • Added separate labels for query vs ingestion connection
    • Added/updated i18n keys in all locale files:
      • dlg.app-settings-daqstore-configurl
      • dlg.app-settings-daqstore-queryconn
      • dlg.app-settings-daqstore-ingestconn
  • Why is this needed?

    • Enables first-class QuestDB usage in FUXA.
    • Aligns with QuestDB protocol usage (ILP for writes, PGWire for reads).
    • Makes DAQ configuration clearer and safer for users.

🧪 Type of Change

  • Bug fix
  • New feature
  • Refactoring
  • Documentation
  • Other

🚫 Build Artifacts Check

Please confirm:

  • I did NOT commit /client/dist
  • I did NOT commit generated Angular build output
  • Only source files are included

🔍 Checklist

  • Code follows project coding standards
  • I tested my changes locally
  • Documentation updated if required
  • Issue opened (for major changes)

📚 Documentation Checklist (if applicable)

  • The documentation builds locally with mkdocs serve
  • All links were tested
  • Images use relative paths (e.g. images/example.png)
  • No references to the old GitHub Wiki
  • Navigation updated in mkdocs.yml (if required)

📝 Additional Notes

  • questDB type key remains lowercase for compatibility with existing settings flow.
  • Existing/legacy QuestDB value handling is normalized in runtime where needed.
  • No generated frontend build artifacts were intentionally included.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant