Add a provider-neutral HTTP routing contract for reverse-proxy integration
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 18/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- docker-compose
- Domain
- devops, infrastructure
Research direction
Start with docs/common-ground-alignment.md to see why CDS lacks a reverse-proxy binding, then read the hand-written traefik/dynamic/keycloak.yml and the existing contracts under shared/contracts/. The contract name and shape are still open, so agree the design with the maintainer before editing. Done means the acceptance criteria are met: the contract is documented, the proxy generates routes from bound contracts, the static file is removed from the reference profile, and validator and planner tests plus a CHANGELOG entry are added.
Written by the indexing model from the issue text.
Description
Problem
Routing a TLS entrypoint to an HTTP service currently relies on a hand-written file at traefik/dynamic/keycloak.yml that hardcodes the backend's Compose service name and URL. CDS has no reverse-proxy/http-service binding mechanism (see docs/common-ground-alignment.md), so this wiring sits outside the module and contract system and conflicts with module isolation (modules must not hardcode another module's service name).
Proposal
Introduce a provider-neutral contract (e.g. http-service / reverse-proxy-route) where:
- a service-providing module declares host, port, scheme and optional path/host rules;
- a reverse-proxy module consumes it via
consumes+mappedFrom, bound in the profile withcontractRef; - the proxy's routing configuration is generated from the bindings instead of a static repo-root file.
Acceptance criteria
- Contract documented under
shared/contracts/. - Reverse-proxy module generates routes from bound contracts; no hardcoded service names.
- The reference profile drops the static routing file.
- Validator/planner tests and CHANGELOG entry added.
Estimated effort: 4-6 hours
- Dominant language
- Python
- Stars
- 8
- Forks
- 12
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 93
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from RonaldHensbergen/composable-data-stack
-
area:cli priority:low refactor
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
RonaldHensbergen/composable-data-stack#915 ·
Maintainers usually reply within 1 day
-
area:cli priority:low refactor size:small
Difficulty 1/5 Under an hour Newbie friendliness 88/100
RonaldHensbergen/composable-data-stack#906 ·
Maintainers usually reply within 1 day
-
area:docs documentation hacktoberfest priority:low size:small
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
RonaldHensbergen/composable-data-stack#865 ·
Maintainers usually reply within 1 day
-
area:images bug priority:medium python
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
RonaldHensbergen/composable-data-stack#564 ·
Maintainers usually reply within 1 day
-
area:configuration area:security enhancement priority:medium size:small
RonaldHensbergen/composable-data-stack#932 ·
Maintainers usually reply within 1 day
All issues in RonaldHensbergen/composable-data-stack
Similar issues
-
Project submission:Open
Difficulty 1/5 Under an hour Newbie friendliness 72/100
slavakurilyak/awesome-ai-agents#845 ·
Maintainers usually reply within 1 day
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directoryPossibly taken A pull request linked to this issue is open or already merged. Opendifficulty:2 enhancement good first issue
Difficulty 1/5 1-3 hours Newbie friendliness 92/100
MakazhanAlpamys/Soup#2178 ·
Maintainers usually reply within 1 day
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-valuesOpen
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
scverse/rapids-singlecell#854 ·
Maintainers usually reply within 1 day
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLPossibly taken @ninglinLiu claimed this today. Openarea:frontend backend:slang bug direction:input
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
random_elements(unique=True) on an OrderedDict: ZeroDivisionError once only zero weights remain, AssertionError with use_weighting=FalsePossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 13 days