HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
paloaltodatabases
sequor
Python2025–2025
paloaltodatabases / sequor

sequor

Build complete API integrations with YAML and SQL. Rapid development without vendor lock-in and per-row costs.

2Distinct people
3Mentions
0Explicit recommenders
91GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Build complete API integrations with YAML and SQL. Rapid development without vendor lock-in and per-row costs.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by day3 dated mentions

Observed mentions: 2025-05-28 15:27:38 UTC to 2025-06-23 01:03:02 UTC.

012025-05-28 00:00:00 UTC to 2025-05-29 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsMay 282025-05-29 00:00:00 UTC to 2025-05-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-05-30 00:00:00 UTC to 2025-05-31 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2025-05-31 00:00:00 UTC to 2025-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-01 00:00:00 UTC to 2025-06-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-02 00:00:00 UTC to 2025-06-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-03 00:00:00 UTC to 2025-06-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-04 00:00:00 UTC to 2025-06-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-05 00:00:00 UTC to 2025-06-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-06 00:00:00 UTC to 2025-06-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-07 00:00:00 UTC to 2025-06-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-08 00:00:00 UTC to 2025-06-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-09 00:00:00 UTC to 2025-06-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-10 00:00:00 UTC to 2025-06-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJun 102025-06-11 00:00:00 UTC to 2025-06-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-12 00:00:00 UTC to 2025-06-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-13 00:00:00 UTC to 2025-06-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-14 00:00:00 UTC to 2025-06-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-15 00:00:00 UTC to 2025-06-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-16 00:00:00 UTC to 2025-06-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-17 00:00:00 UTC to 2025-06-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-18 00:00:00 UTC to 2025-06-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-19 00:00:00 UTC to 2025-06-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-20 00:00:00 UTC to 2025-06-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-21 00:00:00 UTC to 2025-06-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-22 00:00:00 UTC to 2025-06-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-23 00:00:00 UTC to 2025-06-24 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJun 23

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
May 282025-05-28 00:00:00 UTC2025-05-29 00:00:00 UTC110
May 292025-05-29 00:00:00 UTC2025-05-30 00:00:00 UTC000
May 302025-05-30 00:00:00 UTC2025-05-31 00:00:00 UTC110
May 312025-05-31 00:00:00 UTC2025-06-01 00:00:00 UTC000
Jun 12025-06-01 00:00:00 UTC2025-06-02 00:00:00 UTC000
Jun 22025-06-02 00:00:00 UTC2025-06-03 00:00:00 UTC000
Jun 32025-06-03 00:00:00 UTC2025-06-04 00:00:00 UTC000
Jun 42025-06-04 00:00:00 UTC2025-06-05 00:00:00 UTC000
Jun 52025-06-05 00:00:00 UTC2025-06-06 00:00:00 UTC000
Jun 62025-06-06 00:00:00 UTC2025-06-07 00:00:00 UTC000
Jun 72025-06-07 00:00:00 UTC2025-06-08 00:00:00 UTC000
Jun 82025-06-08 00:00:00 UTC2025-06-09 00:00:00 UTC000
Jun 92025-06-09 00:00:00 UTC2025-06-10 00:00:00 UTC000
Jun 102025-06-10 00:00:00 UTC2025-06-11 00:00:00 UTC000
Jun 112025-06-11 00:00:00 UTC2025-06-12 00:00:00 UTC000
Jun 122025-06-12 00:00:00 UTC2025-06-13 00:00:00 UTC000
Jun 132025-06-13 00:00:00 UTC2025-06-14 00:00:00 UTC000
Jun 142025-06-14 00:00:00 UTC2025-06-15 00:00:00 UTC000
Jun 152025-06-15 00:00:00 UTC2025-06-16 00:00:00 UTC000
Jun 162025-06-16 00:00:00 UTC2025-06-17 00:00:00 UTC000
Jun 172025-06-17 00:00:00 UTC2025-06-18 00:00:00 UTC000
Jun 182025-06-18 00:00:00 UTC2025-06-19 00:00:00 UTC000
Jun 192025-06-19 00:00:00 UTC2025-06-20 00:00:00 UTC000
Jun 202025-06-20 00:00:00 UTC2025-06-21 00:00:00 UTC000
Jun 212025-06-21 00:00:00 UTC2025-06-22 00:00:00 UTC000
Jun 222025-06-22 00:00:00 UTC2025-06-23 00:00:00 UTC000
Jun 232025-06-23 00:00:00 UTC2025-06-24 00:00:00 UTC101

What Hacker News says

3 sources
You seem to have stepped on the same landmine that Ansible did, by defaulting to the jinja2 [aka text/template silliness in golang] of using double mustaches in YAML. I hope you enjoy quoting things because you're going to be quoting everything for all time because "{" is a meaningful character in YAML. Contrast parameters: status: "{{ var('order_status') }}" with parameters: # made famous by GitHub Actions status: ${{ var('order_status') }} # or the ASP.Net flavor: status2: <%= var('order_status2') %> # or the PHP flavor: status3: <?= var('order_status3') ?> and, just like Ansible, it's going to get insaneo when your inner expression has a quote character, too, since you'll need to escape it from the YAML parser leading to leaning toothpick syndrome e.g. parame
Read the rest
ters: status: "{{ eval('echo \"hello\"') }}" --- If you find my "but what about the DX?" compelling, also gravely consider why in the world `data_expression:` seems to get a pass, in that it is implicitly wrapped in the mustaches --- edit: ah, that's why https://github.com/paloaltodatabases/sequor/blob/v1.2.0/src/... but https://github.com/paloaltodatabases/sequor/blob/v1.2.0/src/... is what I would suggest changing before you get a bunch of tech debt and have to introduce a breaking change. From str_rendered = Template(template_str, undefined=StrictUndefined).render(jinja_context) to str_rendered = Template(template_str, undefined=StrictUndefined, variable_start_string="${{", variable_end_string="}}" ).render(jinja_context) # et al, if you want to fix the {# and {%, too per https://jinja.palletsprojects.com/en/stable/api/#jinja2.Temp...
In Dynamic YAML with Python computed properties for fusing API workflows and SQL
maxgrinev·May 28, 2025Submission

Show HN: Sequor – dbt for API Integration

Hey HN! We built Sequor to solve a recurring problem: choosing between two bad options for API/app integration: 1. Proprietary black-box SaaS connectors with vendor lock-in 2. Custom scripts that are brittle, opaque, and hard to maintain Sequor is a SQL-centric workflow framework for building reliable API integrations in modern data stacks — code-first, declarative, and version-controlled. It’s an open source alternative to SaaS connectors, giving data teams full control over their integration pipelines. Sequor combines SQL with HTTP request handling — think dbt for API integration, but with explicit flow control: • Iterate over input tables to make parameterized API calls • Parse and map JSON responses back into database tables • Use SQL for logic, YAML for flows, and Jinja/Python for dynamic behavior • Works equally well for data extrac
Read the rest
tion, reverse ETL, and iPaaS-style end-to-end automation • Git-friendly, no drag-and-drop UIs Our goal was to bring software engineering best practices to integration workflows — without proprietary environments or vendor lock-in. Think of Sequor as your integration foundation, not your ceiling. We provide the proven patterns — you build the custom connectors that match your data flows and business logic. We’d love your feedback, ideas, and contributions. Website: https://sequor.dev — with code examples Quickstart: https://docs.sequor.dev/getting-started/quickstart GitHub: https://github.com/paloaltodatabases/sequor Prebuilt integrations: https://github.com/paloaltodatabases/sequor-integrations
2 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.