https://github.com/curium-rocks/mitre-siphon
Syncs the mitre CVE JSON dumps to a PostgreSQL DB using Quartz and Kafka and exposes a rest API for running full text searches against the DB.
https://github.com/curium-rocks/mitre-siphon
cve-db-search docker fulltext-search gradle kafka mitre postgresql spring-boot
Last synced: about 1 year ago
JSON representation
Syncs the mitre CVE JSON dumps to a PostgreSQL DB using Quartz and Kafka and exposes a rest API for running full text searches against the DB.
- Host: GitHub
- URL: https://github.com/curium-rocks/mitre-siphon
- Owner: curium-rocks
- License: mit
- Created: 2021-01-23T02:31:21.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-04-03T15:17:36.000Z (over 1 year ago)
- Last Synced: 2025-04-03T16:29:17.689Z (over 1 year ago)
- Topics: cve-db-search, docker, fulltext-search, gradle, kafka, mitre, postgresql, spring-boot
- Language: Java
- Homepage:
- Size: 811 KB
- Stars: 1
- Watchers: 0
- Forks: 2
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://codecov.io/gh/curium-rocks/mitre-siphon)
# Mitre-Siphon
Watches the NVD CVE JSON repositories and on updates publishes to a queue. Queue data is processsed and saved into a database for full text searching across a REST Api.
### Prerequisites
- [docker](https://docs.docker.com/desktop/)
- [docker-compose](https://docs.docker.com/compose/)
## Running the tests
Tests are run using docker-compose.
```
docker-compose --file docker-compose.test.yml build
docker-compose --file docker-compose.test.yml run sut
```
## Getting Started
Run `docker-compose up` to launch the application. Once everything has started up you will be able to access the application at http://localost:8080/, a basic swagger ui is included to show the API endpoints.

You can interact with a live version [here](https://mitre-siphon.apps.curium.rocks).
## Built With
- [Spring Boot](https://spring.io/projects/spring-boot)
- [Gradle](https://gradle.org/)
- [Quartz](https://www.quartz-scheduler.org/)
- [Kafka](http://kafka.apache.org/)
- [PostgreSQL](https://www.postgresql.org/)
- [FlyWay](https://flywaydb.org/documentation/)
- [Hibernate](https://hibernate.org/)
- [OpenAPI3](https://swagger.io/blog/news/announcing-openapi-3-0/)
## Versioning
[SemVer](http://semver.org/) is used for versioning. For the versions available, see the [tags on this repository](https://github.com/curim-rocks/mitre-siphon/tags).
## Todos
- Increase test coverage and cases covered in tests
- Add a UI for searching the data
- Smarter spring active profile switching based on environment
- More documentation on methods to enrich the data available for javadoc task and OpenAPI3
- More validation of input
## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details