npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@htag/node-red-contrib-hypertegrity-endpoints

v0.3.2

Published

Hypertegrity NodeRED Endpoint Nodes.

Readme

Hypertegrity Node-RED Endpoint Nodes

A collection of Node-RED nodes that publish curated datasets as public OpenData endpoints.


📝 Introduction

This package provides the PostgreSQL CSV API node, which turns configurable PostgreSQL datasets into CSV downloads behind an OpenData endpoint. Node-RED acts as the data pipeline, APISIX as the external API gateway.

The node enables you to:

  • Register models — declare exactly which schema, table and timestamp column may be published.
  • Control the payload — exclude columns and entities, rename public CSV headers, add PostGIS coordinates.
  • Serve CSV — expose a single, read-only HTTP endpoint that queries PostgreSQL live.

Included Nodes

| Node | Description | |------|-------------| | postgresql-csv-api | Publishes configurable PostgreSQL datasets as CSV via GET <path prefix>/:model.csv (default /api/opendata/v1); the exportable models and the database connection are configured in the editor |

The node has no input and is therefore not configured by message (msg.config); the export is controlled by the time parameters ?month=YYYY-MM / ?year=YYYY.

Notes on upgrading to 0.3.2

  • Exports are streamed from PostgreSQL; large periods no longer need memory for the whole result. The CSV content is unchanged. If a database error occurs after the CSV has started, the download is aborted instead of HTTP 500.
  • date and timestamp (without time zone) no longer depend on the time zone of the Node-RED process; they are written as before on a UTC server (e.g. 2024-05-01T00:00:00.000Z). On servers with another time zone the values were shifted before.
  • With excluded entities, rows without an entity ID are exported (they were dropped before); entity columns of type integer/uuid work. The entity column is configurable (default entity_id).
  • Periods without data return the full CSV header also for materialized views.
  • An empty port falls back to DB_PORT. Identifiers are quoted, so reserved names such as user work.
  • New optional settings: path prefix of the API node, operating limits of the registry (time limit, concurrent exports) and "Excel compatible" per model. All are off or unchanged by default.
  • Invalid models no longer stop the registry: they are skipped with an error, all valid models are served.
  • The cause of a failed export (HTTP 500/504) is passed to Catch nodes with a message (msg.topic = model, msg.payload with model, status code, method, path and query); before it was only logged.
  • The endpoint has no authentication of its own; protect it with the API gateway or httpNodeMiddleware. Database SSL/TLS is not configurable yet.
  • Loading entity IDs in the editor reads table contents and now requires the flows.write permission; values of a column marked as excluded are not loaded.
  • "Excel compatible": only complete numbers such as -1.5 stay unprefixed; text such as -1+1 gets ' as well.
  • numeric[]: values beyond JavaScript number precision keep their exact PostgreSQL digits (e.g. [1.1,12345678901234567890] instead of [1.1,12345678901234567000]); usual values are written as before. Numbers inside json/jsonb, bytea and interval are written as before (see help).
  • Excluding own longitude/latitude table columns no longer drops the coordinates computed from the Point column.
  • ?month=0000-MM / ?year=0000 return HTTP 400 (HTTP 500 before); the file name always has a four-digit year (e.g. -0999.csv).
  • The time limit per export is capped at 2147483 s with a warning; larger values aborted every export at once.

Installation

Install via the Node-RED Palette Manager or using npm:

npm install @htag/node-red-contrib-hypertegrity-endpoints

🌍 About the Project / Über das Projekt

📍 Über dieses Projekt / About this Project

DE: Dieses Open Source Projekt wurde von der Stadt Menden (Sauerland) im Rahmen ihres Smart-City-Vorhabens beauftragt. Es ist nicht im Rahmen des Projekts Südwestcluster (SWCL) entstanden – im Unterschied zu den übrigen Paketen dieser Node-RED-Bibliothek.

EN: This open source project was commissioned by the City of Menden (Sauerland) as part of its smart city programme. It was not created within the Südwestcluster (SWCL) project — unlike the other packages of this Node-RED library.

💡 Hintergrund / Background

DE: Die Entwicklung wurde durch die Stadt Menden (Sauerland) finanziert. Dadurch können wir diese Lösung der gesamten Community als Open Source zur Verfügung stellen.

EN: The development was funded by the City of Menden (Sauerland). This allows us to make this solution available to the entire community as open source.

🌐 Open Source Philosophie / Open Source Philosophy

DE: Wir unterstützen aktiv die OSS-Community und fördern kollaborative Entwicklung. Durch die Veröffentlichung als Open Source profitieren alle Beteiligten:

  • Community: Freier Zugang zu moderner Smart City Technologie
  • Transparenz: Nachvollziehbare und überprüfbare Lösungen
  • Innovation: Gemeinsame Weiterentwicklung durch verschiedene Akteure
  • Nachhaltigkeit: Langfristige Verfügbarkeit und Wartbarkeit

EN: We actively support the OSS community and promote collaborative development. Releasing it as open source benefits everyone involved:

  • Community: Free access to modern Smart City technology
  • Transparency: Traceable and verifiable solutions
  • Innovation: Collaborative development by various actors
  • Sustainability: Long-term availability and maintainability

🙏 Danksagung / Acknowledgements

DE: Ein besonderer Dank gilt der Stadt Menden (Sauerland) für die Beauftragung und die Freigabe dieser Lösung als Open Source.

EN: Special thanks goes to the City of Menden (Sauerland) for commissioning this work and for releasing this solution as open source.


📜 License & Contact / Lizenz & Kontakt

© 2026 HYPERTEGRITY AG. Alle Rechte vorbehalten. / All rights reserved.

⚖️ License Compatibility / Lizenz-Kompatibilität

DE: Details zur Lizenzierung und zu den Nutzungsrechten finden Sie in der beigefügten LICENSE Datei.

EN: Details on licensing and usage rights can be found in the attached LICENSE file.

📧 Contact / Kontakt: [email protected] 🌐 Website: www.hypertegrity.de