An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

[![codecov](https://codecov.io/gh/curium-rocks/mitre-siphon/branch/master/graph/badge.svg?token=70JSHSV2IY)](https://codecov.io/gh/curium-rocks/mitre-siphon)![GitHub](https://img.shields.io/github/license/curium-rocks/mitre-siphon)![GitHub release (latest SemVer including pre-releases)](https://img.shields.io/github/v/release/curium-rocks/mitre-siphon?include_prereleases)

# 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.

![image](https://user-images.githubusercontent.com/8363252/106229649-9adac180-61b3-11eb-8aa9-614ebfb1dcf3.png)

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