pre api key
This commit is contained in:
commit
9569f90aba
8 changed files with 900 additions and 0 deletions
191
examples.md
Normal file
191
examples.md
Normal file
|
@ -0,0 +1,191 @@
|
|||
# Simple Data Collector API - Usage Examples
|
||||
|
||||
## Starting the Server
|
||||
|
||||
### Using Virtual Environment (Recommended)
|
||||
|
||||
```bash
|
||||
# Create virtual environment (if not already created)
|
||||
python -m venv venv
|
||||
|
||||
# Activate virtual environment
|
||||
# On Linux/Mac:
|
||||
source venv/bin/activate
|
||||
# On Windows:
|
||||
# venv\Scripts\activate
|
||||
|
||||
# Install dependencies
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Run the server
|
||||
python main.py
|
||||
```
|
||||
|
||||
The server will start on `http://localhost:8000`
|
||||
|
||||
## Simple Data Collection
|
||||
|
||||
### Basic Usage - curl (with Bearer Authentication)
|
||||
|
||||
```bash
|
||||
# Send simple comma-separated data to run1 (requires input token)
|
||||
curl -X POST http://localhost:8000/api/run1/ \
|
||||
-H "Authorization: Bearer input_token_123" \
|
||||
-d "host_a,is ok"
|
||||
|
||||
# Send data to different runs
|
||||
curl -X POST http://localhost:8000/api/run1/ \
|
||||
-H "Authorization: Bearer input_token_123" \
|
||||
-d "host_b,is ok"
|
||||
curl -X POST http://localhost:8000/api/run1/ \
|
||||
-H "Authorization: Bearer input_token_123" \
|
||||
-d "host_c,failed"
|
||||
curl -X POST http://localhost:8000/api/run2/ \
|
||||
-H "Authorization: Bearer input_token_123" \
|
||||
-d "server_x,healthy"
|
||||
```
|
||||
|
||||
### PowerShell Examples (with Bearer Authentication)
|
||||
|
||||
```powershell
|
||||
# Send OK status from PowerShell (requires input token)
|
||||
$hostname = $env:COMPUTERNAME
|
||||
$status = "is ok"
|
||||
$headers = @{ "Authorization" = "Bearer input_token_123" }
|
||||
Invoke-RestMethod -Uri "http://your-server:8000/api/run1/" -Method Post -Body "$hostname,$status" -Headers $headers
|
||||
|
||||
# Send error status
|
||||
$hostname = $env:COMPUTERNAME
|
||||
$status = "failed - disk full"
|
||||
$headers = @{ "Authorization" = "Bearer input_token_123" }
|
||||
Invoke-RestMethod -Uri "http://your-server:8000/api/run1/" -Method Post -Body "$hostname,$status" -Headers $headers
|
||||
```
|
||||
|
||||
### wget Examples (with Bearer Authentication)
|
||||
|
||||
```bash
|
||||
# Send data using wget (requires input token)
|
||||
wget --post-data="host_d,is ok" \
|
||||
--header="Authorization: Bearer input_token_123" \
|
||||
http://localhost:8000/api/run1/
|
||||
wget --post-data="host_e,network error" \
|
||||
--header="Authorization: Bearer input_token_123" \
|
||||
http://localhost:8000/api/run1/
|
||||
```
|
||||
|
||||
### Multiple Endpoints (with Bearer Authentication)
|
||||
|
||||
```bash
|
||||
# Different runs create separate directories and files (requires input token)
|
||||
curl -X POST http://localhost:8000/api/daily-check/ \
|
||||
-H "Authorization: Bearer input_token_123" \
|
||||
-d "server1,ok"
|
||||
curl -X POST http://localhost:8000/api/backup-status/ \
|
||||
-H "Authorization: Bearer input_token_123" \
|
||||
-d "server1,completed"
|
||||
curl -X POST http://localhost:8000/api/security-scan/ \
|
||||
-H "Authorization: Bearer input_token_123" \
|
||||
-d "server1,clean"
|
||||
```
|
||||
|
||||
## Retrieving Results
|
||||
|
||||
### View all results for a run (with Bearer Authentication)
|
||||
|
||||
```bash
|
||||
# Get all results for run1 (requires read token)
|
||||
curl -H "Authorization: Bearer read_token_456" \
|
||||
http://localhost:8000/results/run1/
|
||||
|
||||
# Get results for other runs
|
||||
curl -H "Authorization: Bearer read_token_456" \
|
||||
http://localhost:8000/results/daily-check/
|
||||
curl -H "Authorization: Bearer read_token_456" \
|
||||
http://localhost:8000/results/backup-status/
|
||||
```
|
||||
|
||||
### PowerShell - Get results (with Bearer Authentication)
|
||||
|
||||
```powershell
|
||||
# Get results from PowerShell (requires read token)
|
||||
$headers = @{ "Authorization" = "Bearer read_token_456" }
|
||||
Invoke-RestMethod -Uri "http://your-server:8000/results/run1/" -Method Get -Headers $headers
|
||||
```
|
||||
|
||||
## File Output
|
||||
|
||||
Data is saved to text files with timestamps:
|
||||
|
||||
### Directory Structure
|
||||
```
|
||||
input/
|
||||
├── run1/
|
||||
│ └── results.txt
|
||||
├── daily-check/
|
||||
│ └── results.txt
|
||||
└── backup-status/
|
||||
└── results.txt
|
||||
```
|
||||
|
||||
### Example File Content (input/run1/results.txt)
|
||||
```
|
||||
2025-01-06 10:30:15 - host_a,is ok
|
||||
2025-01-06 10:30:22 - host_b,is ok
|
||||
2025-01-06 10:30:45 - host_c,failed
|
||||
2025-01-06 10:31:02 - host_d,is ok
|
||||
```
|
||||
|
||||
## Real-World Intune PowerShell Example (with Bearer Authentication)
|
||||
|
||||
```powershell
|
||||
# Place this in your Intune PowerShell script
|
||||
try {
|
||||
# Your script logic here
|
||||
Write-Host "Script executed successfully"
|
||||
|
||||
# Send success status (requires input token)
|
||||
$hostname = $env:COMPUTERNAME
|
||||
$headers = @{ "Authorization" = "Bearer input_token_123" }
|
||||
Invoke-RestMethod -Uri "http://your-api-server:8000/api/intune-deployment/" -Method Post -Body "$hostname,success" -Headers $headers
|
||||
|
||||
} catch {
|
||||
# Send failure status with error
|
||||
$hostname = $env:COMPUTERNAME
|
||||
$error = $_.Exception.Message
|
||||
$headers = @{ "Authorization" = "Bearer input_token_123" }
|
||||
Invoke-RestMethod -Uri "http://your-api-server:8000/api/intune-deployment/" -Method Post -Body "$hostname,failed - $error" -Headers $headers
|
||||
}
|
||||
```
|
||||
|
||||
## Health Check
|
||||
|
||||
```bash
|
||||
curl http://localhost:8000/health
|
||||
```
|
||||
|
||||
## API Documentation
|
||||
|
||||
Visit `http://localhost:8000/docs` for interactive API documentation.
|
||||
|
||||
## Authentication Tokens
|
||||
|
||||
### Required Tokens
|
||||
|
||||
- **Input Token** (for POST operations): `input_token_123`
|
||||
- **Read Token** (for GET operations): `read_token_456`
|
||||
|
||||
### Security Notes
|
||||
|
||||
- POST endpoints require the `input_token_123` bearer token
|
||||
- GET endpoints require the `read_token_456` bearer token
|
||||
- Change these tokens in `main.py` lines 22-23 for production use
|
||||
|
||||
## Key Features
|
||||
|
||||
- **Simple Input**: Just send plain text data (e.g., "host_a,is ok")
|
||||
- **Bearer Authentication**: Separate tokens for input and read operations
|
||||
- **Automatic Directories**: Each run name creates its own directory
|
||||
- **Timestamped Entries**: Every entry gets a timestamp
|
||||
- **Multiple Runs**: Support multiple concurrent data collection runs
|
||||
- **Easy Retrieval**: Get all results via REST API
|
||||
- **Plain Text Output**: Results saved as simple text files
|
Loading…
Add table
Add a link
Reference in a new issue