{"id":15116708,"url":"https://github.com/klarna-incubator/gram","last_synced_at":"2025-08-20T08:33:12.948Z","repository":{"id":198704624,"uuid":"563310348","full_name":"klarna-incubator/gram","owner":"klarna-incubator","description":"Gram is Klarna's own threat model diagramming tool","archived":false,"fork":false,"pushed_at":"2024-04-12T08:29:25.000Z","size":11106,"stargazers_count":170,"open_issues_count":33,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-12T15:31:51.863Z","etag":null,"topics":["appsec","cybersecurity","infosec","threat-modeling"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/klarna-incubator.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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}},"created_at":"2022-11-08T10:53:39.000Z","updated_at":"2024-04-15T10:30:55.257Z","dependencies_parsed_at":"2023-10-20T17:35:13.997Z","dependency_job_id":"fd74f65a-8368-47ea-9f1b-b942db1fdbcc","html_url":"https://github.com/klarna-incubator/gram","commit_stats":null,"previous_names":["klarna-incubator/gram"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klarna-incubator%2Fgram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klarna-incubator%2Fgram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klarna-incubator%2Fgram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klarna-incubator%2Fgram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/klarna-incubator","download_url":"https://codeload.github.com/klarna-incubator/gram/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230408171,"owners_count":18220974,"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":["appsec","cybersecurity","infosec","threat-modeling"],"created_at":"2024-09-26T01:44:32.075Z","updated_at":"2025-08-20T08:33:12.941Z","avatar_url":"https://github.com/klarna-incubator.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Gram\n\n[![Build Status][ci-image]][ci-url]\n[![License][license-image]][license-url]\n[![Discord][discord-image]][discord-url]\n[![Developed at Klarna][klarna-image]][klarna-url]\n\nGram is Klarna's own [threat model][owasp-tm] diagramming tool developed internally by Klarna's Secure Development team. It is a web app for engineers to collaboratively create threat models for their systems, providing a easy-to-understand way to document a system as a dataflow diagram with threats/controls attached.\n\n![Screenshot](screenshot.png)\n\n## Features ✨\n* Fully featured diagramming tool specialized for threat modeling.\n\n* Collaborative editing with multiple users over websocket\n\n* Tightly couples to your system/asset inventory\n\n* Automatic suggestions for threats and controls based on your tech stacks\n\n* Review system for use by your Security Champions and to ensure quality models\n\n* Integration for boring corporate stuff like Jira and SSO (Okta)\n\n## Getting Started 🚀\n\nSee [Quick Start](QuickStart.md).\n\n## How to contribute 🙋\n\nSee our guide on [contributing](CONTRIBUTING.md).\n\n## Release History 📜\n\nSee our [changelog](CHANGELOG.md).\n\n\u003c!-- ## Thanks to --\u003e\n\u003c!-- TODO: need to grab these from old repo somehow + ideally automate --\u003e\n\n## Contributors 🌟\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://ruel.me/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/480039?v=4?s=100\" width=\"100px;\" alt=\"Ruel\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRuel\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=ruel\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#projectManagement-ruel\" title=\"Project Management\"\u003e📆\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://joakim.uddholm.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/298627?v=4?s=100\" width=\"100px;\" alt=\"Joakim Uddholm\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJoakim Uddholm\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=Tethik\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#projectManagement-Tethik\" title=\"Project Management\"\u003e📆\u003c/a\u003e \u003ca href=\"#talk-Tethik\" title=\"Talks\"\u003e📢\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/idoo\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/738921?v=4?s=100\" width=\"100px;\" alt=\"Ivan Verevkin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eIvan Verevkin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=idoo\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://ar.linkedin.com/in/lucas-berner-89865339\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7293607?v=4?s=100\" width=\"100px;\" alt=\"Luke Berner\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLuke Berner\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=lukeber4\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#projectManagement-lukeber4\" title=\"Project Management\"\u003e📆\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://franka.tech/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2796920?v=4?s=100\" width=\"100px;\" alt=\"Franka\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFranka\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=vsmart\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ErikBavenstrand\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/19384305?v=4?s=100\" width=\"100px;\" alt=\"Erik Båvenstrand\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eErik Båvenstrand\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=ErikBavenstrand\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/kuramsai\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6891487?v=4?s=100\" width=\"100px;\" alt=\"Sai Kiran Goud\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSai Kiran Goud\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=kuramsai\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Tyouxik\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/65331057?v=4?s=100\" width=\"100px;\" alt=\"Tyouxik\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTyouxik\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=Tyouxik\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://klarna.github.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/394540?v=4?s=100\" width=\"100px;\" alt=\"Klarna\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKlarna\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#financial-klarna\" title=\"Financial\"\u003e💵\u003c/a\u003e \u003ca href=\"#business-klarna\" title=\"Business development\"\u003e💼\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://it.linkedin.com/in/gdiener\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8479033?v=4?s=100\" width=\"100px;\" alt=\"Gabriele\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGabriele\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#plugin-gadiener\" title=\"Plugin/utility libraries\"\u003e🔌\u003c/a\u003e \u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=gadiener\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/MissMuffin\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2961854?v=4?s=100\" width=\"100px;\" alt=\"MissMuffin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMissMuffin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design-MissMuffin\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Ogglas\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4015237?v=4?s=100\" width=\"100px;\" alt=\"Oscar Andersson\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eOscar Andersson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=Ogglas\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://pulko-app.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/38206129?v=4?s=100\" width=\"100px;\" alt=\"Fedor Tkachenko\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFedor Tkachenko\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=Pulko\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=Pulko\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/lodi-g\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4528943?v=4?s=100\" width=\"100px;\" alt=\"Grégoire Lodi\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGrégoire Lodi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/klarna-incubator/gram/commits?author=lodi-g\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n## License ⚖️\n\nCopyright © 2025 Klarna Bank AB\n\nFor license details, see the [LICENSE](LICENSE) file in the root of this project.\n\n\u003c!-- Markdown link \u0026 img dfn's --\u003e\n\n[ci-image]: https://github.com/klarna-incubator/gram/actions/workflows/ci.yml/badge.svg?branch=main\n[ci-url]: https://github.com/klarna-incubator/gram/actions?query=branch%3Amain\n[license-image]: https://img.shields.io/badge/license-Apache%202-blue?style=flat-square\n[license-url]: http://www.apache.org/licenses/LICENSE-2.0\n[discord-image]: https://badgen.net/badge/icon/discord?icon=discord\u0026label\n[discord-url]: https://discord.gg/8TFdB8rUfG\n[klarna-image]: https://img.shields.io/badge/%20-Developed%20at%20Klarna-black?style=flat-square\u0026labelColor=ffb3c7\u0026logo=klarna\u0026logoColor=black\n[klarna-url]: https://klarna.github.io\n[owasp-tm]: https://owasp.org/www-community/Threat_Modeling\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklarna-incubator%2Fgram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fklarna-incubator%2Fgram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklarna-incubator%2Fgram/lists"}