Add POSTMAN_GUIDE.md with setup, endpoints, and troubleshooting
This commit is contained in:
parent
45a29b7641
commit
6558a40435
2 changed files with 171 additions and 0 deletions
168
POSTMAN_GUIDE.md
Normal file
168
POSTMAN_GUIDE.md
Normal file
|
|
@ -0,0 +1,168 @@
|
||||||
|
# Authelia API - Postman Collection
|
||||||
|
|
||||||
|
This directory contains Postman files for testing and interacting with the Authelia API.
|
||||||
|
|
||||||
|
## Files
|
||||||
|
|
||||||
|
- `authelia-api.postman_collection.json` - Main Postman collection with all API endpoints
|
||||||
|
- `authelia-api.postman_environment.json` - Environment variables for easy configuration
|
||||||
|
- `src/test_bulk.json` - Example request body for bulk user creation
|
||||||
|
|
||||||
|
## Setup Instructions
|
||||||
|
|
||||||
|
### 1. Import into Postman
|
||||||
|
|
||||||
|
1. Open Postman
|
||||||
|
2. Click **Import** button
|
||||||
|
3. Select both the collection and environment files
|
||||||
|
4. Click **Import**
|
||||||
|
|
||||||
|
### 2. Configure Environment
|
||||||
|
|
||||||
|
1. In Postman, select the **"Authelia API"** environment from the environment dropdown (top-right)
|
||||||
|
2. Click the eye icon next to the environment name
|
||||||
|
3. Set the following variables:
|
||||||
|
|
||||||
|
| Variable | Value | Description |
|
||||||
|
|----------|-------|-------------|
|
||||||
|
| `base_url` | `http://127.0.0.1:8080` | API base URL (default) |
|
||||||
|
| `bearer_token` | Your session.secret | **Required** - Get from Authelia config |
|
||||||
|
|
||||||
|
### 3. Get Your Bearer Token
|
||||||
|
|
||||||
|
The initial bearer token is your Authelia `session.secret`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Extract from Authelia configuration
|
||||||
|
grep -A2 "session:" /opt/authelia/configuration.yml | grep "secret:" | awk '{print $2}'
|
||||||
|
```
|
||||||
|
|
||||||
|
Example token: `5DdUKe12k6niaaekpTeB0H35A48xmTWBWJcI3AOoqPA=`
|
||||||
|
|
||||||
|
**Security Note:** This token provides full API access. Keep it secure!
|
||||||
|
|
||||||
|
## API Endpoints
|
||||||
|
|
||||||
|
### Health Check
|
||||||
|
- **GET** `/api/health`
|
||||||
|
- No authentication required
|
||||||
|
- Returns API status and version
|
||||||
|
|
||||||
|
### Bulk Create Users
|
||||||
|
- **POST** `/api/users/bulk`
|
||||||
|
- Requires Bearer token
|
||||||
|
- Creates multiple users with auto-generated passwords
|
||||||
|
- Example request body in `src/test_bulk.json`
|
||||||
|
|
||||||
|
### List Users
|
||||||
|
- **GET** `/api/users`
|
||||||
|
- Requires Bearer token
|
||||||
|
- Lists all users in the system
|
||||||
|
|
||||||
|
### Delete User
|
||||||
|
- **DELETE** `/api/users/{username}`
|
||||||
|
- Requires Bearer token
|
||||||
|
- Deletes a user by username
|
||||||
|
|
||||||
|
## Testing Workflow
|
||||||
|
|
||||||
|
1. **Health Check**: Verify API is running
|
||||||
|
2. **Bulk Create**: Add test users (see example below)
|
||||||
|
3. **List Users**: Confirm users were created
|
||||||
|
4. **Delete User**: Clean up test users
|
||||||
|
|
||||||
|
### Example: Create Test Users
|
||||||
|
|
||||||
|
Use the pre-configured request in the collection, or modify the body:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"users": [
|
||||||
|
{
|
||||||
|
"username": "test.user1",
|
||||||
|
"display_name": "Test User One",
|
||||||
|
"email": "test1@example.com",
|
||||||
|
"groups": ["users", "developers"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "test.user2",
|
||||||
|
"display_name": "Test User Two",
|
||||||
|
"email": "test2@example.com",
|
||||||
|
"groups": ["users"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Response Examples
|
||||||
|
|
||||||
|
### Health Check
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": "ok",
|
||||||
|
"version": "dev",
|
||||||
|
"time": "2026-04-02T00:00:00Z"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Bulk Create Success
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"created": 2,
|
||||||
|
"users": [
|
||||||
|
{
|
||||||
|
"username": "john.doe",
|
||||||
|
"display_name": "John Doe",
|
||||||
|
"email": "john.doe@example.com",
|
||||||
|
"placeholder_password": "aB3$fG7!kL9*mN2@pQ",
|
||||||
|
"status": "created"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### List Users
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"username": "john.doe",
|
||||||
|
"display_name": "John Doe",
|
||||||
|
"email": "john.doe@example.com",
|
||||||
|
"groups": ["users", "admins"],
|
||||||
|
"disabled": false,
|
||||||
|
"created_at": "2026-04-02 00:00:00",
|
||||||
|
"updated_at": "2026-04-02 00:00:00"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### 401 Unauthorized
|
||||||
|
- Check that `bearer_token` is set in environment
|
||||||
|
- Verify token matches Authelia `session.secret`
|
||||||
|
- Ensure `Authorization` header is present
|
||||||
|
|
||||||
|
### Connection Refused
|
||||||
|
- Verify Authelia API is running: `systemctl status authelia-api`
|
||||||
|
- Check API port: Default is `127.0.0.1:8080`
|
||||||
|
- Ensure firewall allows local connections
|
||||||
|
|
||||||
|
### 400 Bad Request
|
||||||
|
- Validate JSON request body format
|
||||||
|
- Check required fields: `username`, `display_name`, `email`
|
||||||
|
- Ensure email contains '@' symbol
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. Test API with actual user data
|
||||||
|
2. Configure SMTP for email onboarding (if needed)
|
||||||
|
3. Set up monitoring/alerting for API health
|
||||||
|
4. Consider rotating bearer tokens for production
|
||||||
|
|
||||||
|
## Related Resources
|
||||||
|
|
||||||
|
- [Authelia API Source Code](../src/)
|
||||||
|
- [Installation Guide](README.md)
|
||||||
|
- [Authelia Documentation](https://www.authelia.com/)
|
||||||
|
|
@ -91,6 +91,9 @@ Postman collection and environment files are provided for API testing:
|
||||||
|
|
||||||
- `authelia-api.postman_collection.json` - Complete API collection with all endpoints
|
- `authelia-api.postman_collection.json` - Complete API collection with all endpoints
|
||||||
- `authelia-api.postman_environment.json` - Environment variables (base URL, token)
|
- `authelia-api.postman_environment.json` - Environment variables (base URL, token)
|
||||||
|
- `POSTMAN_GUIDE.md` - Setup and usage guide
|
||||||
|
|
||||||
|
See [POSTMAN_GUIDE.md](POSTMAN_GUIDE.md) for detailed setup and usage instructions.
|
||||||
|
|
||||||
## Files in This Repository
|
## Files in This Repository
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue