{"id":26093068,"url":"https://github.com/flow-storm/flow-storm-web-plugin","last_synced_at":"2025-08-29T13:37:11.494Z","repository":{"id":278771534,"uuid":"936727442","full_name":"flow-storm/flow-storm-web-plugin","owner":"flow-storm","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-05T14:06:59.000Z","size":314,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-21T15:57:55.319Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","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/flow-storm.png","metadata":{"files":{"readme":"Readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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-02-21T15:26:53.000Z","updated_at":"2025-05-05T14:07:02.000Z","dependencies_parsed_at":"2025-05-05T15:23:19.625Z","dependency_job_id":"423f6054-710d-4f7a-b1a6-11c0a6b3735a","html_url":"https://github.com/flow-storm/flow-storm-web-plugin","commit_stats":null,"previous_names":["flow-storm/flow-storm-web-plugin"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/flow-storm/flow-storm-web-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flow-storm%2Fflow-storm-web-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flow-storm%2Fflow-storm-web-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flow-storm%2Fflow-storm-web-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flow-storm%2Fflow-storm-web-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flow-storm","download_url":"https://codeload.github.com/flow-storm/flow-storm-web-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flow-storm%2Fflow-storm-web-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272693263,"owners_count":24977508,"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-29T02:00:10.610Z","response_time":87,"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-03-09T11:22:15.251Z","updated_at":"2025-08-29T13:37:11.468Z","avatar_url":"https://github.com/flow-storm.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FlowStorm web plugin\n\n![demo](./images/plugin_demo.png)\n\n**Requires FlowStorm \u003e= 4.3.0**\n\nIt currently supports and is tested with :\n\nWeb servers : \n\n- httpkit (2.8.0)\n- ring-jetty-adapter (1.13.0)\n\nDabatabses libs :\n\n- next.jdbc (1.3.994)\n    \n# Setup\n\n[![Clojars Project](https://img.shields.io/clojars/v/com.github.flow-storm/flow-storm-web-plugin.svg)](https://clojars.org/com.github.flow-storm/flow-storm-web-plugin) \n\nIn your deps.edn (same can be done with lein profiles) create an alias like :\n\n```clojure\n{...\n :aliases\n {...\n  :fs-web-plugin {:extra-deps {com.github.flow-storm/flow-storm-web-plugin {:mvn/version \"1.0.2\"}}\n                  :jvm-opts [\"-Dclojure.storm.instrumentOnlyPrefixes.webPlugin=org.httpkit.server,ring.adapter.jetty,next.jdbc.result-set\"\n                             \"-Dflowstorm.plugins.namespaces.webPlugin=flow-storm.plugins.web.all\"]}\n}}}\n```\n\nThen, in your projects, just make sure you start your repl with the `:fs-web-plugin` alias.\n\nWhen you open the FlowStorm UI you should see a new `Web` tab like in the picture above.\n\nMinimum instrumentation prefixes needed for each library :\n\n- httpkit (`org.httpkit.server`)\n- ring-jetty-adapter (`ring.adapter.jetty`)\n- next.jdbc (`next.jdbc.result-set`)\n\n# Usage\n\nRecord your activity as usual, then head to the Web tab, select the flow you recorded in and click refresh.\n\nYou should see one table per thread, and each table should contain the flow of the requests handled by that thread,\nwith the request, followed by your functions code and any sql statements down to the response.\n\nDouble clicking on any row should take you to that point in time in the code stepper.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflow-storm%2Fflow-storm-web-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflow-storm%2Fflow-storm-web-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflow-storm%2Fflow-storm-web-plugin/lists"}