hltech / judge-d Goto Github PK
View Code? Open in Web Editor NEWEnvironment-aware contracts repository & contract validation service
License: MIT License
Environment-aware contracts repository & contract validation service
License: MIT License
Is your feature request related to a problem? Please describe.
in most cases contracts will be generated on build-phase of a service. We need a way to gather all those contracts and push with one POST request to /contracts/{provider}/{version}
endpoint
Describe the solution you'd like
I'd like to have a script which could be run inside jenkins and which would gather all generated pact.json
files and a swagger.json
file and POST them all to /contracts/{provider}/{version}
Describe alternatives you've considered
maven/gradle plugin
Is your feature request related to a problem? Please describe.
JSON schema validation should be customizable.
Describe the solution you'd like
Modifying validation behaviour using system properties passed so that they can be used in docker.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Describe the solution you'd like
There should be attached generated via python script HTML report. It should be located in some wiki page or on project github.io
Describe alternatives you've considered
No alternatives yet
Is your feature request related to a problem? Please describe.
Whenever you are making any changes to API you'd like to know if they're backwards compatible.
Describe the solution you'd like
New endpoint that will allow me to perform runtime contract analysis and will not persist my expectations and capabilities. That will allow me to check every change that I make to codebase without worrying that they will brake communication between services.
Describe alternatives you've considered
Alternatives:
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
In GET /contracts/{provider}/{version} we should use {provider}:{version} identifier in order to stay coherent with maven convention.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Find out if bicor contains separate, working capabilities&expectations comparator.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Find out how capabilities and expectations of JMS consumers/providers should look like. Result of this issue should be update in github wiki
We should rename endpoint /contracts/{serviceName} to /services/{serviceName}/versions to reflect our structure of data
publishing services to Judge-D: [com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@789c391e, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@44ae812d, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@714abb4e, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@e64034c5, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@125017d8, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@82d191d9, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@e446d6cf, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@8f921f98, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@448f1584, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@58f7cd7c, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@dbceabc2, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@a29e6113, com.hltech.contracts.judged.agent.JudgeDPublisher$ServiceForm@5585800a, com.hltech.contracts.judged.agent.Ju
Allow to use consul instead of k8s auto discovery mechanism as source of information about services on environment
For now dredd support only k8s auto discovery mechanism
Consul is popular tool that provide auto discovery and it is platform-independent so possibility to use it instead of k8s built in mechanism makes dredd more flexible
Images can, and should be specified using digest, rather than tags. Tags are mutable, so they aren't secure. Digests are immutable, and always point to the same image.
Full container path can look like: domain.org/dir-1/dir-n/name:tag@sha256:deadbeef
Below image names are valid and working:
quay.io/cardil/wathola-forwarder:v0.7.0@sha256:5130875b448f6d4a8d1d422e83358c8a56a21466cbd51492e7ff4d5ebddb7d26
quay.io/cardil/wathola-forwarder@sha256:5130875b448f6d4a8d1d422e83358c8a56a21466cbd51492e7ff4d5ebddb7d26
quay.io/cardil/wathola-forwarder:v0.7.0
Now Judge-d looks only for tagged images. It should properly parse image address.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Every environment variable passed to docker container should be logged in a readable way.
Currently, only JAVA_OPTIONS are logged.
.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Describe the bug
/contracts/services/{serviceName} returns no content
To Reproduce
Expected behavior
String with service name
Is your feature request related to a problem? Please describe.
there will always be a need to generate human-readeable report based on validation report so that it's quick and easy to spot contract incompatibilities
Describe the solution you'd like
I'd like to have a tool e.g. script which will take json (serialized AggregatedValidationReportDto) as an input and produce html report as an output
Describe alternatives you've considered
didnt consider any alternatives
Additional context
I intend to execute this tool e.g. script in jenkins - right after my contracts are generated and validated
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Labels containing information such as component type (backend, frontend, external)
Open question - how to handle external services (currently they require additional environment)
Should include:
metadata:name
spec:containers:name
Is your feature request related to a problem? Please describe.
would be usefull if there was ability to validate if particular version of a service is compatible with the whole environment
Describe the solution you'd like
I'd see a set of rest endpoints - one per communication protocol - taking as and input name, version and environment
Describe alternatives you've considered
nothing
Currently, it's impossible to add contract with large capability. When I tried to add contract with swagger docs having about ~1.7M characters, I received following exception:
org.postgresql.util.PSQLException: ERROR: value too long for type character varying(65436) at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2455) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2155) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:288) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:430) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:356) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:168)
We should rename endpoint /contracts to /contracts/services to reflect our structure of data
Is your feature request related to a problem? Please describe.
Current implementation of K8s service locator looks for pods, and fetches their image. Image is parsed so that name and version of a service is resolved.
Knative project introduces serverless programming into K8s world. Knative services scale their pods to zero if there is no traffic going into them. In that way Judge-d will not find them as a service.
Describe the solution you'd like
To support Knative services, one should look on service.serving.knative.dev
resource type, and took image from it's spec section. Below example Kservice can be seen:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: forwarder
namespace: demo
spec:
template:
spec:
containers:
- name: forwarder
image: quay.io/cardil/wathola-forwarder:v0.7.0
readinessProbe:
httpGet:
path: /healthz
Describe alternatives you've considered
none
Additional context
like:
judgeD publishContracts
judgeD validateContracts
details to be decided by the assignee
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Hello,
I am trying to understand how to interact with Judge D. Could you please explain how to feed the REST endpoints with the pact and swagger files described in the README.md? I've run through the tests to see how this would be done, but they are based on very simple (to say the least) data, which doesn't shed much light. I've also tried to use judge-d-ui, but the heroku page gives an error message, and the docker-compose version I put up on my machine gave no response to my browser's request to localhost:8081.
Best regards,
Piotr
We want to make our API more RESTful. Therefore we decided to replace POST /contracts with POST /contracts/{provider}/{version}. Both path parameters should be represented in request body. Moreover 409 error must be returned in case when resource already exists (the same provider and version).
"/contracts/{provider}/{version:.+}" instead of "/contracts/{provider}/{version}"
Currently, running application and database via docker-compose is impossible.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Test if bicor works using real services.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
It is required when there are some external services, which are undetectable for dredd-agent. Then we might upload their expectations&capabilities + create custom environment for them (external from regular environments) and then verify contracts.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.