The RESTful Surface
An immaculate, fully documented RESTful API surface area featuring dynamic filtering, cursor-based pagination, and rich HATEOAS responses.
The backend isn't just a database wrapper; it is a meticulously crafted HTTP surface. SCRIPE exposes a pristine RESTful API that adheres strictly to standard HTTP verbs, status codes, and hypermedia conventions.
Strict Controller Topography
| Controller | Endpoints | Description |
|---|---|---|
| AuthController | 8 | Login, register, 2FA, password reset, sessions |
| UserController | 27 | CRUD, bulk ops, enterprise operations |
| RoleController | 12 | Role management, permission assignment |
| TenantController | 10 | Tenant lifecycle, settings, activation |
| AuditController | 6 | Audit log querying, export, streaming |
| NotificationController | 5 | Push notifications, mark read, preferences |
| FileController | 4 | Upload, download, delete, metadata |
| TemplateController | 5 | Email/message template CRUD, preview |
| MenuController | 6 | Dynamic menu management, overrides |
| SettingsController | 4 | System settings, tenant settings |
| DashboardController | 3 | KPI data, chart data, summaries |
| WebhookController | 5 | Subscription management, event catalog |
| RecycleBinController | 4 | Soft-deleted items, restore, purge |
| EditionsController | 11 | Edition CRUD, features, versioning, rollout |
| FeaturesController | 5 | Feature CRUD, value types, system features |
| SubscriptionsController | 12 | Assign, upgrade, downgrade, lifecycle, impact analysis |
| TenantFeaturesController | 4 | Per-tenant overrides, resolved features |
Standardized Predictable Payloads
No more parsing random error strings. Every API response—whether successful or a catastrophic failure—is wrapped in our standardized `Result<T>` Problem Details structure, guaranteeing absolute predictability for frontend and third-party consumers.
// Success response
{
"succeeded": true,
"data": { ... },
"message": "Operation completed successfully"
}
// Error response
{
"succeeded": false,
"errors": ["Validation failed: Email is required"],
"errorCode": "VALIDATION_ERROR"
}Cursor & Offset Pagination
{
"data": [...],
"pagination": {
"currentPage": 1,
"pageSize": 20,
"totalPages": 5,
"totalCount": 95,
"hasNextPage": true,
"hasPreviousPage": false
}
}Strict Cryptographic Authorization
Every single controller is locked down by default. SCRIPE utilizes robust JWT token validation, requiring precise granular permissions and validated tenant claims before a single byte of JSON is returned.
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
X-Tenant-Id: 550e8400-e29b-41d4-a716-446655440000Interactive OpenAPI Portals
We generate comprehensive, deeply annotated Swagger (OpenAPI 3.0) documentation directly from the C# source code at runtime. Developers can interactively test authenticated payloads directly from their browser the moment the system boots.
- Auto-generated from controller attributes and XML documentation
- Try-it-out mode for testing endpoints directly
- JWT authentication support in the Swagger UI
- Request/response schema documentation with examples
- Grouped by controller for easy navigation
- Available at /swagger in development mode