Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initial release of Capa Explorer Web #2224

Merged
merged 79 commits into from
Aug 9, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
6bec5d4
webui: initial release
fariss Jul 22, 2024
c3aa306
add Github Pages deployement workflow
fariss Jul 22, 2024
2862cb3
remove Github Pages workflow from webui branch
fariss Jul 22, 2024
09d8624
add package-lock.json cache
Jul 22, 2024
5c60efa
add Github Pages deployment workflow
fariss Jul 22, 2024
3c27497
Remove demo rdoc json files (static and dynamic)
fariss Jul 22, 2024
626ea51
use existings tests/data/rd rdocs for Preview
fariss Jul 23, 2024
9db01e3
add href links to MBC, and refactor into helpers functions
fariss Jul 23, 2024
277e9d1
remove Toolset dropdown menu
fariss Jul 23, 2024
106c317
link sha256 to VT external link
fariss Jul 23, 2024
6da0e5d
highlight links, use monospace for feature values
fariss Jul 24, 2024
12f1851
deploy-webui.yml: include submodule capa-rules checkout
fariss Jul 24, 2024
3f33b82
changelog: add webui
fariss Jul 24, 2024
0028da5
implement text truncation for process names
fariss Jul 24, 2024
4aad53c
feature: implement parent-child process tree
fariss Jul 24, 2024
d25c86c
reformat function capabilities into a rowspan table instead of tree t…
fariss Jul 26, 2024
e3f695b
bump upload size limit to 100MB
fariss Jul 26, 2024
029259b
make rule names and matches click event expand the node
fariss Jul 28, 2024
d81b123
feature: add right click links context menu
fariss Jul 28, 2024
38cf1f1
feature: show regex captures
fariss Jul 29, 2024
13261d0
include basic block matches in capabilities by function table
fariss Jul 29, 2024
e70e1b0
feature: add call information to api feature in dynamic mode (-vv)
fariss Jul 30, 2024
b6f0ee5
wip: only include process name in api call details
fariss Jul 30, 2024
f60e3fc
lints
fariss Jul 30, 2024
62701a2
use Hash-Based routing (#)
fariss Jul 30, 2024
f6bc425
if node already expanded, toggle it off
fariss Jul 30, 2024
0ea6f1e
fix: do not toggle/on feature and statements
fariss Jul 30, 2024
b7b8792
Force reload the page on Import Analysis
fariss Jul 31, 2024
4fe7f78
edit code comments
fariss Jul 31, 2024
b229048
feature: show namespace chart
fariss Aug 1, 2024
b74738a
feature: show namespace chart
fariss Aug 1, 2024
9107819
fix: force reload page on import analysis
fariss Aug 1, 2024
8e9eadf
feature: support gzipped rdoc
fariss Aug 1, 2024
33be4d1
dynamic: only show first 20 matches per rule
fariss Aug 1, 2024
4137923
dynamic: revert to showing 1 match per rule
fariss Aug 1, 2024
07b4e1f
implement unit test
fariss Aug 1, 2024
b0ffc86
fix lint error
fariss Aug 1, 2024
67d3916
add lint and test steps to deploy workflow
fariss Aug 1, 2024
a6884db
fix: add lint and test steps to deploy workflow
fariss Aug 2, 2024
eb69b38
move url creation function to util/urlHelpers.js
fariss Aug 5, 2024
7cb93c8
update .prettierrc.json, and reformat code
fariss Aug 5, 2024
fcf200f
fix metadata panel on small screens
fariss Aug 5, 2024
d609203
add 404 page
fariss Aug 5, 2024
bb60099
rename window title to 'Capa Explorer'
fariss Aug 5, 2024
6b19e7b
add README.md for Capa Explorer WebUI
fariss Aug 5, 2024
7e64306
move webui to web/explorer
fariss Aug 5, 2024
bb1ef6c
move package-lock.json to web/explorer
Aug 5, 2024
e9e5d2b
delete webui
fariss Aug 5, 2024
ebb778a
delete webui/package-lock.json
Aug 5, 2024
f856ea7
modify deploy-webui.yml workflow to user web/explorer
fariss Aug 5, 2024
283aa27
add DEVELOPMENT.md
fariss Aug 5, 2024
fcdaabf
update development links
fariss Aug 5, 2024
a15eb83
format code
fariss Aug 5, 2024
ac08133
Merge branch 'master' into webui
fariss Aug 5, 2024
b675c9a
change target branch to master in deploy-webui.yml
fariss Aug 5, 2024
765c7cb
add on pull_request trigger to deploy-webui.yml
fariss Aug 5, 2024
ebfba54
fix Metadata panel on smaller screens
fariss Aug 6, 2024
db423d9
add comments to rule column components
fariss Aug 6, 2024
dfc19d8
Update docuemntation
fariss Aug 8, 2024
843fd34
changelog: update entry
fariss Aug 8, 2024
97bd499
add path resolving shortcuts "@"
fariss Aug 8, 2024
6b8983c
simplify function capabilities
fariss Aug 8, 2024
20d7bf1
gitignore: update gitignore
fariss Aug 8, 2024
01e6619
update Import Analysis url
fariss Aug 8, 2024
7cb31cf
refactor: add new URL creation helper functions for VT and capa-rules
fariss Aug 8, 2024
1f6ce48
refactor RuleMatchesTable
fariss Aug 8, 2024
287e428
set web-app version to 1.0.0
fariss Aug 8, 2024
368f635
minor fixes: NamespaceChart and ProcessCapabilities
fariss Aug 8, 2024
bb8991a
fix formatting
fariss Aug 8, 2024
e8ea461
fix formatting
fariss Aug 8, 2024
e8054c2
add deploy and tests workflows
fariss Aug 8, 2024
850ae5a
tests: update unit tests after refactoring parseFunctionCapabilities
fariss Aug 8, 2024
9d137a2
replace path traversal with @ path shortcut
fariss Aug 8, 2024
05575e1
encore rdoc query paramter URL
fariss Aug 8, 2024
1af97f6
update web workflow Format steps to use npm run format:check
fariss Aug 8, 2024
ba9ab7c
Update web/explorer/DEVELOPMENT.md
williballenthin Aug 8, 2024
6b8e2b3
Update web/explorer/README.md
williballenthin Aug 8, 2024
44cbe66
Update web/explorer/README.md
williballenthin Aug 8, 2024
312dd0d
Merge branch 'master' into webui
williballenthin Aug 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .github/workflows/deploy-webui.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Deploy webui to Github Pages

on:
# Runs on pushes targeting the webui branch
push:
branches: ['webui']
fariss marked this conversation as resolved.
Show resolved Hide resolved

# Allows to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow one concurrent deployment
concurrency:
group: 'pages'
cancel-in-progress: true

jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
cache-dependency-path: './webui/package-lock.json'
- name: Install dependencies
run: npm ci
working-directory: ./webui
- name: Build
run: npm run build
working-directory: ./webui
fariss marked this conversation as resolved.
Show resolved Hide resolved
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: './webui/dist'
- name: Deploy to GitHub Pages
fariss marked this conversation as resolved.
Show resolved Hide resolved
id: deployment
uses: actions/deploy-pages@v4
fariss marked this conversation as resolved.
Show resolved Hide resolved
14 changes: 14 additions & 0 deletions webui/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')

module.exports = {
root: true,
'extends': [
'plugin:vue/vue3-essential',
'eslint:recommended',
'@vue/eslint-config-prettier/skip-formatting'
],
parserOptions: {
ecmaVersion: 'latest'
}
}
31 changes: 31 additions & 0 deletions webui/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
.DS_Store
dist
dist-ssr
coverage
*.local

/cypress/videos/
/cypress/screenshots/
fariss marked this conversation as resolved.
Show resolved Hide resolved

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.vscode
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

*.tsbuildinfo
8 changes: 8 additions & 0 deletions webui/.prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"tabWidth": 2,
"singleQuote": true,
"printWidth": 100,
"trailingComma": "none"
fariss marked this conversation as resolved.
Show resolved Hide resolved
}
fariss marked this conversation as resolved.
Show resolved Hide resolved
31 changes: 31 additions & 0 deletions webui/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# capa-webui
fariss marked this conversation as resolved.
Show resolved Hide resolved

## Project Setup

```sh
npm install
```

### Compile and Hot-Reload for Development

```sh
npm run dev
```

### Compile and Minify for Production

```sh
npm run build
```

### Run Unit Tests with [Vitest](https://vitest.dev/)

```sh
npm run test:unit
```

### Lint with [ESLint](https://eslint.org/)

```sh
npm run lint
```
13 changes: 13 additions & 0 deletions webui/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/public/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Capa-WebUI</title>
fariss marked this conversation as resolved.
Show resolved Hide resolved
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
8 changes: 8 additions & 0 deletions webui/jsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"compilerOptions": {
"paths": {
"@/*": ["./src/*"]
}
},
"exclude": ["node_modules", "dist"]
}
Loading
Loading