Registration Function
Azure Function (isolated worker, .NET 8) for managing prospect registration in AdPlatform.
Architecture
Prospect → Registration Function → dbRegistration (future)
Admin Panel → Management API → Registration Function (proxy)
→ spClientManagement (approve → dbAdPlatform)
Management validates admin sessions, then proxies registration calls to this Function.
The Function never touches dbAdPlatform. Management never touches dbRegistration.
Endpoints
| Method | Route | Auth | Description |
|---|---|---|---|
| GET | /api/registration/pending |
Function Key | List pending applicants |
| GET | /api/registration/{id} |
Function Key | Get single applicant |
| POST | /api/registration/register |
Function Key | New prospect signup |
| POST | /api/registration/{id}/reject |
Function Key | Reject applicant |
| POST | /api/registration/{id}/complete |
Function Key | Mark approved (called after platform client created) |
| GET | /api/registration/health |
Anonymous | Health check |
Mock Mode (Current)
Starts with 4 realistic test applicants in memory. State persists within a Function host lifecycle and resets on cold start. No database required.
To switch to mock mode, in Program.cs:
services.AddSingleton<IRegistrationDataService, MockDataService>();
Database Mode (Future)
When dbRegistration is ready:
- Create the database and run the
spRegistrationstored proc migration - Set
ConnectionStrings:Sqlto the registration database connection string - In
Program.cs, swap DI registration:
services.AddSingleton<SqlService>();
services.AddSingleton<IRegistrationDataService, SqlDataService>();
The SqlDataService calls dbo.spRegistration with the standard @action/@rqst/@resp OUTPUT
pattern used across all AdPlatform services.
Local Development
# Requires Azure Functions Core Tools
func start
Test with:
curl http://localhost:7071/api/registration/health
curl http://localhost:7071/api/registration/pending
Deployment
Deploy as an Azure Function App (Consumption or Flex Consumption plan).
After deployment:
- Copy the Function Key from Azure Portal → Function App → App Keys
- Set in Management API config:
Registration:BaseUrl=https://your-function-app.azurewebsites.net/apiRegistration:FunctionKey=<key from portal>
These can be set as Azure Container App environment variables:
Registration__BaseUrl=https://your-function-app.azurewebsites.net/api
Registration__FunctionKey=<key>
Mock Applicants
The mock data includes 4 test applicants representing the target market (small businesses with low ad spend thresholds):
| Business | Category | Payment Verified | Days Waiting |
|---|---|---|---|
| Bella's Boutique | Retail | Yes | 3 |
| Pacific Coast Plumbing | Home Services | Yes | 1 |
| Sunrise Dental Group | Healthcare | No | ~0.25 |
| FreshBite Meal Prep | Food & Beverage | Yes | ~0.08 |