Skip to content

Commit 5241ad4

Browse files
committed
Add documentation site using mdBook with GitHub Pages deployment
- User manual covering OpenAPI scan, SOAP scan, API discovery, and JSON to YAML converter - 28 annotated screenshots from the product - GitHub Actions workflow for automated mdBook build and deploy - Documentation link added to README
1 parent 888b18b commit 5241ad4

39 files changed

Lines changed: 369 additions & 0 deletions

.github/workflows/docs.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Deploy docs
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- 'docs/**'
8+
- '.github/workflows/docs.yml'
9+
workflow_dispatch:
10+
11+
permissions:
12+
contents: read
13+
pages: write
14+
id-token: write
15+
16+
concurrency:
17+
group: pages
18+
cancel-in-progress: false
19+
20+
env:
21+
MDBOOK_VERSION: 0.5.2
22+
23+
jobs:
24+
build:
25+
runs-on: ubuntu-latest
26+
steps:
27+
- uses: actions/checkout@v4
28+
29+
- name: Install mdBook
30+
run: |
31+
mkdir -p $HOME/.local/bin
32+
curl -sSL "https://github.com/rust-lang/mdBook/releases/download/v${MDBOOK_VERSION}/mdbook-v${MDBOOK_VERSION}-x86_64-unknown-linux-gnu.tar.gz" | tar -xz -C $HOME/.local/bin
33+
echo "$HOME/.local/bin" >> $GITHUB_PATH
34+
35+
- name: Setup Pages
36+
uses: actions/configure-pages@v5
37+
38+
- name: Build documentation
39+
run: mdbook build docs
40+
41+
- name: Upload artifact
42+
uses: actions/upload-pages-artifact@v4
43+
with:
44+
path: ./docs/book
45+
46+
deploy:
47+
needs: build
48+
runs-on: ubuntu-latest
49+
environment:
50+
name: github-pages
51+
url: ${{ steps.deployment.outputs.page_url }}
52+
steps:
53+
- name: Deploy to GitHub Pages
54+
id: deployment
55+
uses: actions/deploy-pages@v4

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,10 @@ docker compose ps
134134

135135
**Database connection errors:** Wait 30-60 seconds after first start for databases to initialize.
136136

137+
## Documentation
138+
139+
Full user manual: [https://cysecurity.github.io/api-scanner/](https://cysecurity.github.io/api-scanner/)
140+
137141
## License
138142

139143
Proprietary. See LICENSE file for details.

docs/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
book/

docs/book.toml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[book]
2+
title = "API Scanner"
3+
description = "User manual for API Scanner"
4+
authors = ["CySecurity"]
5+
language = "en"
6+
7+
[output.html]
8+
site-url = "/api-scanner/"
9+
default-theme = "light"
10+
preferred-dark-theme = "navy"
11+
git-repository-url = "https://github.com/cysecurity/api-scanner"

docs/src/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# API Scanner
2+
3+
API Scanner is an automated security testing tool that scans REST and SOAP APIs for vulnerabilities using OpenAPI/Swagger specifications and WSDL files.
4+
5+
## Features
6+
7+
- **[OpenAPI Scan](openapi-scan.md)** - Upload an OpenAPI spec (JSON/YAML) to scan REST API endpoints for security vulnerabilities. Supports unauthenticated and authenticated scans with Basic, Bearer, or API key authentication.
8+
9+
- **[SOAP Scan](soap-scan.md)** - Upload a WSDL/XML file to scan SOAP web service operations. Supports Basic, Bearer, API key, and WS-Security authentication.
10+
11+
- **[API Discovery](api-discovery.md)** - Scan a target URL to automatically discover API endpoints, OpenAPI/Swagger definitions, GraphQL endpoints, and health check paths.
12+
13+
- **[JSON to YAML Converter](json-to-yaml.md)** - Convert OpenAPI specification files from JSON to YAML format.
14+
15+
## Getting Started
16+
17+
See the [Getting Started](getting-started.md) guide to access the web panel and log in.

docs/src/SUMMARY.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Summary
2+
3+
[Introduction](README.md)
4+
5+
- [Getting Started](getting-started.md)
6+
- [OpenAPI Scan](openapi-scan.md)
7+
- [SOAP Scan](soap-scan.md)
8+
- [API Discovery](api-discovery.md)
9+
- [OpenAPI JSON to YAML Converter](json-to-yaml.md)

docs/src/api-discovery.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# API Discovery
2+
3+
API Discovery scans a target URL to automatically identify available API endpoints. It detects OpenAPI/Swagger definitions, GraphQL endpoints, health check paths, and other commonly used API routes. Discovered API specifications can then be used to run security scans.
4+
5+
## Starting a Discovery
6+
7+
From the sidebar, click **Discover API Endpoint**. If no discoveries exist, click **Start First Discovery**. Otherwise, click **New Discovery** in the top-right corner.
8+
9+
![First discovery page](images/discovery-first-scan.png)
10+
11+
Enter the target URL and click **Start Discovery**.
12+
13+
![New discovery form](images/discovery-new-scan.png)
14+
15+
## Viewing Discoveries
16+
17+
Click **Discover API Endpoint** in the sidebar to view all discovery runs.
18+
19+
![Discovery list](images/discovery-scan-list.png)
20+
21+
Each row shows:
22+
23+
| Column | Description |
24+
|--------|-------------|
25+
| **Target URL** | The URL that was scanned for API endpoints |
26+
| **Status** | In progress, completed, failed, or stopped |
27+
| **Discoveries** | Number of endpoints discovered |
28+
| **Created** | Date and time the discovery was created |
29+
| **Actions** | Report, View Results, Delete |
30+
31+
## Report
32+
33+
Download discovered endpoints in document format.
34+
35+
![Discovery report](images/discovery-report.png)
36+
37+
## Scan Results
38+
39+
Click **View Results** to view detected APIs, discovered endpoints, and any scan results found at those endpoints.
40+
41+
![Discovery alerts](images/discovery-alerts.png)
42+
43+
### Discovered Endpoints
44+
45+
Click **View Discovered Endpoints** in the detected APIs section to see all endpoints found by scanning common API paths.
46+
47+
![Discovered endpoints](images/discovery-endpoints.png)
48+
49+
## Deleting a Discovery
50+
51+
Click the **Delete** icon to remove a discovery entry.
52+
53+
![Delete discovery](images/discovery-delete-scan.png)

docs/src/getting-started.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Getting Started
2+
3+
## Accessing the Panel
4+
5+
Open a browser and navigate to:
6+
7+
```
8+
https://<your-host>:4455
9+
```
10+
11+
> [!NOTE]
12+
> If using a self-signed certificate, your browser will show a security warning. Accept it to proceed.
13+
14+
## First-Time Setup
15+
16+
On first access, you will be prompted to create an account. Enter a username, a password (minimum 10 characters), and confirm the password, then click **Create**.
17+
18+
![Create user](images/create-user.png)
19+
20+
## Login
21+
22+
After the account is created, enter your username and password to log in.
23+
24+
![Login page](images/login.png)
134 KB
Loading

docs/src/images/converter.png

120 KB
Loading

0 commit comments

Comments
 (0)