{"id":13529695,"url":"https://github.com/graphaware/neo4j-uuid","last_synced_at":"2025-12-30T14:29:03.499Z","repository":{"id":18988143,"uuid":"22209768","full_name":"graphaware/neo4j-uuid","owner":"graphaware","description":"GraphAware Runtime Module that assigns a UUID to all nodes (and relationships) in the graph transparently","archived":true,"fork":false,"pushed_at":"2021-05-05T19:41:26.000Z","size":551,"stargazers_count":102,"open_issues_count":0,"forks_count":22,"subscribers_count":34,"default_branch":"master","last_synced_at":"2024-08-02T07:10:39.226Z","etag":null,"topics":["java","neo4j","neo4j-graphaware-framework"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/graphaware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-24T10:59:34.000Z","updated_at":"2024-06-16T10:07:16.000Z","dependencies_parsed_at":"2022-09-13T08:40:47.489Z","dependency_job_id":null,"html_url":"https://github.com/graphaware/neo4j-uuid","commit_stats":null,"previous_names":[],"tags_count":82,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphaware%2Fneo4j-uuid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphaware%2Fneo4j-uuid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphaware%2Fneo4j-uuid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphaware%2Fneo4j-uuid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/graphaware","download_url":"https://codeload.github.com/graphaware/neo4j-uuid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222748067,"owners_count":17031894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["java","neo4j","neo4j-graphaware-framework"],"created_at":"2024-08-01T07:00:38.608Z","updated_at":"2025-12-17T20:46:24.694Z","avatar_url":"https://github.com/graphaware.png","language":"Java","readme":"GraphAware Neo4j UUID - RETIRED\n=====================\n\n## GraphAware Neo4j UUID Has Been Retired\nAs of May 2021, this [repository has been retired](https://graphaware.com/framework/2021/05/06/from-graphaware-framework-to-graphaware-hume.html).\n\nGraphAware UUID is a simple library that transparently assigns a UUID to newly created nodes and relationships in the graph and makes sure nobody\ncan (accidentally or intentionally) change or delete them.\n\n## Community vs Enterprise\n\nThis open-source (GPLv3) version of the library is compatible with Neo4j Community Edition only. \nIt *will not work* with Neo4j Enterprise Edition, which is a proprietary and commercial software product of Neo4j, Inc.\n\nGraphAware offers a *paid* Enterprise version of the GraphAware Framework to licensed users of Neo4j Enterprise Edition.\nPlease [get in touch](mailto:info@graphaware.com) to receive access.\n\nGetting the Software\n--------------------\n\nYou will need the \u003ca href=\"https://github.com/graphaware/neo4j-framework\" target=\"_blank\"\u003eGraphAware Neo4j Framework\u003c/a\u003e and GraphAware Neo4j UUID .jar files (both of which you can \u003ca href=\"http://graphaware.com/downloads/\" target=\"_blank\"\u003edownload here\u003c/a\u003e) dropped\ninto the `plugins` directory of your Neo4j installation. After adding a few lines of config (read on) and restarting Neo4j, the module will do its magic.\n\n#### Releases\n\nReleases are synced to \u003ca href=\"http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22uuid%22\" target=\"_blank\"\u003eMaven Central repository\u003c/a\u003e. When using Maven for dependency management, include the following dependency in your pom.xml and change version number to match the required version.\n\n```xml\n\u003cdependencies\u003e\n    ...\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.graphaware.neo4j\u003c/groupId\u003e\n        \u003cartifactId\u003euuid\u003c/artifactId\u003e\n        \u003cversion\u003eA.B.C.D.E\u003c/version\u003e\n    \u003c/dependency\u003e\n    ...\n\u003c/dependencies\u003e\n```\n\n#### Snapshots\n\nTo use the latest development version, just clone this repository, run `mvn clean install` and change the version in the\ndependency above to A.B.C.D.E-SNAPSHOT.\n\n#### Note on Versioning Scheme\n\nThe version number has two parts. The first four numbers indicate compatibility with Neo4j GraphAware Framework.\n The last number is the version of the UUID library. For example, version 4.0.8.58.20 is version 20 of the UUID library\n compatible with GraphAware Neo4j Framework 4.0.8.58.\n\nSetup and Configuration\n--------------------\n\nCreate or edit `conf/graphaware.conf` to register the UUID module:\n\n```properties\n#UIDM becomes the module ID:\ncom.graphaware.module.neo4j.UIDM.1=com.graphaware.module.uuid.UuidBootstrapper\n\n#optional, default is uuid:\ncom.graphaware.module.neo4j.UIDM.uuidProperty=uuid\n\n#optional, default is false:\ncom.graphaware.module.neo4j.UIDM.stripHyphens=false\n\n#optional, default is all nodes:\ncom.graphaware.module.neo4j.UIDM.node=hasLabel('Label1') || hasLabel('Label2')\n\n#optional, default is no relationships:\ncom.graphaware.module.neo4j.UIDM.relationship=isType('Type1')\n```\n\nNote that \"UIDM\" becomes the module ID. \n\n`com.graphaware.module.neo4j.UIDM.uuidProperty` is the property name that will be used to store the assigned UUID on nodes and relationships. The default is \"uuid\".\n\n`com.graphaware.module.neo4j.UIDM.stripHyphens` is the property name that controls hyphen existence. If its true created UUID will be free from hyphens. \n\n`com.graphaware.module.neo4j.UIDM.node` specifies either a fully qualified class name of [`NodeInclusionPolicy`](http://graphaware.com/site/framework/latest/apidocs/com/graphaware/common/policy/NodeInclusionPolicy.html) implementation,\nor a Spring Expression Language expression determining, which nodes to assign a UUID to. The default is to assign the\nUUID property to every node which isn't internal to the framework.\n\n`com.graphaware.module.neo4j.UIDM.relationship` specifies either a fully qualified class name of [`RelationshipInclusionPolicy`](http://graphaware.com/site/framework/latest/apidocs/com/graphaware/common/policy/RelationshipInclusionPolicy.html) implementation,\nor a Spring Expression Language expression determining, which relationships to assign a UUID to. The default is **not** to assign the\nUUID property to any relationship. If you want to assign UUID to all relationship, please use `com.graphaware.module.neo4j.UIDM.relationship=com.graphaware.runtime.policy.all.IncludeAllBusinessRelationships`\n\nUsing GraphAware UUID\n---------------------\n\nApart from the configuration described above, **you must create unique constraints** (or at least indices) in the database.\n\nThe module will assign a UUID to nodes and relationships configured, and will prevent modifications to the UUID or deletion of the UUID property from these nodes/relationships by not allowing the transaction to commit.\n\nNote: If you create a node and return it immediately, its contents will not reflect changes performed by transaction event handlers such as this one -- thus the UUID will not be available. A separate call must be made to get the UUID, for example:\n\n```cypher\nCREATE (n:User {name: \"Alice\"}) RETURN id(n)\n---\n// Later, using saved ID from above:\nMATCH (n) WHERE id(n) = 123 RETURN n.uuid\n```\n\n### Specifying the Generator Through Configuration\n\nBy default, the `com.graphaware.common.uuid.EaioUuidGenerator` is used to generate the underlying UUID. Any generator implementation can be used, be it \nout of the box or your own custom code, by modifying the `conf/graphaware.conf`. The following example configures the UUID module to make use of the `JavaUtilUUIDGenerator`:\n\n```properties\ncom.graphaware.module.neo4j.UUID.1=com.graphaware.module.uuid.UuidBootstrapper\ncom.graphaware.module.UUID.neo4j.uuidGeneratorClass=com.graphaware.module.uuid.generator.JavaUtilUUIDGenerator\n```\n\nPlease see the `com.graphaware.common.uuid.UuidGenerator` interface and the `com.graphaware.module.uuid.generator` package for more information \nand examples of how to implement your own generator. \n\n### Immutability\n\nThis module ensures that all assigned UUIDs on nodes and relationships are immutable, meaning they cannot be deleted nor changed.\nIn some scenarios, developers might want to disable the immutability with the following configuration setting :\n\n```properties\ncom.graphaware.module.neo4j.UUID.immutable=false\n```\n\nWe only allow this setting for development purposes or developers having an specific need and we **fully discourage** the use of this setting.\n\nLicense\n-------\n\nCopyright (c) 2020 GraphAware\n\nGraphAware is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License\nas published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied\nwarranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\nYou should have received a copy of the GNU General Public License along with this program.\nIf not, see \u003chttp://www.gnu.org/licenses/\u003e.\n","funding_links":[],"categories":["Extensions","Java","REST API"],"sub_categories":["REST API","Other"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraphaware%2Fneo4j-uuid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgraphaware%2Fneo4j-uuid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraphaware%2Fneo4j-uuid/lists"}