{"id":13799945,"url":"https://github.com/rpetrich/deciduous","last_synced_at":"2025-06-29T08:36:21.937Z","repository":{"id":44706938,"uuid":"381168058","full_name":"rpetrich/deciduous","owner":"rpetrich","description":"App that simplifies building decision trees to model adverse scenarios","archived":false,"fork":false,"pushed_at":"2024-07-11T09:33:36.000Z","size":1078,"stargazers_count":198,"open_issues_count":5,"forks_count":19,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-02-12T18:06:58.569Z","etag":null,"topics":["chaos-engineering","resilience","security"],"latest_commit_sha":null,"homepage":"https://deciduous.app","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rpetrich.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-28T21:43:13.000Z","updated_at":"2025-02-10T20:52:41.000Z","dependencies_parsed_at":"2023-12-26T22:27:54.320Z","dependency_job_id":"9ed9f296-4d73-4db6-82ed-228dbb49f646","html_url":"https://github.com/rpetrich/deciduous","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpetrich%2Fdeciduous","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpetrich%2Fdeciduous/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpetrich%2Fdeciduous/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpetrich%2Fdeciduous/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rpetrich","download_url":"https://codeload.github.com/rpetrich/deciduous/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247479440,"owners_count":20945460,"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":["chaos-engineering","resilience","security"],"created_at":"2024-08-04T00:01:07.503Z","updated_at":"2025-04-06T12:22:06.762Z","avatar_url":"https://github.com/rpetrich.png","language":"HTML","funding_links":[],"categories":["Tools","HTML"],"sub_categories":["Free tools"],"readme":"# Deciduous\nA web app that simplifies building decision trees to model adverse scenarios. Hosted at https://www.deciduous.app/\n\nIt allows you to document your assumptions about how a system, service, app, etc. will respond to adverse events. Its heritage is in helping defenders anticipate attacker behavior and prepare mitigations accordingly, but it also applies to anticipating reliability-related failures, too.\n\nIt is especially useful as a foundation to conduct resilience stress testing / chaos experimentation, allowing you to continually refine your mental models of a system with reality. The end goal of using decision trees is to document your beliefs about how failure will unfold across your system in a given scenario, which can inform design improvements to better sustain resilience to that failure.\n\nGetting started guide: https://kellyshortridge.com/blog/posts/deciduous-attack-tree-app/\n\nTheme options include:\n- `theme: default` - the default tree styling\n- `theme: accessible` - for more color differentiation between attack and mitigation nodes\n- `theme: classic` - classic Graphviz styling\n- `theme: dark` - dark mode\n\nFor a more detailed write-up of using decision trees in practice, refer to the book [_Security Chaos Engineering: Sustaining Resilience in Software and Systems._](https://www.securitychaoseng.com/)\n\n## Examples\nExample trees for #inspo are hosted in [/examples](./examples).\n\n#### Security\n* [S3 Bucket with Video Recordings](./examples/s3-bucket-video-recordings.yaml)\n* [Cryptominer in a Container](./examples/cryptominer-in-container.yaml) ([video explanation](https://youtu.be/oJ3iSyhWb5U?t=460))\n\n#### Reliability\n* [Missing Logs](./examples/missing-logs.yaml) ([video explanation](https://www.youtube.com/watch?v=DGdtfB1eY98))\n* [Unrealistic Traces](./examples/unrealistic-traces.yaml)\n\n#### Surrealism\n* [Thanksploitation](./examples/thanksploitation.yml) scenario from Rick and Morty ([blog post](https://kellyshortridge.com/blog/posts/rick-morty-thanksploitation-decision-tree/))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frpetrich%2Fdeciduous","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frpetrich%2Fdeciduous","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frpetrich%2Fdeciduous/lists"}