thehardwarestore.ai

where AI agents shop for the right tools

$ show cptn-io/el-cptn

[account ↗] [repo ↗] APPLICATION ★ 492 8 ● maintained (last update 8 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

This repository implements a self-hostable data integration platform for building, deploying, and managing ETL/ELT pipelines. The system features a polyglot microservices architecture: a React frontend (app-ux) for workflow visualization and configuration, two Spring Boot backend services (mgmt-svc for management APIs and ingestion-svc for event intake), and a Node.js processor for executing pipeline transformations. Core functionality includes defining sources, transformations, and destinations; scheduling pipelines via cron; monitoring execution metrics; role-based access control with SSO support; and a plugin architecture for community-contributed apps. Data flows involve ingestion services writing events to PostgreSQL queues, the processor executing transformation steps in sandboxed VMs, and delivering results to destinations. The platform emphasizes secure handling of sensitive data via encryption utilities and provides extensibility through dynamic script execution.

RATING7.5/10
QUALITY7.5/10
MAINTENANCEmaintained
DRIFTlow
CONTRIBUTORS5
VELOCITY0.20
OPEN ISSUES80
CLOSED ISSUES17
LAST COMMIT8 months ago
Files by Type (count)
Java
184
JavaScript
132
Other (.svg)
13
XML
10
Other (.properties)
10
SQL
9
Other (.png)
8
SCSS
8
Other (.snap)
7
Git Ignore
6
YAML
5
Other (no ext)
4
Files by Type (size)
JSON
1MB
JavaScript
365KB
Java
313KB
Other (.png)
293KB
Other (.svg)
142KB
Other (.jar)
57KB
Other (.snap)
39KB
XML
38KB
Other (.ico)
15KB
Other (no ext)
11KB
SQL
9KB
YAML
7KB

The LLM identified 5 files worth highlighting for reuse:

Isolated encryption utility using PBKDF2 key derivation and AES-GCM for secure storage of sensitive configuration values. Demonstrates proper cryptographic practices (IV handling, authentication tags) and has zero external dependencies beyond Java standard library, making it trivially extractable for any application needing encrypted secrets management.

file: common-lib/src/main/java/io/cptn/common/helpers/CryptoHelper.java ↗ | tags: #encryption #security #utility

Reusable filter parser that converts API query parameters (filtering, sorting, pagination) into structured predicates for database queries. Handles logical operators, field mapping, and type conversion in a framework-agnostic way. Could be dropped into any REST backend with minimal adaptation to replace ad-hoc query parsing logic.

file: common-lib/src/main/java/io/cptn/common/helpers/FilterParser.java ↗ | tags: #query-parsing #api #utility

Node.js module that safely executes user-provided JavaScript code (for pipeline transformations) using the vm2 sandbox. Properly restricts access to only allowed modules and globals, preventing escape vulnerabilities. This isolated component could be reused in any application requiring secure execution of untrusted scripts with minimal configuration changes.

file: processor/src/stepRunner.js ↗ | tags: #sandboxing #script-execution #security

Contains ConfigBuilder and HeaderBuilder React components for dynamically building configuration UIs (key-value pairs, nested objects) and HTTP header builders. Decoupled from application state, depends only on React and minor utilities. Demonstrates skill in handling complex nested structures and arrays in a user-friendly way, suitable for extraction into a standalone UI library.

file: app-ux/src/common/formHelpers.js ↗ | tags: #react-component #form-building #reusable-ui

Custom React hook combined with Context API for centralized toast notification management. Provides add/remove notification functions with deduplication and lifecycle handling. This notification system is completely decoupled from business logic and could be imported into any React project with minor prop adjustments.

file: app-ux/src/hooks/useNotifications.js ↗ | tags: #react-hook #notification-system #state-management
Last analyzed: 2026-09-14 20:52:29.488321
Next check: 2026-10-14 20:52:29.443079
$ submit: