foundry-sample-rapid-response
Rapid Response sample Foundry app
https://github.com/crowdstrike/foundry-sample-rapid-response
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.5%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Rapid Response sample Foundry app
Basic Info
Statistics
- Stars: 9
- Watchers: 5
- Forks: 6
- Open Issues: 2
- Releases: 0
Topics
Metadata Files
README.md

Rapid Response sample Foundry app
The Rapid Response sample Foundry app is a community-driven, open source project which serves as an example of an app which can be built using CrowdStrike's Foundry ecosystem.
foundry-sample-rapid-response is an open source project, not a CrowdStrike product. As such, it carries no formal support, expressed or implied.
This app is one of several App Templates included in Foundry that you can use to jumpstart your development. It comes complete with a set of preconfigured capabilities aligned to its business purpose. Deploy this app from the Templates page with a single click in the Foundry UI, or create an app from this template using the CLI.
[!IMPORTANT]
To deploy this sample app, you need access to the Falcon console.
Description
The Rapid Response sample Foundry app provides a way to orchestrate execution of executables and removal of files across Windows-based systems, either by targeting specific hosts or by targeting the host groups.
This app illustrates the following functionality amongst other components: * use of saved searches * use of RTR script orchestration via workflows, including scheduling * use of UI components and extensions * use of file uploads * use of functions
Prerequisites
- The Foundry CLI (instructions below).
- Go v1.23+ (needed if modifying the app's functions). See https://go.dev/learn for installation instructions.
- Yarn (needed if modifying the app's UI). See https://yarnpkg.com/getting-started for installation instructions.
Install the Foundry CLI
You can install the Foundry CLI with Scoop on Windows or Homebrew on Linux/macOS.
Windows:
Install Scoop. Then, add the Foundry CLI bucket and install the Foundry CLI.
shell
scoop bucket add foundry https://github.com/crowdstrike/scoop-foundry-cli.git
scoop install foundry
Or, you can download the latest Windows zip file, expand it, and add the install directory to your PATH environment variable.
Linux and macOS:
Install Homebrew. Then, add the Foundry CLI repository to the list of formulae that Homebrew uses and install the CLI:
shell
brew tap crowdstrike/foundry-cli
brew install crowdstrike/foundry-cli/foundry
Run foundry version to verify it's installed correctly.
Getting Started
Clone this sample to your local system, or download as a zip file.
shell
git clone https://github.com/CrowdStrike/foundry-sample-rapid-response
cd foundry-sample-rapid-response
Log in to Foundry:
shell
foundry login
Select the following permissions:
- [x] Create and run RTR scripts
- [x] Create, execute and test workflow templates
- [x] Create, run and view API integrations
- [x] Create, edit, delete, and list queries
Deploy the app:
shell
foundry apps deploy
[!TIP] If you get an error that the name already exists, change the name to something unique to your CID in
manifest.yml.
Once the deployment has finished, you can release the app:
shell
foundry apps release
Next, go to Foundry > App catalog, find your app, and install it. Select the Open App button in the success dialog.
[!TIP] If the app doesn't load, reload the page.
You should be able to create a job and save it.
About this sample app
Foundry capabilities used
- Collections. Used by the app to store state information, such as metadata about created jobs, execution history, and an audit log.
- Functions. Backend business logic for invoking workflows, normalizing and aggregating data to be returned to the UI, and modifying the state of the collections.
- Queries. Query results of RTR script execution to extract metadata about on which hosts the scripts successfully executed.
- RTR scripts. Executes executables on a target system. Removes files from a targeted system.
- UI navigation. Adds the app to the Falcon navigation for easy access.
- UI pages. Custom UI pages to display results and manage the app.
- Workflow templates. Workflows for orchestrating the execution of the jobs against individual hosts and host groups.
Languages and frameworks used
- Functions
- Go
- CrowdStrike Foundry Function Go SDK (https://github.com/CrowdStrike/foundry-fn-go)
- RTR scripts
- PowerShell
- UI
- HTML, CSS
- TypeScript, React
Directory structure
collections. Schemas used in the collections used by this app.functionsFunc_Jobs: Creates and updates jobs, invokes workflows, and manages the audit log.job_history: Manages the job execution history.
rtr-scriptscheck_file_exist: RTR script which checks if an executable or file is present on a Windows system.remove_file: RTR script which removes a file or executable if the file is present on a Windows system.
saved-searches/Query_By_WorkflowRootExecutionID: Saved search for retrieving events by a workflow execution ID.ui/pages/rapid-response-react: Single Page Application which serves as the frontend of the app.workflows: Workflow template definitions. Fusion workflows are created from the templates in this directory.Install_software_Job_Template.yml: Workflow to upload and invoke an executable via RTR on hosts. Results are written to LogScale.Notify_job_execution_template.yml: Workflow which notifies thejob_historyfunction to report results of theInstall_software_Job_TemplateandRemove_file_template.yml.Remove_file_template.yml: Workflow to remove files from targeted hosts. Results are written to LogScale.
Foundry resources


WE STOP BREACHES
Owner
- Name: CrowdStrike
- Login: CrowdStrike
- Kind: organization
- Email: github@crowdstrike.com
- Location: United States of America
- Website: https://www.crowdstrike.com
- Repositories: 183
- Profile: https://github.com/CrowdStrike
Citation (CITATION.cff)
cff-version: 1.2.0
title: 'CrowdStrike Foundry Sample App - Rapid Response'
message: >-
If you use this software, and wish to cite the origins,
please use metadata from this file.
type: software
authors:
- given-names:
family-names: CrowdStrike
email: oss-questions@crowdstrike.com
repository-code: 'https://github.com/CrowdStrike/foundry-sample-rapid-response'
url: 'https://www.crowdstrike.com'
repository-artifact: 'https://pkg.go.dev/github.com/crowdstrike/foundry-sample-rapid-response'
abstract: >-
The CrowdStrike Foundry Sample App - Rapid Response
is a community-driven, open source project designed
to illustrate creating apps with CrowdStrike Foundry.
keywords:
- crowdstrike
- oauth2
- crowdstrike-foundry
- go
- python
- javascript
- windows
- linux
- mac
license: MIT
GitHub Events
Total
- Issues event: 2
- Watch event: 4
- Delete event: 113
- Issue comment event: 29
- Push event: 173
- Pull request review comment event: 2
- Pull request review event: 118
- Pull request event: 261
- Fork event: 5
- Create event: 102
Last Year
- Issues event: 2
- Watch event: 4
- Delete event: 113
- Issue comment event: 29
- Push event: 173
- Pull request review comment event: 2
- Pull request review event: 118
- Pull request event: 261
- Fork event: 5
- Create event: 102
Committers
Last synced: 10 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| dependabot[bot] | 4****] | 71 |
| Matt Raible | m****e@c****m | 26 |
| Drew Neil | d****l@c****m | 13 |
| johns31459 | 1****9 | 11 |
| Praveen Bathala | p****a@c****m | 8 |
| Johnny Steenbergen | j****n@c****m | 8 |
| danb | d****d@g****m | 4 |
| github-actions[bot] | 4****] | 3 |
| Paul Rosset | p****t@c****m | 1 |
| Ade Adesokan | a****n@c****m | 1 |
| rlucha-crowdstrike | r****a@c****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 7 months ago
All Time
- Total issues: 2
- Total pull requests: 268
- Average time to close issues: 8 days
- Average time to close pull requests: 2 days
- Total issue authors: 2
- Total pull request authors: 12
- Average comments per issue: 0.0
- Average comments per pull request: 0.18
- Merged pull requests: 217
- Bot issues: 1
- Bot pull requests: 211
Past Year
- Issues: 2
- Pull requests: 255
- Average time to close issues: 8 days
- Average time to close pull requests: 1 day
- Issue authors: 2
- Pull request authors: 10
- Average comments per issue: 0.0
- Average comments per pull request: 0.17
- Merged pull requests: 206
- Bot issues: 1
- Bot pull requests: 211
Top Authors
Issue Authors
- mintemat000-shorse (1)
- dependabot[bot] (1)
Pull Request Authors
- dependabot[bot] (192)
- mraible (27)
- github-actions[bot] (19)
- jsteenb2 (15)
- prvn (6)
- rlucha-crowdstrike (2)
- johns31459 (2)
- cs-ade-adesokan (1)
- rhinchey-cs (1)
- dbutterfield77 (1)
- javier-carrasco-crowdstrike (1)
- danbfield (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- github.com/CrowdStrike/foundry-fn-go v0.6.1
- github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
- github.com/blang/semver/v4 v4.0.0
- github.com/crowdstrike/gofalcon v0.5.0-rc1.0.20231018211136-aa9a14d480c8
- github.com/go-logr/logr v1.2.3
- github.com/go-logr/stdr v1.2.2
- github.com/go-openapi/analysis v0.21.4
- github.com/go-openapi/errors v0.20.4
- github.com/go-openapi/jsonpointer v0.19.6
- github.com/go-openapi/jsonreference v0.20.2
- github.com/go-openapi/loads v0.21.2
- github.com/go-openapi/runtime v0.26.0
- github.com/go-openapi/spec v0.20.9
- github.com/go-openapi/strfmt v0.21.7
- github.com/go-openapi/swag v0.22.4
- github.com/go-openapi/validate v0.22.1
- github.com/golang/protobuf v1.5.3
- github.com/josharian/intern v1.0.0
- github.com/mailru/easyjson v0.7.7
- github.com/mitchellh/mapstructure v1.5.0
- github.com/oklog/ulid v1.3.1
- github.com/opentracing/opentracing-go v1.2.0
- github.com/robfig/cron/v3 v3.0.1
- github.com/sirupsen/logrus v1.9.3
- github.com/spaolacci/murmur3 v1.1.0
- go.mongodb.org/mongo-driver v1.11.3
- go.opentelemetry.io/otel v1.14.0
- go.opentelemetry.io/otel/trace v1.14.0
- golang.org/x/net v0.16.0
- golang.org/x/oauth2 v0.13.0
- golang.org/x/sys v0.13.0
- google.golang.org/appengine v1.6.7
- google.golang.org/protobuf v1.31.0
- gopkg.in/yaml.v2 v2.4.0
- gopkg.in/yaml.v3 v3.0.1
- github.com/CrowdStrike/foundry-fn-go v0.6.1
- github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
- github.com/blang/semver/v4 v4.0.0
- github.com/crowdstrike/gofalcon v0.5.0-rc1.0.20231018211136-aa9a14d480c8
- github.com/eapache/go-resiliency v1.4.0
- github.com/go-logr/logr v1.2.4
- github.com/go-logr/stdr v1.2.2
- github.com/go-openapi/analysis v0.21.4
- github.com/go-openapi/errors v0.20.4
- github.com/go-openapi/jsonpointer v0.20.0
- github.com/go-openapi/jsonreference v0.20.2
- github.com/go-openapi/loads v0.21.2
- github.com/go-openapi/runtime v0.26.0
- github.com/go-openapi/spec v0.20.9
- github.com/go-openapi/strfmt v0.21.7
- github.com/go-openapi/swag v0.22.4
- github.com/go-openapi/validate v0.22.1
- github.com/golang/protobuf v1.5.3
- github.com/josharian/intern v1.0.0
- github.com/mailru/easyjson v0.7.7
- github.com/mitchellh/mapstructure v1.5.0
- github.com/oklog/ulid v1.3.1
- github.com/opentracing/opentracing-go v1.2.0
- github.com/robfig/cron/v3 v3.0.1
- github.com/rogpeppe/go-internal v1.11.0
- github.com/sirupsen/logrus v1.9.3
- github.com/spaolacci/murmur3 v1.1.0
- go.mongodb.org/mongo-driver v1.12.1
- go.opentelemetry.io/otel v1.19.0
- go.opentelemetry.io/otel/metric v1.19.0
- go.opentelemetry.io/otel/trace v1.19.0
- golang.org/x/oauth2 v0.13.0
- golang.org/x/sys v0.13.0
- google.golang.org/appengine v1.6.8
- google.golang.org/protobuf v1.31.0
- gopkg.in/yaml.v2 v2.4.0
- gopkg.in/yaml.v3 v3.0.1
- @testing-library/jest-dom ^6.1.3 development
- @testing-library/react ^14.0.0 development
- @types/react ^18.2.14 development
- @types/react-dom ^18.2.6 development
- @typescript-eslint/eslint-plugin ^5.61.0 development
- @typescript-eslint/parser ^5.61.0 development
- @vitejs/plugin-react ^4.0.1 development
- autoprefixer ^10.4.14 development
- eslint ^8.44.0 development
- eslint-plugin-no-relative-import-paths ^1.5.2 development
- eslint-plugin-prettier ^5.0.0 development
- eslint-plugin-react ^7.33.1 development
- eslint-plugin-react-hooks ^4.6.0 development
- eslint-plugin-react-refresh ^0.4.1 development
- jsdom ^22.1.0 development
- postcss ^8.4.26 development
- prettier 3.0.0 development
- rollup-plugin-visualizer ^5.9.2 development
- tailwindcss ^3.3.3 development
- typescript ^5.0.2 development
- vite ^4.4.0 development
- vitest ^0.34.5 development
- @crowdstrike/foundry-js 0.9.0
- @shoelace-style/shoelace 2.5.2
- framer-motion ^10.13.1
- react ^18.2.0
- react-dom ^18.2.0
- react-hook-form ^7.45.2
- react-hot-toast ^2.4.1
- react-router-dom 6.14.1
- react-select ^5.7.4
- temporal-polyfill ^0.1.1
- zod ^3.21.4
- 587 dependencies