Files
2026-02-03 15:45:39 -08:00

73 lines
2.0 KiB
Markdown

# AdPlatform Management Console
React-based admin interface for AdPlatform management.
## Project Structure
```
management-client/
├── src/
│ ├── app/
│ │ └── App.js # Main app routing
│ ├── auth/
│ │ ├── authConfig.js # MSAL + API config
│ │ └── AuthProvider.jsx # Auth context
│ ├── components/
│ │ ├── admin/
│ │ │ ├── ClientsPanel.jsx # Client management
│ │ │ ├── UsersPanel.jsx # User management
│ │ │ └── SessionsPanel.jsx # Session management
│ │ ├── Shell.jsx # Layout wrapper
│ │ ├── SignInOverlay.jsx # Sign in screen
│ │ ├── RegistrationForm.jsx # New org setup
│ │ └── Dashboard.jsx # Main dashboard
│ ├── styles/
│ │ └── app.css
│ └── index.js
├── public/
│ └── index.html
├── package.json
└── webpack.config.js
```
## Features
- **Authentication**: Microsoft Entra External ID (MSAL.js)
- **Onboarding**: New user registration with organization setup
- **Client Management**: Create, list, deactivate clients
- **User Management**: Create, list, link to clients, deactivate users
- **Session Management**: View active sessions, revoke, cleanup
## Setup
```bash
npm install
npm start
```
Opens at http://localhost:3000
## Configuration
Edit `src/auth/authConfig.js`:
```javascript
export const msalConfig = {
auth: {
clientId: 'YOUR_CLIENT_ID',
authority: 'https://login.microsoftonline.com/YOUR_TENANT_ID',
}
};
export const API_BASE_URL = 'https://your-management-api.com';
export const GATEWAY_API_URL = 'https://your-gateway-api.com';
```
## User Flow
1. User signs in with Microsoft → JWT obtained
2. App checks `/api/onboarding/status`
3. If not registered → Registration form shown
4. After registration → Session created via Gateway
5. Dashboard displayed with admin tabs