Connector-centric registry: one place to add an integration
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- python, typescript
- Ambito
- backend, backend-api-design, database, frontend
Direzione di ricerca
Read docs/architecture-review.md first, then inspect the existing dispatch in src/dapier/engine/init.py, validation in src/dapier/triggers/email_triggers.py, and the designer catalog in designer/src/catalog.ts. A first incremental milestone is the registry wrapper described in migration step 1; run make test and consider it done when dispatch uses the registry while the existing tests still pass.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Full analysis in docs/architecture-review.md. The trigger→action engine is sound; what doesn't scale is that connector knowledge lives in four hand-maintained registries across two languages.
Problem
Adding one action today touches:
src/dapier/engine/actions/<x>.py- the
run_ximport + if/elif dispatch insrc/dapier/engine/__init__.py ACTION_SPECSvalidation insrc/dapier/triggers/email_triggers.py- the hand-mirrored
designer/src/catalog.ts(comment says "Mirrors the run_* dispatch")
Adding one trigger source touches:
worker.normalize_payloadbranchestemplate.yaml(per-source queue/table/env)api/router.pyhook routing- a
load_workflows()hook inmatching.all_workflows
Nothing links these copies; they drift silently. Related structural limits: no data flow between steps (blocks #6, #7, #12), O(all-workflows) resolution per event (published-table scan capped at 200, silently), and per-action auth folklore (credential_id vs connection_id vs auth_secret_id).
Proposal
src/dapier/connectors/<name>/— one package per integration: a manifest (label, events, actions + field schema),normalize(raw) -> eventper ingress it owns, andrun(action, ctx)per action. Aconnectors/registry.pyreplaces the dispatch chain,ACTION_SPECS, and the trigger-load hooks.GET /api/catalog— serve the manifests as JSON; the designer renders palette/inspector from it (keepcatalog.tsas a dev fallback). One registry, three consumers: engine dispatch, validation, UI.ActionContext—ctx.connection(name)→ live token (auto-refreshed), plus event, workflow, run id, and astepsnamespace so later steps can template earlier outputs (first enabler for #6).- One workflows table with a
connector#eventGSI — merge the published/email/hook/schedule stores; matching becomes a query per event instead of four scans + a linear pass. Instant-publish semantics unchanged. - Generic ingress — a route/queue/source → connector mapping with one ingress handler; per-connector queues become declared resources instead of
template.yamlsurgery.
Migration order (incremental, no big bang)
- Registry wrapping the existing
run_*functions; dispatch reads the registry. Tests keep passing. - Move
normalize_payloadbranches into connectors; keep the SQS contract. /api/catalog; designer consumes it; delete the TS mirror andACTION_SPECSduplication.ActionContext+steps+ unifiedconnection_id(keepcredential_id/auth_secret_idas deprecated aliases).- Single workflows table + trigger GSI.
- Then #6/#7/#10 become small changes on top instead of structural ones.
The 23 src/*.py back-compat shims are already removed (2026-09-25); make test was 426 passing at filing time.
- Lingua principale
- Python
- Stelle
- 0
- Fork
- 0
- Merge medio
- 6m
- PR unite (30g)
- 10
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di DataTalksClub/dapier
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
DataTalksClub/dapier#25 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
DataTalksClub/dapier#9 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di DataTalksClub/dapier
Issue simili
-
Remove the `pull_request_target` workflow before GitHub blocks itForse già presa @jat255 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
IBM/mcp-context-forge#7483 ·
I maintainer di solito rispondono entro 2 giorni
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
[Bug Report]: OpenAI 辅助 API 连通性测试因输出上限仅 1 token 误报“未知错误”Forse già presa @fjfanjian l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Project-N-E-K-O/N.E.K.O#3640 ·
I maintainer di solito rispondono entro 1 giorno
-
author-page correction
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
acl-org/acl-anthology#10808 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno