Files
AdPlatform-Server/Management/README.md
2026-02-03 15:04:37 -08:00

91 lines
3.1 KiB
Markdown

# AdPlatform Management API
.NET 8 API for platform administration: onboarding, user/client management, and monitoring.
## Project Structure
```
Management/
├── Controllers/
│ ├── Admin/
│ │ ├── AdminControllerBase.cs # Shared base class
│ │ ├── AdminClientsController.cs # /api/admin/clients
│ │ ├── AdminUsersController.cs # /api/admin/users
│ │ └── AdminSessionsController.cs# /api/admin/sessions
│ ├── OnboardingController.cs # /api/onboarding
│ ├── MonitoringController.cs # /api/monitoring
│ └── TestController.cs # /api/test
├── Data/
│ └── SqlService.cs # Database access
├── Security/
│ ├── ClientContext.cs # Request auth context
│ └── ClientAuthMiddleware.cs # Auth middleware
├── SQL/
│ ├── spAdminClients.sql
│ ├── spAdminUsers.sql
│ ├── spAdminSessions.sql
│ ├── spOnboarding.sql
│ └── spMonitoring.sql
└── Program.cs
```
## API Endpoints
### Onboarding (JWT auth)
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | /api/onboarding/status | Check registration status |
| POST | /api/onboarding/register | Register new organization |
### Admin - Clients (Session + Admin role)
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | /api/admin/clients | List clients |
| GET | /api/admin/clients/{id} | Get client |
| POST | /api/admin/clients | Create client |
| PUT | /api/admin/clients/{id} | Update client |
| DELETE | /api/admin/clients/{id} | Deactivate client |
### Admin - Users (Session + Admin role)
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | /api/admin/users | List users |
| GET | /api/admin/users/{id} | Get user |
| POST | /api/admin/users | Create user |
| PUT | /api/admin/users/{id} | Update user |
| DELETE | /api/admin/users/{id} | Deactivate user |
| POST | /api/admin/users/{id}/clients | Link user to client |
| DELETE | /api/admin/users/{id}/clients/{cid} | Unlink user |
### Admin - Sessions (Session + Admin role)
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | /api/admin/sessions | List sessions |
| POST | /api/admin/sessions/{id}/revoke | Revoke session |
| POST | /api/admin/users/{id}/revoke-sessions | Revoke all user sessions |
| POST | /api/admin/sessions/cleanup | Cleanup expired |
### Monitoring (Session + Admin role)
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | /api/monitoring/health | System health |
| GET | /api/monitoring/stats | Detailed stats |
## Setup
1. Run SQL scripts in `SQL/` folder against dbAdPlatform
2. Deploy to Azure Container Apps
3. Set environment variables:
- `ConnectionStrings__Sql`
- `Auth__EntraId__TenantId`
- `Auth__EntraId__ClientId`
## Local Development
```bash
dotnet run
# Open http://localhost:5100/swagger
```
Dev bypass: Add `X-Dev-ClientId: test` header (Development environment only)