{"id":29420294,"url":"https://github.com/nextronsystems/finding-store","last_synced_at":"2025-08-22T06:38:52.227Z","repository":{"id":302246781,"uuid":"991242357","full_name":"NextronSystems/finding-store","owner":"NextronSystems","description":"THOR Finding Filesystem Layout","archived":false,"fork":false,"pushed_at":"2025-05-28T14:45:51.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-12T01:41:25.828Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NextronSystems.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-27T10:37:40.000Z","updated_at":"2025-06-03T10:20:09.000Z","dependencies_parsed_at":"2025-07-01T10:44:02.327Z","dependency_job_id":"9b8af0d9-e64d-4af1-a313-de4b5aa9e0cd","html_url":"https://github.com/NextronSystems/finding-store","commit_stats":null,"previous_names":["nextronsystems/finding-store"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NextronSystems/finding-store","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NextronSystems%2Ffinding-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NextronSystems%2Ffinding-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NextronSystems%2Ffinding-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NextronSystems%2Ffinding-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NextronSystems","download_url":"https://codeload.github.com/NextronSystems/finding-store/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NextronSystems%2Ffinding-store/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270005591,"owners_count":24510939,"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","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"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":[],"created_at":"2025-07-12T01:40:11.118Z","updated_at":"2025-08-12T05:09:09.339Z","avatar_url":"https://github.com/NextronSystems.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# THOR Finding Store\n\nThis package provides a simple on-disk store for findings generated by THOR scans.\n\nBoth findings and the content that was matched on (typically the file content) are stored, with both referencing each other.\nA finding will have none or one content item, while a content item may be referenced by multiple findings.\n\n## Layout\n\nThe store is a directory with the following structure:\n\n```\n├── findings\n│   └── ab\n│       ├── abcdef1234567890\n│       └── abcdef1234567890.hash\n└── samples\n    └── 1e\n        ├── 1edc8bf0596dcdc0ca93b6dd89e14b57d0b4faf5da534d5487f9ed7ad0eb7e06\n        └── 1edc8bf0596dcdc0ca93b6dd89e14b57d0b4faf5da534d5487f9ed7ad0eb7e06.metadata\n```\n\nWhere:\n\n- `findings/` contains the findings, organized by their first two characters of the finding ID.\n\n  Each finding is stored in a file named after the finding ID, with an additional `.hash` file containing the SHA256 hash of the finding.\n- `samples/` contains the content matched on, organized by the first two characters of the content's SHA256 hash.\n  \n  Each content item is stored in a file named after its SHA256 hash, with an additional `.metadata` file containing the findings that reference this content item in newline delimited JSON format.\n\nOptionally, by setting `Layout.Flat` to `true`, the store can be configured to not create subdirectories under `findings/` and `samples/`, but instead store all findings and samples in a single directory each.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnextronsystems%2Ffinding-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnextronsystems%2Ffinding-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnextronsystems%2Ffinding-store/lists"}