{"id":14981113,"url":"https://github.com/visallo/vertexium","last_synced_at":"2026-04-09T05:31:55.472Z","repository":{"id":28274762,"uuid":"31785239","full_name":"visallo/vertexium","owner":"visallo","description":"High-security graph database","archived":false,"fork":false,"pushed_at":"2022-06-30T14:47:03.000Z","size":17699,"stargazers_count":64,"open_issues_count":34,"forks_count":36,"subscribers_count":15,"default_branch":"master","last_synced_at":"2026-03-06T17:39:50.692Z","etag":null,"topics":["accumulo","elasticsearch","graph-database","java"],"latest_commit_sha":null,"homepage":"http://vertexium.org/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/visallo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security/pom.xml","support":null}},"created_at":"2015-03-06T19:27:47.000Z","updated_at":"2025-08-25T16:30:20.000Z","dependencies_parsed_at":"2022-09-20T09:10:19.073Z","dependency_job_id":null,"html_url":"https://github.com/visallo/vertexium","commit_stats":null,"previous_names":["v5analytics/vertexium"],"tags_count":97,"template":false,"template_full_name":null,"purl":"pkg:github/visallo/vertexium","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visallo%2Fvertexium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visallo%2Fvertexium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visallo%2Fvertexium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visallo%2Fvertexium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/visallo","download_url":"https://codeload.github.com/visallo/vertexium/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visallo%2Fvertexium/sbom","scorecard":{"id":914057,"data":{"date":"2025-08-11","repo":{"name":"github.com/visallo/vertexium","commit":"5d70548168a92f872abe2ea16651b5a6025ab6ac"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":3,"reason":"Found 8/22 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: elasticsearch5/docker/Dockerfile:1: pin your Docker image by updating elasticsearch:5.6.10 to elasticsearch:5.6.10@sha256:88df4589f41dc41184e25df321a4ebb69b84e4aad73e9d352770f902ac70c17c","Warn: containerImage not pinned by hash: elasticsearch7/docker/Dockerfile:1: pin your Docker image by updating elasticsearch:7.5.0 to elasticsearch:7.5.0@sha256:2a52cbde2ac9e2c2f0b430fe9e87f5041f1f6a02485cb3c76c1874473a0d4055","Info:   0 out of   2 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":6,"reason":"4 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-5mg8-w23w-74h3","Warn: Project is vulnerable to: GHSA-7g45-4rm6-3mm3","Warn: Project is vulnerable to: GHSA-mvr2-9pj6-7w5j","Warn: Project is vulnerable to: GHSA-j288-q9x7-2f5v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T20:20:16.164Z","repository_id":28274762,"created_at":"2025-08-24T20:20:16.164Z","updated_at":"2025-08-24T20:20:16.164Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31587782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accumulo","elasticsearch","graph-database","java"],"created_at":"2024-09-24T14:02:56.044Z","updated_at":"2026-04-09T05:31:55.438Z","avatar_url":"https://github.com/visallo.png","language":"Java","funding_links":[],"categories":["数据库"],"sub_categories":["Spring Cloud框架"],"readme":"Vertexium [![Build Status](https://travis-ci.org/visallo/vertexium.svg?branch=master)](https://travis-ci.org/visallo/vertexium)\n=========\n\nVertexium is an API to manipulate graphs. Every Vertexium method requires authorizations\nand visibilities. Vertexium also supports multivalued properties as well as property\nmetadata.\n\nThe Vertexium API was designed to be generic, allowing for multiple implementations.\n\n* Data storage\n  * [Accumulo](accumulo/README.md)\n\n* Search\n  * [Elasticsearch](elasticsearch5/README.md)\n\nMaven\n=====\n\n```\n\u003cproperties\u003e\n    \u003cvertexium.version\u003e0.7.0\u003c/vertexium.version\u003e\n\u003c/properties\u003e\n```\n\n```\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.vertexium\u003c/groupId\u003e\n        \u003cartifactId\u003evertexium-core\u003c/artifactId\u003e\n        \u003cversion\u003e${vertexium.version}\u003c/version\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.vertexium\u003c/groupId\u003e\n        \u003cartifactId\u003evertexium-inmemory\u003c/artifactId\u003e\n        \u003cversion\u003e${vertexium.version}\u003c/version\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.vertexium\u003c/groupId\u003e\n        \u003cartifactId\u003evertexium-elasticsearch5\u003c/artifactId\u003e\n        \u003cversion\u003e${vertexium.version}\u003c/version\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.vertexium\u003c/groupId\u003e\n        \u003cartifactId\u003evertexium-accumulo\u003c/artifactId\u003e\n        \u003cversion\u003e${vertexium.version}\u003c/version\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003elog4j\u003c/groupId\u003e\n        \u003cartifactId\u003elog4j\u003c/artifactId\u003e\n        \u003cversion\u003e1.2.17\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\nAccumulo Implementation\n=======================\n\nThe Accumulo implementation builds on the [cell-level security features](https://accumulo.apache.org/1.5/accumulo_user_manual.html#_security)\nto enforce property, edge, and vertex restrictions. This allows the implementation\nto enforce security at the tablet server, rather than having to bring the data\nback to the application to be sorted out.\n\nRequirements\n------------\n\nYou'll need a running Accumulo and Elastic Search cluster to try out the Accumulo implementation\nof Vertexium. Please see the [Accumulo installation docs](https://accumulo.apache.org/1.5/accumulo_user_manual.html#_installation)\nand [Elastic Search setup](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup.html)\nguide for setting up the respective clusters.\n\nAPI Usage Examples\n------------------\n\n### create and configure an AccumuloGraph instance\n\n```java\nimport java.util.Map;\nimport java.util.HashMap;\n\nimport org.vertexium.Graph;\nimport org.vertexium.accumulo.AccumuloGraph;\nimport org.vertexium.accumulo.AccumuloGraphConfiguration;\n\n// specify Accumulo config, more options than shown are available\nMap mapConfig = new HashMap();\nmapConfig.put(AccumuloGraphConfiguration.USE_SERVER_SIDE_ELEMENT_VISIBILITY_ROW_FILTER, false);\nmapConfig.put(AccumuloGraphConfiguration.ACCUMULO_INSTANCE_NAME, \"instance_name\");\nmapConfig.put(AccumuloGraphConfiguration.ACCUMULO_USERNAME, \"username\");\nmapConfig.put(AccumuloGraphConfiguration.ACCUMULO_PASSWORD, \"password\");\nmapConfig.put(AccumuloGraphConfiguration.ZOOKEEPER_SERVERS, \"localhost\");\n\nAccumuloGraphConfiguration graphConfig = new AccumuloGraphConfiguration(mapConfig);\nGraph graph = AccumuloGraph.create(graphConfig);\n```\n\n### add a vertex\n\n```java\nimport org.vertexium.Authorizations;\nimport org.vertexium.Graph;\nimport org.vertexium.accumulo.AccumuloAuthorizations;\n\n// visibility of vertex to be created\nVisibility visA = new Visibility(\"a\");\n\n// authorizations of user creating the vertex\nAuthorizations authA = new AccumuloAuthorizations(\"a\");\n\nVertex v = graph.addVertex(visA, authA);\n```\n\n### add a vertex with properties\n\n```java\nAuthorizations authA = new AccumuloAuthorizations(\"a\");\nVisibility visA = new Visibility(\"a\");\nVisibility visB = new Visibility(\"b\");\n\nVertex v = graph.prepareVertex(\"v1\", visA)\n                .setProperty(\"prop1\", \"value1\", visA)\n                .setProperty(\"prop2\", \"value2\", visB)\n                .save(authA);\n```\n\n### add an edge\n\n```java\nAuthorizations authA = new AccumuloAuthorizations(\"a\");\nVisibility visA = new Visibility(\"a\");\n\nVertex v1 = graph.addVertex(visA, authA);\nVertex v2 = graph.addVertex(visA, authA);\nEdge e = graph.addEdge(v1, v2, \"label1\", visA, authA);\n```\n\n### get all vertex edges\n\n```java\nimport org.vertexium.Direction;\nimport org.vertexium.Edge;\n\nAuthorizations authA = new AccumuloAuthorizations(\"a\");\nVertex v1 = graph.getVertex(\"v1\", authA);\nIterable\u003cEdge\u003e edges = v1.getEdges(Direction.BOTH, authA);\n```\n\n### full-text vertex search\n\n```java\nAuthorizations authA = new AccumuloAuthorizations(\"a\");\nIterable\u003cVertex\u003e vertices = graph.query(\"vertex\", authA).vertices();\n```\n\nConfiguration\n-------------\n\nThe Accumulo implementation has quite a few configuration properties, all with\ndefaults. Please see the `public static final String` fields in\n[org.vertexium.accumulo.AccumuloGraphConfiguration](vertexium-accumulo/src/main/java/org/neolumin/vertexium/accumulo/AccumuloGraphConfiguration.java?source=c#L29) for a full\nlisting.\n\nIterators\n------------------\nThe Accumulo implementation of Vertexium can make use of server-side iterators\nto improve performance by limiting rows returned by tablet servers to only those\nwhere the end user has the proper authorizations. This requires copying the\n`vertexium-accumulo-iterators-*.jar` file to `$ACCUMULO_HOME/lib/ext` on each\nAccumulo server. Use `mvn package` to build the required JAR file.\n\nStatus\n======\n\nVertexium is an actively developed and maintained project that should be\nconsidered to be in a beta state. You should not expect to find significant\nbugs or missing functionality in the Accumulo implementation, but the API is\nstill changing. Please keep that in mind if you decide to use Vertexium.\n\nContributing\n============\n\nWe welcome and encourage participation and contribution from anyone interested\nin using Vertexium. Please see our [contributing guide](https://github.com/visallo/vertexium/blob/master/CONTRIBUTING.md)\nto better understand how you can pitch in.\n\nLicense\n=======\n\nCopyright 2017 Visallo, LLC\nCopyright 2014 V5 Analytics\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisallo%2Fvertexium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvisallo%2Fvertexium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisallo%2Fvertexium/lists"}