* Added enum for more granular access control; Expanded functionality of fine grained access checker; Propagated changes to Edit, Deny and Revoke permissions methods in interpreter * Introduced Merge method for merging two colle with permissions * e2e tests implementation started * Expanded cypher to support fine grained permissions * ast.lcp::AuthQuery removed labels, added support for label permissions * promoted label permissions to vector * removed unnecesary enum value * expanded glue/auth with LabelPrivilegeToLabelPermission * added const * extended Grant Deny and Revoke Privileges with new label privileges * extended Edit Grant Deny and Revoke Privileges to properly use new model * Fixed unit tests * FineGrainedAccessChecker Grant and Deny methods reworked * Revoke cypher slightly reworked; Revoke for labels works without label permissions * EditPermission's label_permission lambda now takes two parameters * constants naming enforced; replaced asterisks with string constant * removed faulty test addition * Naming fixes; FineGrainedAccessChecker unit tests introduced * unnecessary includes removed; minor code improvements * minor fix * Access checker reworked; denies and grant merged into single permission object; Created global_permission that applies to all non-created permissions. Grant, Deny and Revoke reworked; Merge method reworked * Fixed wrong check; * Fix after merge; renamed constants; removed unused constant * Fix after merge; workloads.yaml for lbaprocedures e2e tests updated with new grammar * Fixes after merge * Fixes after merge * fixed Revoke that was not fixed after the merge * updated cypher main visitor tests * PR review changes; Naming and const fixed, replaced double tertiary with lambda * unwrapping the iterator fix * merge 1003 minor fix * minor spelling fixes * Introduced visitPrivilegesList because of the doubled code * const added * string const to enum * redundant braces * added const * minor code improvement * e2e tests expanded * if -> switch * enum class inherits uint8_t now * LabelPrililege::EDIT -> LabelPrivilege::UPDATE * LabelPermission -> EntityPermission; LabelPrivilege -> EntityPrivilege * EntityPrivilege -> FineGrainedPrivilege; EntityPermission -> FineGrainedPermission |
||
---|---|---|
.githooks | ||
.github | ||
cmake | ||
config | ||
docs | ||
environment | ||
include | ||
libs | ||
licenses | ||
query_modules | ||
release | ||
src | ||
tests | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.gdbinit | ||
.gitignore | ||
.pre-commit-config.yaml | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Doxyfile | ||
init | ||
LICENSE | ||
README.md |
Build modern, graph-based applications on top of your streaming data in minutes.
📋 Description
Memgraph is a streaming graph application platform that helps you wrangle your streaming data, build sophisticated models that you can query in real-time, and develop graph applications.
Memgraph directly connects to your streaming infrastructure. You can ingest data from sources like Kafka, SQL, or plain CSV files. Memgraph provides a standard interface to query your data with Cypher, a widely-used and declarative query language that is easy to write, understand and optimize for performance. This is achieved by using the property graph data model, which stores data in terms of objects, their attributes, and the relationships that connect them. This is a natural and effective way to model many real-world problems without relying on complex SQL schemas.
Memgraph is implemented in C/C++ and leverages an in-memory first architecture to ensure that you’re getting the best possible performance consistently and without surprises. It’s also ACID-compliant and highly available.
🎮 Memgraph Playground
You don't need to install anything to try out Memgraph. Check out our Memgraph Playground sandboxes in your browser.
💾 Download & Install
Windows
macOS
Linux
You can find the binaries and Docker images on the Download Hub and the installation instructions in the official documentation.
⚡ Features
- Run Python, Rust, and C/C++ code natively, check out the MAGE graph algorithm library
- Native support for machine learning
- Streaming support
- Replication
- Authentication and authorization
- ACID compliance
📑 Documentation
The Memgraph documentation is available at memgraph.com/docs.
❓ Configuration
Command line options that Memgraph accepts are available in the reference guide.
🏆 Contributing
The main purpose of this repository is to continue evolving Memgraph, making it faster and easier to use. Development of Memgraph happens in the open on GitHub, and we are grateful to the community for contributing bug fixes and improvements. Read below to learn how you can take part in improving Memgraph.
Code of Conduct
Memgraph has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.
Contributing Guide
Read our contributing guide to learn about our development process and how to propose bug fixes and improvements.
Internals
Read our internal docs to learn more about Memgraph's architecture, how to build the project from source and how to start contributing. All information related to the database, can be found in the aforementioned docs.
📜 License
Memgraph Community is available under the BSL
license.
Memgraph Enterprise is available under the
MEL license.