{"id":13590814,"url":"https://github.com/guacsec/guac","last_synced_at":"2025-05-14T11:12:57.480Z","repository":{"id":51822986,"uuid":"502127166","full_name":"guacsec/guac","owner":"guacsec","description":"GUAC aggregates software security metadata into a high fidelity graph database.","archived":false,"fork":false,"pushed_at":"2025-03-31T23:43:49.000Z","size":16117,"stargazers_count":1345,"open_issues_count":138,"forks_count":186,"subscribers_count":42,"default_branch":"main","last_synced_at":"2025-04-03T22:49:32.988Z","etag":null,"topics":["attestations","cyclonedx","cyclonedx-sbom","graph","in-toto","sbom","security","slsa","software-supply-chain","software-supply-chain-security","spdx","spdx-sbom","supply-chain","supply-chain-analytics","supply-chain-security","supply-chain-visibility","vex","vulnerability","vulnerability-management"],"latest_commit_sha":null,"homepage":"https://guac.sh","language":"Go","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/guacsec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY-INSIGHTS.yml","support":null,"governance":"GOVERNANCE.md","roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-10T17:28:07.000Z","updated_at":"2025-04-03T13:47:08.000Z","dependencies_parsed_at":"2023-10-03T01:08:17.674Z","dependency_job_id":"a2f9be55-cc9e-401c-adca-d90bfc92ca91","html_url":"https://github.com/guacsec/guac","commit_stats":{"total_commits":1398,"total_committers":64,"mean_commits":21.84375,"dds":0.6716738197424893,"last_synced_commit":"e3e0f931468dcbd3ffde03f024b9e4e8c7da2c06"},"previous_names":["artifact-ff/artifact-ff"],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guacsec%2Fguac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guacsec%2Fguac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guacsec%2Fguac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guacsec%2Fguac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guacsec","download_url":"https://codeload.github.com/guacsec/guac/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248340922,"owners_count":21087539,"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":["attestations","cyclonedx","cyclonedx-sbom","graph","in-toto","sbom","security","slsa","software-supply-chain","software-supply-chain-security","spdx","spdx-sbom","supply-chain","supply-chain-analytics","supply-chain-security","supply-chain-visibility","vex","vulnerability","vulnerability-management"],"created_at":"2024-08-01T16:00:50.777Z","updated_at":"2025-04-11T04:23:54.989Z","avatar_url":"https://github.com/guacsec.png","language":"Go","funding_links":[],"categories":["Go","Dependency intelligence","Security and Supply Chain"],"sub_categories":["Streaming Operations"],"readme":"# GUAC: Graph for Understanding Artifact Composition\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/3060102/204297133-9bf702c6-b4e2-46df-a029-42b5060b19a4.png\"\u003e\n\u003c/p\u003e\n\n[![build](https://github.com/guacsec/guac/workflows/release/badge.svg)](https://github.com/guacsec/guac/actions?query=workflow%3Arelease) [![PkgGoDev](https://pkg.go.dev/badge/github.com/guacsec/guac)](https://pkg.go.dev/github.com/guacsec/guac) [![Go Report Card](https://goreportcard.com/badge/github.com/guacsec/guac)](https://goreportcard.com/report/github.com/guacsec/guac)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/guacsec/guac/badge)](https://api.securityscorecards.dev/projects/github.com/guacsec/guac)\n\n**Note:** GUAC is under active development - if you are interested in\ncontributing, please look at [contributor guide](CONTRIBUTING.md). GUAC is an\n[OpenSSF](https://openssf.org) incubating project under the\n[Supply Chain Integrity WG](https://github.com/ossf/wg-supply-chain-integrity).\n\n[Graph for Understanding Artifact Composition (GUAC)](https://guac.sh/)\naggregates software security metadata into a high fidelity graph\ndatabase—normalizing entity identities and mapping standard relationships\nbetween them. Querying this graph can drive higher-level organizational outcomes\nsuch as audit, policy, risk management, and even developer assistance.\n\nConceptually, GUAC occupies the “aggregation and synthesis” layer of the\nsoftware supply chain transparency logical model:\n\n![image](https://user-images.githubusercontent.com/3060102/196563695-a1cdc8bd-9946-482f-873a-937bf75891dc.png)\n\nA few examples of questions answered by GUAC include:\n\n![image](https://user-images.githubusercontent.com/3060102/182689788-70acefc1-6d69-4972-abbf-3e60c0d4c014.png)\n\n## Quickstart\n\nOur [documentation](https://docs.guac.sh/) is a good place to get started.\n\nWe have various [demos use cases](https://docs.guac.sh/guac-use-cases/) that you\ncan take a look.\n\nStarting the GUAC services with our\n[docker compose quickstart](https://docs.guac.sh/setup/).\n\n## Docs\n\nAll documentation for GUAC lives on [docs.guac.sh](https://docs.guac.sh), backed\nby the following [docs github repository](https://github.com/guacsec/guac-docs).\n\n## Architecture\n\nHere is an overview of the architecture of GUAC:\n\n![guac_api](https://github.com/guacsec/guac/assets/42319948/db573e4e-f493-4df5-b1bb-fec6307643dd)\n\nFor an in-depth view and explanation of components of the GUAC Beta, please\nrefer to [how GUAC works](https://docs.guac.sh/how-guac-works/).\n\n## Supported input documents\n\n- [CycloneDX](https://github.com/CycloneDX/specification)\n- [Dead Simple Signing Envelope](https://github.com/secure-systems-lab/dsse)\n- [Deps.dev API](https://deps.dev/)\n- [In-toto ITE6](https://github.com/in-toto/attestation)\n- [OpenSSF Scorecard](https://github.com/ossf/scorecard)\n- [OSV](https://osv.dev/)\n- [SLSA](https://github.com/slsa-framework/slsa)\n- [SPDX](https://spdx.dev/specifications/)\n- [CSAF/CSAF VEX](https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html)\n- [OpenVEX](https://github.com/openvex)\n\nNote that GUAC uses software identifiers standards to help link metadata\ntogether. However, these identifiers are not always available and heuristics\nneed to be used to link them. Therefore, there may be unhandled edge cases and\nerrors occurring when ingesting data. We appreciate it if you could create a\n[data quality issue](https://github.com/guacsec/guac/issues/new?assignees=\u0026labels=bug%2C+data-sources%2C+data-quality\u0026projects=\u0026template=bug_report_ingestion.md\u0026title=%5Bingestion%2Fdata-quality+issue%5D+FILL+THIS+IN)\nif you encounter any errors or bugs with ingestion.\n\n## GraphQL backends\n\nGUAC supports multiple [backends](pkg/assembler/backends) behind a software\nabstraction layer. The GraphQL API is always the same and clients should be\nunaffected by which backend is in use. The backends are categorized into:\n\n1. Supported/Unsupported: Supported backends are those which the GUAC project\n   is committed to actively maintain. Unsupported backends are not actively\n   maintained but will accept community contributions.\n\n2. Complete/Incomplete: Complete backends support all mandatory GraphQL\n   APIs. Incomplete backends support a subset of those APIs and may not be\n   feature complete.\n\n3. Optimized: The backend has gone through a level of optimization to help\n   improve performance.\n\nThe two backend that are Supported, Complete, and Optimized are:\n\n- [keyvalue (supported, complete,\n  optimized)](https://github.com/guacsec/guac/tree/main/pkg/assembler/backends/keyvalue):\n  a non-persistent in-memory backend that doesn't require any additional\n  infrastructure. Also acts as a conformance backend for API\n  implementations. We recommend starting with this if you're just starting with\n  GUAC!\n\n- [ent (supported, complete\n  optimized)](https://github.com/guacsec/guac/tree/main/pkg/assembler/backends/ent)\n  with [PostgreSQL](https://www.postgresql.org/): a persistent backend based on\n  [Entity Framework for Go](https://entgo.io/) that can run on various SQL\n  backends. GUAC only supports ent with PostgreSQL. Other ent backends such as\n  [MySQL](https://www.mysql.com/) and\n  [SQLite](https://www.sqlite.org/index.html) are unsupported.\n\nThe other backends are:\n\n- [arangoDB (unsupported, incomplete,\n  optimized)](https://github.com/guacsec/guac/tree/main/pkg/assembler/backends/arangodb):\n  a persistent backend based on [ArangoDB](https://arangodb.com/)\n\n- [neo4j/openCypher (unsupported,\n  incomplete)](https://github.com/guacsec/guac/tree/main/pkg/assembler/backends/neo4j):\n  a persistent backend based on [neo4j](https://neo4j.com/) and\n  [openCypher](https://opencypher.org/). This backend should work with any\n  database that supported openCypher queries.\n\n- [keyvalue: Redis (experimental, complete)](/pkg/assembler/kv/redis): The\n  default keyvalue backend, but using Redis as storage.\n\n- [keyvalue: TiKV (experimental, complete)](/pkg/assembler/kv/tikv): The\n  default keyvalue backend, but using [TiKV](https://tikv.org/) as storage.\n\n## Additional References\n\n- [GUAC use cases](use-cases.md)\n- [GUAC presentation at OSS NA 2023](https://sched.co/1K5Hn)\n- [GUAC 2023 Q1 Maintainer Summit Notes](https://docs.google.com/document/d/15Kb3I3SWhq-9_R7WYhSjsIxn_FykYgPyFlQWlLgF4fA/edit)\n- [GUAC presentation at KubeCon NA 2022](https://www.youtube.com/watch?v=xFRNgIEzbkA)\n- [GUAC Intro Slides](https://docs.google.com/presentation/d/1WF4dsJiwR6URWPgn1aiHAE3iLVl-oGP4SJRWFpcOlao/edit#slide=id.p)\n- [GUAC Design Doc](https://docs.google.com/document/d/1N5x0HErb-kmCPgG9M8TwBEOGIVU54clqp_X4KhtNJI8/edit)\n\n## Communication\n\nFor more information on how to get involved in the community, mailing lists and\nmeetings, please refer to our [community page](https://guac.sh/community/)\n\nFor security issues or code of conduct concerns, an e-mail should be sent to\nGUAC-Maintainers@lists.openssf.org.\n\n## Governance\n\nInformation about governance can be found [here](GOVERNANCE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguacsec%2Fguac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguacsec%2Fguac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguacsec%2Fguac/lists"}