Zeus-Labs/ZeusCloud

Feature request: Don't require neo4j

yonas opened this issue · 4 comments

yonas commented

Allow users to log to stdout or a file if they choose not to install neo4j.

Hey @yonas - Welcome to ZeusCloud! And thanks for your request :)

Would you mind expanding a bit?

What are you looking to log to stdout / file? Did you have an issue w/ neo4j?

The way the project works is that it pulls an asset inventory using cartography into a Neo4j docker container. And then we run security rules on top of the neo4j database.

yonas commented

@varunjain99 Oh, I thought neo4j was log4j.

neo4j has quite a few dependencies on FreeBSD:

neo4j-4.4.16                                                                                                                                                                                                         
Comment        : High performance graph store and database
Depends on     :
        bash-5.2.15
        openjdk11-11.0.18+10.1

openjdk11-jre-11.0.18+10.1
Comment        : Java Runtime Environment 11
Depends on     :
        libXtst-1.2.3_2
        libXrender-0.9.10_2
        libXrandr-1.5.2
        libXi-1.8,1
        libXext-1.3.4,1
        libX11-1.7.2,1
        libXt-1.2.1,1
        xorg-fonts-truetype-7.7_1
        fontconfig-2.14.2,1
        freetype2-2.12.1_2
        javavmwrapper-2.7.9
        png-1.6.39
        lcms2-2.13.1
        jpeg-turbo-2.1.5.1
        giflib-5.2.1
        alsa-lib-1.2.2_1

Could we switch out neo4j for something with fewer dependencies (especially Java)?

Furthermore neo4j seems not to be free of charge for production environments. It's only free for:

For small development projects, learning, experimentation, and prototyping.
For learning Neo4j and smaller projects that do not require high levels of availability, scaling,

Source: https://neo4j.com/pricing/

Thanks for your thoughts @kagahd! FWIW, that pricing refers to their managed DB version. I believe you should still be able to self-host in production. I think it makes sense to be db-agnostic (while requiring some subset of CypherQL?)

We're using Neo4j right now since cartography uses it - What are thoughts on other Cypher-compatible databases? I've heard of Memgraph and Redisgraph - this list may have more query engines we could use