Skip to content

Commit 48896c0

Browse files
update(roadmap): consolidate and prioritize goals across tutorials, Y… (#2623)
* update(roadmap): consolidate and prioritize goals across tutorials, YAML handling, and proxy/reuse performance improvements * Update docs/ROADMAP.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/ROADMAP.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/ROADMAP.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/ROADMAP.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent 4b0ea7b commit 48896c0

1 file changed

Lines changed: 31 additions & 126 deletions

File tree

docs/ROADMAP.md

Lines changed: 31 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -6,149 +6,54 @@
66

77
# 7.X
88

9-
- Add Example tests for all tutorials
10-
- Question: Should we remove the old rest2soap interceptor(using XSLT) in favor of the new template based examples?
11-
- Do we need add(Rule,Source) and getRuleBySource(Manual|Spring)?
9+
PRIO 1:
10+
11+
- Tutorials:
12+
- Add how to run the tutorials in a Docker container
13+
- HotReload for YAML
14+
- YAML parsing:
15+
- Shorten YAML error messages
16+
- When the reason for a parse error is clear. Shorten error message.
17+
- if: Add hint in documentation: use choice otherwise for else TB
18+
- Register JSON Schema for YAML at: https://www.schemastore.org TB
19+
- create test asserting that connection reuse via proxy works TP
20+
- Central description of Membrane Languages, Cheat Sheets, links to their docs.
21+
- Central description of MEMBRANE_* environment variables
22+
- Like MEMBRANE_HOME...
23+
- @coderabbitai look through the code base for usages of these variables and suggest documentation
24+
25+
26+
PRIO 2:
1227
- Fix maven central publish job
28+
- Tutorial: Replace httpbin and catfact TB
29+
- use @MCElement(collapsed=true) for suitable classes
30+
31+
PRIO 3:
32+
1333
- JMXExporter:
1434
- Tutorial
15-
- Documentation
35+
- Example
1636
- See JmxExporter
17-
- remove basic-xml-interceptor example?
18-
- logs:
19-
- Instead of:
20-
18:37:33,693 INFO 1 main HttpEndpointListener:92 {} - listening at '*:2000'
21-
18:37:33,693 INFO 1 main HttpEndpointListener:92 {} - listening at '*:2001'
22-
=> listening at *:2000, *:2001
37+
- upgrade to jackson 3
38+
- When OpenAPI Parser: swagger-parser-v3 is released with Jackson 3 support
2339
- refactor JdbcUserDataProvider
2440
- Refine YAML for balancer: clustersFromSpring
2541
- wsdlRewriter YAML is not working
26-
- use @MCElement(collapsed=true) for suitable classes
27-
- StreamTracing:
28-
- Take out zeros
29-
- Line Break after []
30-
- Tutorials:
31-
- Add how to run the tutorials in a Docker container
32-
- HotReload for YAML
42+
- Discuss renaming the WebSocketInterceptor.flow to something else to avoid confusion with flowParser
43+
- Migrate deprecated finally to try with resources
3344
- YAML:
3445
- method: Suggest GET, POST, ...
35-
- A "---" at the end without an API behind it, produces an error. The gateway should tolerantly ignore it.
36-
- Language is case sensitve: e.g. language: SPEL is not valid according to the Schema and produces:
46+
- Language is case sensitive: e.g. language: SPEL is not valid according to the Schema and produces: TB
3747
Invalid YAML: does not have a value in the enumeration ["groovy", "spel", "xpath", "jsonpath"]
38-
- openapi/rewrite/protocol provide http and https options
39-
40-
41-
# 7.0.4
42-
43-
- Discuss renaming the WebSocketInterceptor.flow to something else to avoid confusion with flowParser
44-
- YAML parsing:
45-
- When the reason for a parse error is clear. Shorten error message.
46-
- BalancerHealthMonitor:
47-
- @PostConstruct instead of InitializingBean, DisposableBean
48-
- Migrate deprecated finally to try with ressources
49-
- if: Add hint in documentation: use choice otherwise for else
50-
- accessControl:
51-
- Warning: Gets complicated!
52-
- Migrate to simple yaml config
53-
- Restrict on ips, hostname not paths
54-
- ipv6, wildcards
55-
56-
# 7.1.0
57-
58-
- Register JSON Schema for YAML at: https://www.schemastore.org
59-
- Grafana Dashboard: Complete Dashboard for Membrane with documentation in examples/monitoring/grafana
60-
- Remove GroovyTemplateInterceptor (Not Template Interceptor)
61-
- Old an unused
62-
- create test asserting that connection reuse via proxy works
63-
- Configuration independent lookup of beans. I just want bean foo and I do not care where it is defined.
64-
- See: ChainInterceptor.getBean(String)
65-
- Maybe a BeanRegistry implementation for Spring?
66-
67-
# 7.0.4
68-
48+
- openapi/rewrite/protocol provide http and https options TB
6949
- Discuss renaming the WebSocketInterceptor.flow to something else to avoid confusion with flowParser
7050
- do not pass a `Router` reference into all sorts of beans: Access to global functionality should happen only on a very limited basis.
51+
- Before start discuss with team
7152

7253

73-
# 7.0.1
74-
75-
- Central description of Membrane Languages, Cheat Sheets, links to their docs.
76-
- Central desciption of MEMBRANE_* environment variables
77-
- Like MEMBRANE_HOME...
78-
- @coderabbitai look through the code base for usages of these variables and suggest documentation
79-
- Restore Kubernetes Startup Thread
80-
- Fix `YAMLParsingTest.errorInListItemUniqueness()`
81-
- Check 404 in AdminConsole => Client Requests
82-
- API to get client requests returns 404, if called without admin console access
83-
84-
85-
## (Breaking) Interface Changes
86-
- Replaced AccessControlInterceptor:
87-
- `accessControl` is now configured inline in YAML/XML flow (no `file="acl.xml"`).
88-
- ACL no longer matches URIs/paths; routing is done via `api.path.uri` with per-API `accessControl`.
89-
- Matching is now only by peer IP (CIDR, IPv4+IPv6) or hostname (regex).
90-
- First match wins, default is deny if nothing matches.
91-
- JMX: Name changes to "io.membrane-api:00=routers, name="
92-
- Removed GateKeeperClientInterceptor
93-
- Removed support for `internal:<name>` syntax in target URLs, leaving `internal://<name>` as the only valid way to call internal APIs.
94-
- Remove WADLInterceptor
95-
- HttpClient TB (done)
96-
- Change Signature: public Exchange call(Exchange exc) throws Exception
97-
=> public void call(Exchange exc) throws Exception {
98-
- Remove HttpClientInterceptor.setAdjustHeader(boolean) it is already in HttpClientConfiguration
99-
- Remove xmlSessionIdExtractor if we have a replacement with language
100-
- Remove HttpUtil.getHTMLErrorBody()
101-
- LogInterceptor:
102-
- Remove: headerOnly
103-
- ValidatorInterceptor: remove FailureHandler
104-
- Predominantly used for logging; move logging into validators.
105-
- Migration: replace FailureHandler usages with validator-level logging; ensure correlation IDs/Exchange context remain available for logs.
106-
- Check if it is used by customer installations
107-
- Groovy:
108-
- ScriptingUtils: Variable bindings: headers references message.headers with the headers class instead of a map<String,Object>.
109-
- Difference to SpEL
110-
- SpEL headers.foo should return comma separated list of all values.
111-
- Delete unneeded proxies.xml in examples CG
112-
- for distribution: README with Link to Github for XML-based example configurations TB
113-
- update schema reference to 7.0.0, integrate into ConsistentVersionNumbers.java (done)
114-
- improve error output on
115-
- schema validation error
116-
- bean setter exception
117-
- port occupied (done)
118-
119-
- header['x-unknown'] returns null instead of empty string !!!!!!!!!!!!
120-
- SpEL: header is now of class HeaderMap insteadof SpelHeader
121-
122-
## Breaking Changes
123-
124-
- YAML Configuration as default
125-
- Use of colors in logs
126-
- Removed camelCase conversion of header access in Groovy scripts instead of header.contentType use header['Content-Type']
127-
- JMX namespace changed from org.membrane-soa to io.membrane-api.
128-
129-
## Minor
130-
- Rewrite JSONAssert Tests with RESTAssured
13154

13255
## Discussion
13356

134-
- YAML:
135-
- apiKey:
136-
- simple method for specifying a couple of keys in the YAML
137-
- SimpleKeyStore: scope feels strange in YAML. Maybe not TextContent for Value
138-
139-
# 6.5.0
140-
141-
- Data Masking
142-
- Is JSONPath replacement with Jayway possible? <mask>$.cusomter.payment.creditcard
143-
- Other ways to do it.
144-
- <apiKey/>
145-
<scriptXX>${json[key]}</scriptXX>
146-
- See: RateLimitInterceptor
147-
- OpenAPIValidator:
148-
- <openapi unknownQueryParameters="accept|report|block" .../>
149-
Default: accept
150-
- YAML: JsonSchemaGenerator enable description fields for editor
151-
15257
# 6.4.0
15358

15459
Breaking Changes:

0 commit comments

Comments
 (0)