BCM Service — İş Sürekliliği Yönetimi API'si
Base Routes: /api/bcm/admin/{resource}
Service: Taz.SaaS.Bcm.Api
Tüm endpoint'ler Bearer Token (Auth) gerektirir. CQRS pattern ile Commands (Write) ve Queries (Read) ayrımı vardır.
AdminBiaController — Business Impact Analysis (/api/bcm/admin/bia)
1. Get BIA List
HTTP Method: GET
Route: /api/bcm/admin/bia?page={int}&pageSize={int}
Auth: Required
Query Parameters
| Name | Type | Required | Default |
|---|---|---|---|
| page | int | No | 1 |
| pageSize | int | No | 20 |
Response (200 OK) — PaginatedList<BiaListDto>
{
"items": [{
"id": "guid",
"title": "string",
"description": "string | null",
"status": 1,
"assignedToId": "guid | null",
"createdAt": "datetime"
}],
"totalCount": 50,
"totalPages": 3,
"page": 1,
"pageSize": 20
}
2. Get BIA Detail
HTTP Method: GET
Route: /api/bcm/admin/bia/{biaId:guid}
Auth: Required
Response (200 OK) — BiaDetailDto
{
"id": "guid",
"title": "string",
"description": "string | null",
"status": 1,
"assignedToId": "guid | null",
"assignments": [{
"userId": "guid",
"userName": "string",
"type": 1
}],
"entries": [{
"id": "guid",
"briefDescription": "string",
"completeAt": "datetime"
}],
"createdAt": "datetime"
}
3. Create BIA
HTTP Method: POST
Route: /api/bcm/admin/bia
Auth: Required
Request Body
{
"title": "string (required)",
"description": "string | null",
"status": "int | null"
}
4. Update BIA
HTTP Method: PUT
Route: /api/bcm/admin/bia/{biaId:guid}
Auth: Required
Request Body
{
"title": "string | null",
"description": "string | null"
}
5. Change BIA Status
HTTP Method: PUT
Route: /api/bcm/admin/bia/{biaId:guid}/status
Auth: Required
Request Body
{
"newStatus": "int (required, enum BiaStatus)"
}
6. Create New BIA Version
HTTP Method: POST
Route: /api/bcm/admin/bia/{biaId:guid}/new-version
Auth: Required
Response (201 Created) — BiaDetailDto
7. Delete BIA
HTTP Method: DELETE
Route: /api/bcm/admin/bia/{biaId:guid}
Auth: Required
8. Add BIA Assignment
HTTP Method: POST
Route: /api/bcm/admin/bia/{biaId:guid}/assignments
Auth: Required
Request Body
{
"userId": "guid (required)",
"type": "int (required, enum AssigneeType)"
}
9. Remove BIA Assignment
HTTP Method: DELETE
Route: /api/bcm/admin/bia/{biaId:guid}/assignments/{assignmentId:guid}
Auth: Required
AdminBiaEntryController — BIA Entries (/api/bcm/admin/bia)
10. Get Entry List
GET /api/bcm/admin/bia/{biaId:guid}/entries?page={int}&pageSize={int}
Auth: Required
Response (200 OK) — PaginatedList<BiaEntryBriefDto>
{
"items": [{
"id": "guid",
"briefDescription": "string",
"completeAt": "datetime"
}],
"totalCount": 15,
"totalPages": 1,
"page": 1,
"pageSize": 20
}
11. Get Entry Detail
GET /api/bcm/admin/bia/{biaId:guid}/entries/{entryId:guid}
Auth: Required
Response (200 OK) — BiaEntryDetailDto
{
"id": "guid",
"briefDescription": "string",
"completeAt": "datetime",
"digitalAssets": [{ "name": "string", "description": "string | null" }],
"printedAssets": [{ "name": "string", "quantity": "int | null" }],
"communicationSystems": [{ "name": "string", "type": "string" }],
"productionSystems": [{ "name": "string", "type": "string" }],
"equipmentAssets": [{ "name": "string", "quantity": "int | null" }],
"supplierDependencies": [{ "name": "string", "contactName": "string | null" }],
"recoveryStrategies": [{ "category": "string", "description": "string | null" }],
"processDependencies": [{ "id": "guid", "title": "string" }]
}
12. Create BIA Entry
POST /api/bcm/admin/bia/{biaId:guid}/entries
Auth: Required
Request Body
{
"briefDescription": "string (required)",
"completeAt": "datetime | null"
}
13. Update BIA Entry
PUT /api/bcm/admin/bia/{biaId:guid}/entries/{entryId:guid}
Auth: Required
Request Body — UpdateBiaEntryCommand
{
"briefDescription": "string | null",
"completeAt": "datetime | null"
}
14. Delete BIA Entry
DELETE /api/bcm/admin/bia/{biaId:guid}/entries/{entryId:guid}
Auth: Required
15. Mark Entry Complete
PATCH /api/bcm/admin/bia/{biaId:guid}/entries/{entryId:guid}/complete
Auth: Required
Entry Detail Update Endpoints (Sub-resources)
| Operation | Route | Auth |
|---|---|---|
| Update Digital Assets | PUT /api/bcm/admin/bia/{biaId}/entries/{entryId}/digital-assets | Required |
| Update Printed Assets | PUT /api/bcm/admin/bia/{biaId}/entries/{entryId}/printed-assets | Required |
| Update Communication Systems | PUT /api/bcm/admin/bia/{biaId}/entries/{entryId}/communication-systems | Required |
| Update Production Systems | PUT /api/bcm/admin/bia/{biaId}/entries/{entryId}/production-systems | Required |
| Update Equipment Assets | PUT /api/bcm/admin/bia/{biaId}/entries/{entryId}/equipment-assets | Required |
| Update Supplier Dependencies | PUT /api/bcm/admin/bia/{biaId}/entries/{entryId}/supplier-dependencies | Required |
| Update Recovery Strategies | PUT /api/bcm/admin/bia/{biaId}/entries/{entryId}/recovery-strategies | Required |
| Update Process Dependencies | PUT /api/bcm/admin/bia/{biaId}/entries/{entryId}/process-dependencies | Required |
Her endpoint'in request body'si ilgili DTO array'ini alır (örn. [DigitalAssetDto], [SupplierDependencyDto]).
AdminRiskController — Risk Management (/api/bcm/admin/risk)
16. Get Risk List
GET /api/bcm/admin/risk?page={int}&pageSize={int}
Auth: Required
Response (200 OK) — PaginatedList<RiskDto>
{
"items": [{
"id": "guid",
"title": "string",
"category": 1,
"level": 3,
"status": 1,
"probabilityScore": 5,
"impactScore": 7,
"createdAt": "datetime"
}],
"totalCount": 25,
"totalPages": 2,
"page": 1,
"pageSize": 20
}
17. Get Risk Detail
GET /api/bcm/admin/risk/{riskId:guid}
Auth: Required
Response (200 OK) — RiskDto
{
"id": "guid",
"title": "string",
"description": "string | null",
"category": 1,
"level": 3,
"status": 1,
"probabilityScore": 5,
"impactScore": 7,
"mitigationActions": [{ "id": "guid", "title": "string", "status": 1 }],
"risks": [{ "id": "guid", "name": "string", "score": 6 }]
}
18. Create Risk
POST /api/bcm/admin/risk
Auth: Required
Request Body — AddRiskCommand
{
"title": "string (required)",
"description": "string | null",
"category": "int (required, enum RiskCategory)",
"level": "int (required, enum RiskLevel)"
}
19. Change Risk Status
PUT /api/bcm/admin/risk/{riskId:guid}/status
Auth: Required
Request Body
{ "newStatus": "int (required)" }
20. Add Risk Assessment
POST /api/bcm/admin/risk/{riskId:guid}/risks
Auth: Required
Request Body — CreateRiskAssessmentCommand
{
"name": "string (required)",
"score": "int (required)"
}
21. Update Risk Assessment
PUT /api/bcm/admin/risk/{riskId:guid}/risks/{assessmentId:guid}
Auth: Required
Request Body — UpdateRiskCommand
{
"name": "string | null",
"score": "int | null"
}
22. Delete Risk Assessment
DELETE /api/bcm/admin/risk/{riskId:guid}/risks/{assessmentId:guid}
Auth: Required
23. Add Mitigation Action
POST /api/bcm/admin/risk/{riskId:guid}/risks/{assessmentId:guid}/actions
Auth: Required
Request Body — AddMitigationActionCommand
{
"title": "string (required)",
"description": "string | null",
"status": "int | null"
}
24. Update Mitigation Action
PUT /api/bcm/admin/risk/{riskId:guid}/risks/{assessmentId:guid}/actions/{actionId:guid}
Auth: Required
Request Body — UpdateMitigationActionCommand
{
"title": "string | null",
"description": "string | null",
"status": "int | null"
}
AdminBcmConfigController — BCM Configuration (/api/bcm/admin/config)
25. Get Impact Thresholds
GET /api/bcm/admin/config/impact-thresholds
Auth: Required
Response (200 OK) — ImpactThresholdDto[]
[
{ "dimension": 1, "score": 5, "description": "string" },
{ "dimension": 2, "score": 7, "description": "string" }
]
26. Update Impact Thresholds
PUT /api/bcm/admin/config/impact-thresholds
Auth: Required
Request Body — UpdateImpactThresholdsCommand
{
"thresholds": [
{ "dimension": 1, "score": 5, "description": "string" }
]
}
AdminDashboardController — BCM Dashboard (/api/bcm/admin/dashboard)
27. Get Dashboard Data
GET /api/bcm/admin/dashboard
Auth: Required
Response (200 OK) — DashboardDto
{
"totalAssessments": 15,
"criticalFunctions": { "identified": 3, "pending": 5 },
"activeRisks": { "highImpact": 1, "mediumImpact": 3, "lowImpact": 2 },
"biaProgressOverview": { "completedEntries": 10, "totalEntries": 20, "percentageComplete": 50 },
"recentActivities": [{
"activityType": 1,
"description": "string",
"createdAt": "datetime"
}],
"upcomingTasks": [{ "title": "string", "dueAt": "datetime" }]
}
Enums
BiaStatus
| Value | Name |
|---|---|
| 0 | Draft |
| 1 | InProgress |
| 2 | Completed |
AssigneeType
| Value | Name |
|---|---|
| 0 | User |
| 1 | Group |
RiskCategory
| Value | Name |
|---|---|
| 0 | Technology |
| 1 | Natural Disaster |
| 2 | Human Error |
| 3 | Supplier Failure |
| 4 | Regulatory |
RiskLevel
| Value | Name |
|---|---|
| 0 | Low |
| 1 | Medium |
| 2 | High |
| 3 | Critical |
MitigationActionStatus
| Value | Name |
|---|---|
| 0 | Pending |
| 1 | InProgress |
| 2 | Completed |
| 3 | Cancelled |