@djangocfg/api 1.2.15 → 1.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/index.cjs +2478 -3259
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +1332 -1955
  4. package/dist/index.d.ts +1332 -1955
  5. package/dist/index.mjs +2461 -3222
  6. package/dist/index.mjs.map +1 -1
  7. package/package.json +2 -2
  8. package/src/cfg/contexts/index.ts +0 -4
  9. package/src/cfg/generated/_utils/fetchers/cfg__tasks.ts +36 -96
  10. package/src/cfg/generated/_utils/hooks/cfg__tasks.ts +38 -122
  11. package/src/cfg/generated/_utils/schemas/PaginatedTaskLogListList.schema.ts +24 -0
  12. package/src/cfg/generated/_utils/schemas/TaskLog.schema.ts +42 -0
  13. package/src/cfg/generated/_utils/schemas/TaskLogDetail.schema.ts +50 -0
  14. package/src/cfg/generated/_utils/schemas/TaskLogList.schema.ts +35 -0
  15. package/src/cfg/generated/_utils/schemas/TaskLogStats.schema.ts +30 -0
  16. package/src/cfg/generated/_utils/schemas/index.ts +5 -8
  17. package/src/cfg/generated/cfg__tasks/client.ts +52 -49
  18. package/src/cfg/generated/cfg__tasks/models.ts +169 -106
  19. package/src/cfg/generated/enums.ts +60 -56
  20. package/src/cfg/generated/schema.ts +859 -552
  21. package/src/index.ts +0 -3
  22. package/src/cfg/contexts/TasksContext.tsx +0 -242
  23. package/src/cfg/generated/_utils/schemas/APIResponse.schema.ts +0 -22
  24. package/src/cfg/generated/_utils/schemas/APIResponseRequest.schema.ts +0 -22
  25. package/src/cfg/generated/_utils/schemas/QueueAction.schema.ts +0 -21
  26. package/src/cfg/generated/_utils/schemas/QueueActionRequest.schema.ts +0 -21
  27. package/src/cfg/generated/_utils/schemas/QueueStatus.schema.ts +0 -23
  28. package/src/cfg/generated/_utils/schemas/TaskStatistics.schema.ts +0 -22
  29. package/src/cfg/generated/_utils/schemas/WorkerAction.schema.ts +0 -22
  30. package/src/cfg/generated/_utils/schemas/WorkerActionRequest.schema.ts +0 -22
  31. package/src/cfg/services_deprecated/README.md +0 -53
  32. package/src/cfg/services_deprecated/auth/AuthService.ts +0 -165
  33. package/src/cfg/services_deprecated/auth/index.ts +0 -7
  34. package/src/cfg/services_deprecated/index.ts +0 -31
  35. package/src/cfg/services_deprecated/leads/LeadsService.ts +0 -133
  36. package/src/cfg/services_deprecated/leads/index.ts +0 -7
  37. package/src/cfg/services_deprecated/newsletter/BulkEmailService.ts +0 -35
  38. package/src/cfg/services_deprecated/newsletter/CampaignsService.ts +0 -138
  39. package/src/cfg/services_deprecated/newsletter/NewsletterService.ts +0 -79
  40. package/src/cfg/services_deprecated/newsletter/NewslettersListService.ts +0 -48
  41. package/src/cfg/services_deprecated/newsletter/index.ts +0 -10
  42. package/src/cfg/services_deprecated/payments/ApiKeysService.ts +0 -101
  43. package/src/cfg/services_deprecated/payments/DashboardService.ts +0 -112
  44. package/src/cfg/services_deprecated/payments/PaymentsService.ts +0 -159
  45. package/src/cfg/services_deprecated/payments/SubscriptionsService.ts +0 -101
  46. package/src/cfg/services_deprecated/payments/index.ts +0 -10
  47. package/src/cfg/services_deprecated/support/SupportService.ts +0 -142
  48. package/src/cfg/services_deprecated/support/index.ts +0 -7
  49. package/src/cfg/services_deprecated/tasks/TasksService.ts +0 -170
  50. package/src/cfg/services_deprecated/tasks/index.ts +0 -7
  51. package/src/cfg/services_deprecated/webhooks/WebhooksService.ts +0 -66
  52. package/src/cfg/services_deprecated/webhooks/index.ts +0 -7
@@ -7,60 +7,6 @@
7
7
  export const OPENAPI_SCHEMA = {
8
8
  "components": {
9
9
  "schemas": {
10
- "APIResponse": {
11
- "description": "Standard API response serializer.",
12
- "properties": {
13
- "data": {
14
- "additionalProperties": {},
15
- "description": "Response data",
16
- "type": "object"
17
- },
18
- "error": {
19
- "description": "Error message",
20
- "type": "string"
21
- },
22
- "message": {
23
- "description": "Success message",
24
- "type": "string"
25
- },
26
- "success": {
27
- "description": "Operation success status",
28
- "type": "boolean"
29
- }
30
- },
31
- "required": [
32
- "success"
33
- ],
34
- "type": "object"
35
- },
36
- "APIResponseRequest": {
37
- "description": "Standard API response serializer.",
38
- "properties": {
39
- "data": {
40
- "additionalProperties": {},
41
- "description": "Response data",
42
- "type": "object"
43
- },
44
- "error": {
45
- "description": "Error message",
46
- "minLength": 1,
47
- "type": "string"
48
- },
49
- "message": {
50
- "description": "Success message",
51
- "minLength": 1,
52
- "type": "string"
53
- },
54
- "success": {
55
- "description": "Operation success status",
56
- "type": "boolean"
57
- }
58
- },
59
- "required": [
60
- "success"
61
- ],
62
- "type": "object"
63
- },
64
10
  "APIZone": {
65
11
  "description": "OpenAPI zone/group serializer.",
66
12
  "properties": {
@@ -5302,6 +5248,69 @@ export const OPENAPI_SCHEMA = {
5302
5248
  ],
5303
5249
  "type": "object"
5304
5250
  },
5251
+ "PaginatedTaskLogListList": {
5252
+ "properties": {
5253
+ "count": {
5254
+ "description": "Total number of items across all pages",
5255
+ "example": 150,
5256
+ "type": "integer"
5257
+ },
5258
+ "has_next": {
5259
+ "description": "Whether there is a next page",
5260
+ "example": true,
5261
+ "type": "boolean"
5262
+ },
5263
+ "has_previous": {
5264
+ "description": "Whether there is a previous page",
5265
+ "example": true,
5266
+ "type": "boolean"
5267
+ },
5268
+ "next_page": {
5269
+ "description": "Next page number (null if no next page)",
5270
+ "example": 3,
5271
+ "nullable": true,
5272
+ "type": "integer"
5273
+ },
5274
+ "page": {
5275
+ "description": "Current page number (1-based)",
5276
+ "example": 2,
5277
+ "type": "integer"
5278
+ },
5279
+ "page_size": {
5280
+ "description": "Number of items per page",
5281
+ "example": 10,
5282
+ "type": "integer"
5283
+ },
5284
+ "pages": {
5285
+ "description": "Total number of pages",
5286
+ "example": 15,
5287
+ "type": "integer"
5288
+ },
5289
+ "previous_page": {
5290
+ "description": "Previous page number (null if no previous page)",
5291
+ "example": 1,
5292
+ "nullable": true,
5293
+ "type": "integer"
5294
+ },
5295
+ "results": {
5296
+ "description": "Array of items for current page",
5297
+ "items": {
5298
+ "$ref": "#/components/schemas/TaskLogList"
5299
+ },
5300
+ "type": "array"
5301
+ }
5302
+ },
5303
+ "required": [
5304
+ "count",
5305
+ "page",
5306
+ "pages",
5307
+ "page_size",
5308
+ "has_next",
5309
+ "has_previous",
5310
+ "results"
5311
+ ],
5312
+ "type": "object"
5313
+ },
5305
5314
  "PaginatedTicketList": {
5306
5315
  "properties": {
5307
5316
  "count": {
@@ -6182,101 +6191,6 @@ export const OPENAPI_SCHEMA = {
6182
6191
  "title": "PublishTestResponse",
6183
6192
  "type": "object"
6184
6193
  },
6185
- "QueueAction": {
6186
- "description": "Serializer for queue management actions.",
6187
- "properties": {
6188
- "action": {
6189
- "description": "Action to perform on queues\n\n* `clear` - clear\n* `clear_all` - clear_all\n* `purge` - purge\n* `purge_failed` - purge_failed\n* `flush` - flush",
6190
- "enum": [
6191
- "clear",
6192
- "clear_all",
6193
- "purge",
6194
- "purge_failed",
6195
- "flush"
6196
- ],
6197
- "type": "string",
6198
- "x-spec-enum-id": "4a60a2c6249b0803"
6199
- },
6200
- "queue_names": {
6201
- "description": "Specific queues to target (empty = all queues)",
6202
- "items": {
6203
- "type": "string"
6204
- },
6205
- "type": "array"
6206
- }
6207
- },
6208
- "required": [
6209
- "action"
6210
- ],
6211
- "type": "object"
6212
- },
6213
- "QueueActionRequest": {
6214
- "description": "Serializer for queue management actions.",
6215
- "properties": {
6216
- "action": {
6217
- "description": "Action to perform on queues\n\n* `clear` - clear\n* `clear_all` - clear_all\n* `purge` - purge\n* `purge_failed` - purge_failed\n* `flush` - flush",
6218
- "enum": [
6219
- "clear",
6220
- "clear_all",
6221
- "purge",
6222
- "purge_failed",
6223
- "flush"
6224
- ],
6225
- "type": "string",
6226
- "x-spec-enum-id": "4a60a2c6249b0803"
6227
- },
6228
- "queue_names": {
6229
- "description": "Specific queues to target (empty = all queues)",
6230
- "items": {
6231
- "minLength": 1,
6232
- "type": "string"
6233
- },
6234
- "type": "array"
6235
- }
6236
- },
6237
- "required": [
6238
- "action"
6239
- ],
6240
- "type": "object"
6241
- },
6242
- "QueueStatus": {
6243
- "description": "Serializer for queue status data.",
6244
- "properties": {
6245
- "error": {
6246
- "description": "Error message if any",
6247
- "type": "string"
6248
- },
6249
- "queues": {
6250
- "additionalProperties": {
6251
- "additionalProperties": {
6252
- "type": "integer"
6253
- },
6254
- "type": "object"
6255
- },
6256
- "description": "Queue information with pending/failed counts",
6257
- "type": "object"
6258
- },
6259
- "redis_connected": {
6260
- "description": "Redis connection status",
6261
- "type": "boolean"
6262
- },
6263
- "timestamp": {
6264
- "description": "Current timestamp",
6265
- "type": "string"
6266
- },
6267
- "workers": {
6268
- "description": "Number of active workers",
6269
- "type": "integer"
6270
- }
6271
- },
6272
- "required": [
6273
- "queues",
6274
- "redis_connected",
6275
- "timestamp",
6276
- "workers"
6277
- ],
6278
- "type": "object"
6279
- },
6280
6194
  "QuickAction": {
6281
6195
  "description": "Serializer for quick action buttons.\n\nMaps to QuickAction Pydantic model.",
6282
6196
  "properties": {
@@ -6744,94 +6658,510 @@ export const OPENAPI_SCHEMA = {
6744
6658
  ],
6745
6659
  "type": "object"
6746
6660
  },
6747
- "TaskStatistics": {
6748
- "description": "Serializer for task statistics data.",
6661
+ "TaskLog": {
6662
+ "description": "Basic TaskLog serializer.\n\nUsed for list views with essential fields only.\nIncludes computed properties matching ReArq response format.",
6749
6663
  "properties": {
6750
- "error": {
6751
- "description": "Error message if any",
6752
- "type": "string"
6753
- },
6754
- "recent_tasks": {
6755
- "description": "List of recent tasks",
6756
- "items": {
6757
- "additionalProperties": {},
6758
- "type": "object"
6759
- },
6760
- "type": "array"
6664
+ "duration_ms": {
6665
+ "description": "Task execution duration in milliseconds",
6666
+ "nullable": true,
6667
+ "readOnly": true,
6668
+ "type": "integer"
6761
6669
  },
6762
- "statistics": {
6763
- "additionalProperties": {
6764
- "type": "integer"
6765
- },
6766
- "description": "Task count statistics",
6767
- "type": "object"
6670
+ "duration_seconds": {
6671
+ "description": "Convert duration from ms to seconds.",
6672
+ "format": "double",
6673
+ "readOnly": true,
6674
+ "type": "number"
6768
6675
  },
6769
- "timestamp": {
6770
- "description": "Current timestamp",
6771
- "type": "string"
6772
- }
6773
- },
6774
- "required": [
6775
- "recent_tasks",
6776
- "statistics",
6777
- "timestamp"
6778
- ],
6779
- "type": "object"
6780
- },
6781
- "TestEmailRequest": {
6782
- "description": "Simple serializer for test email.",
6783
- "properties": {
6784
- "email": {
6785
- "format": "email",
6786
- "minLength": 1,
6676
+ "enqueue_time": {
6677
+ "description": "When job was enqueued to ReArq (from Job.enqueue_time)",
6678
+ "format": "date-time",
6679
+ "readOnly": true,
6787
6680
  "type": "string"
6788
6681
  },
6789
- "message": {
6790
- "default": "This is a test email from Django CFG Newsletter.",
6791
- "minLength": 1,
6682
+ "expire_time": {
6683
+ "description": "When job will expire (from Job.expire_time)",
6684
+ "format": "date-time",
6685
+ "nullable": true,
6686
+ "readOnly": true,
6792
6687
  "type": "string"
6793
6688
  },
6794
- "subject": {
6795
- "default": "Django CFG Newsletter Test",
6796
- "maxLength": 255,
6797
- "minLength": 1,
6798
- "type": "string"
6799
- }
6800
- },
6801
- "required": [
6802
- "email"
6803
- ],
6804
- "type": "object"
6805
- },
6806
- "Ticket": {
6807
- "properties": {
6808
- "created_at": {
6689
+ "finish_time": {
6690
+ "description": "When task execution finished (from JobResult.finish_time)",
6809
6691
  "format": "date-time",
6692
+ "nullable": true,
6810
6693
  "readOnly": true,
6811
6694
  "type": "string"
6812
6695
  },
6813
- "status": {
6814
- "description": "* `open` - Open\n* `waiting_for_user` - Waiting for User\n* `waiting_for_admin` - Waiting for Admin\n* `resolved` - Resolved\n* `closed` - Closed",
6815
- "enum": [
6816
- "open",
6817
- "waiting_for_user",
6818
- "waiting_for_admin",
6819
- "resolved",
6820
- "closed"
6821
- ],
6822
- "type": "string",
6823
- "x-spec-enum-id": "c21b48fabf2398aa"
6696
+ "id": {
6697
+ "readOnly": true,
6698
+ "type": "integer"
6824
6699
  },
6825
- "subject": {
6826
- "maxLength": 255,
6700
+ "is_completed": {
6701
+ "readOnly": true,
6702
+ "type": "boolean"
6703
+ },
6704
+ "is_failed": {
6705
+ "readOnly": true,
6706
+ "type": "boolean"
6707
+ },
6708
+ "is_successful": {
6709
+ "readOnly": true,
6710
+ "type": "boolean"
6711
+ },
6712
+ "job_id": {
6713
+ "description": "Unique job identifier from ReArq",
6714
+ "readOnly": true,
6827
6715
  "type": "string"
6828
6716
  },
6829
- "unanswered_messages_count": {
6830
- "description": "Get count of unanswered messages for this specific ticket.",
6717
+ "job_retries": {
6718
+ "description": "Number of retries performed so far",
6831
6719
  "readOnly": true,
6832
6720
  "type": "integer"
6833
6721
  },
6834
- "user": {
6722
+ "job_retry": {
6723
+ "description": "Maximum number of retries allowed (from task definition)",
6724
+ "readOnly": true,
6725
+ "type": "integer"
6726
+ },
6727
+ "queue_name": {
6728
+ "description": "Queue where task was executed",
6729
+ "readOnly": true,
6730
+ "type": "string"
6731
+ },
6732
+ "start_time": {
6733
+ "description": "When task execution started (from JobResult.start_time)",
6734
+ "format": "date-time",
6735
+ "nullable": true,
6736
+ "readOnly": true,
6737
+ "type": "string"
6738
+ },
6739
+ "status": {
6740
+ "description": "Current task status\n\n* `deferred` - Deferred\n* `queued` - Queued\n* `in_progress` - In Progress\n* `success` - Success\n* `failed` - Failed\n* `expired` - Expired\n* `canceled` - Canceled",
6741
+ "enum": [
6742
+ "deferred",
6743
+ "queued",
6744
+ "in_progress",
6745
+ "success",
6746
+ "failed",
6747
+ "expired",
6748
+ "canceled"
6749
+ ],
6750
+ "readOnly": true,
6751
+ "type": "string",
6752
+ "x-spec-enum-id": "a47ca6eb6d34f1d6"
6753
+ },
6754
+ "success": {
6755
+ "description": "Whether task completed successfully (null = not finished)",
6756
+ "nullable": true,
6757
+ "readOnly": true,
6758
+ "type": "boolean"
6759
+ },
6760
+ "task_name": {
6761
+ "description": "Name of the task function",
6762
+ "readOnly": true,
6763
+ "type": "string"
6764
+ }
6765
+ },
6766
+ "required": [
6767
+ "duration_ms",
6768
+ "duration_seconds",
6769
+ "enqueue_time",
6770
+ "expire_time",
6771
+ "finish_time",
6772
+ "id",
6773
+ "is_completed",
6774
+ "is_failed",
6775
+ "is_successful",
6776
+ "job_id",
6777
+ "job_retries",
6778
+ "job_retry",
6779
+ "queue_name",
6780
+ "start_time",
6781
+ "status",
6782
+ "success",
6783
+ "task_name"
6784
+ ],
6785
+ "type": "object"
6786
+ },
6787
+ "TaskLogDetail": {
6788
+ "description": "Detailed TaskLog serializer.\n\nIncludes all fields including args, kwargs, result, error messages.\nCombines ReArq Job + JobResult data.",
6789
+ "properties": {
6790
+ "args": {
6791
+ "description": "Positional arguments passed to task",
6792
+ "readOnly": true
6793
+ },
6794
+ "created_at": {
6795
+ "description": "When TaskLog record was created in Django DB",
6796
+ "format": "date-time",
6797
+ "readOnly": true,
6798
+ "type": "string"
6799
+ },
6800
+ "duration_ms": {
6801
+ "description": "Task execution duration in milliseconds",
6802
+ "nullable": true,
6803
+ "readOnly": true,
6804
+ "type": "integer"
6805
+ },
6806
+ "duration_seconds": {
6807
+ "description": "Convert duration from ms to seconds.",
6808
+ "format": "double",
6809
+ "readOnly": true,
6810
+ "type": "number"
6811
+ },
6812
+ "enqueue_time": {
6813
+ "description": "When job was enqueued to ReArq (from Job.enqueue_time)",
6814
+ "format": "date-time",
6815
+ "readOnly": true,
6816
+ "type": "string"
6817
+ },
6818
+ "error_message": {
6819
+ "description": "Error message if task failed",
6820
+ "nullable": true,
6821
+ "readOnly": true,
6822
+ "type": "string"
6823
+ },
6824
+ "expire_time": {
6825
+ "description": "When job will expire (from Job.expire_time)",
6826
+ "format": "date-time",
6827
+ "nullable": true,
6828
+ "readOnly": true,
6829
+ "type": "string"
6830
+ },
6831
+ "finish_time": {
6832
+ "description": "When task execution finished (from JobResult.finish_time)",
6833
+ "format": "date-time",
6834
+ "nullable": true,
6835
+ "readOnly": true,
6836
+ "type": "string"
6837
+ },
6838
+ "id": {
6839
+ "readOnly": true,
6840
+ "type": "integer"
6841
+ },
6842
+ "job_id": {
6843
+ "description": "Unique job identifier from ReArq",
6844
+ "readOnly": true,
6845
+ "type": "string"
6846
+ },
6847
+ "job_retries": {
6848
+ "description": "Number of retries performed so far",
6849
+ "readOnly": true,
6850
+ "type": "integer"
6851
+ },
6852
+ "job_retry": {
6853
+ "description": "Maximum number of retries allowed (from task definition)",
6854
+ "readOnly": true,
6855
+ "type": "integer"
6856
+ },
6857
+ "job_retry_after": {
6858
+ "description": "Seconds to wait before retry",
6859
+ "readOnly": true,
6860
+ "type": "integer"
6861
+ },
6862
+ "kwargs": {
6863
+ "description": "Keyword arguments passed to task",
6864
+ "readOnly": true
6865
+ },
6866
+ "queue_name": {
6867
+ "description": "Queue where task was executed",
6868
+ "readOnly": true,
6869
+ "type": "string"
6870
+ },
6871
+ "result": {
6872
+ "description": "Task result (JSON string)",
6873
+ "nullable": true,
6874
+ "readOnly": true,
6875
+ "type": "string"
6876
+ },
6877
+ "start_time": {
6878
+ "description": "When task execution started (from JobResult.start_time)",
6879
+ "format": "date-time",
6880
+ "nullable": true,
6881
+ "readOnly": true,
6882
+ "type": "string"
6883
+ },
6884
+ "status": {
6885
+ "description": "Current task status\n\n* `deferred` - Deferred\n* `queued` - Queued\n* `in_progress` - In Progress\n* `success` - Success\n* `failed` - Failed\n* `expired` - Expired\n* `canceled` - Canceled",
6886
+ "enum": [
6887
+ "deferred",
6888
+ "queued",
6889
+ "in_progress",
6890
+ "success",
6891
+ "failed",
6892
+ "expired",
6893
+ "canceled"
6894
+ ],
6895
+ "readOnly": true,
6896
+ "type": "string",
6897
+ "x-spec-enum-id": "a47ca6eb6d34f1d6"
6898
+ },
6899
+ "status_display": {
6900
+ "readOnly": true,
6901
+ "type": "string"
6902
+ },
6903
+ "success": {
6904
+ "description": "Whether task completed successfully (null = not finished)",
6905
+ "nullable": true,
6906
+ "readOnly": true,
6907
+ "type": "boolean"
6908
+ },
6909
+ "task_name": {
6910
+ "description": "Name of the task function",
6911
+ "readOnly": true,
6912
+ "type": "string"
6913
+ },
6914
+ "updated_at": {
6915
+ "description": "When TaskLog record was last updated",
6916
+ "format": "date-time",
6917
+ "readOnly": true,
6918
+ "type": "string"
6919
+ },
6920
+ "user": {
6921
+ "description": "User who triggered the task (if applicable)",
6922
+ "nullable": true,
6923
+ "readOnly": true,
6924
+ "type": "integer"
6925
+ },
6926
+ "user_display": {
6927
+ "description": "Get user display name.",
6928
+ "readOnly": true,
6929
+ "type": "string"
6930
+ },
6931
+ "worker_id": {
6932
+ "description": "ID of worker that processed the task",
6933
+ "nullable": true,
6934
+ "readOnly": true,
6935
+ "type": "string"
6936
+ }
6937
+ },
6938
+ "required": [
6939
+ "args",
6940
+ "created_at",
6941
+ "duration_ms",
6942
+ "duration_seconds",
6943
+ "enqueue_time",
6944
+ "error_message",
6945
+ "expire_time",
6946
+ "finish_time",
6947
+ "id",
6948
+ "job_id",
6949
+ "job_retries",
6950
+ "job_retry",
6951
+ "job_retry_after",
6952
+ "kwargs",
6953
+ "queue_name",
6954
+ "result",
6955
+ "start_time",
6956
+ "status",
6957
+ "status_display",
6958
+ "success",
6959
+ "task_name",
6960
+ "updated_at",
6961
+ "user",
6962
+ "user_display",
6963
+ "worker_id"
6964
+ ],
6965
+ "type": "object"
6966
+ },
6967
+ "TaskLogList": {
6968
+ "description": "Compact serializer for list views.\n\nMinimal fields for performance, matching ReArq Job list format.",
6969
+ "properties": {
6970
+ "duration_ms": {
6971
+ "description": "Task execution duration in milliseconds",
6972
+ "nullable": true,
6973
+ "readOnly": true,
6974
+ "type": "integer"
6975
+ },
6976
+ "enqueue_time": {
6977
+ "description": "When job was enqueued to ReArq (from Job.enqueue_time)",
6978
+ "format": "date-time",
6979
+ "readOnly": true,
6980
+ "type": "string"
6981
+ },
6982
+ "finish_time": {
6983
+ "description": "When task execution finished (from JobResult.finish_time)",
6984
+ "format": "date-time",
6985
+ "nullable": true,
6986
+ "readOnly": true,
6987
+ "type": "string"
6988
+ },
6989
+ "id": {
6990
+ "readOnly": true,
6991
+ "type": "integer"
6992
+ },
6993
+ "job_id": {
6994
+ "description": "Unique job identifier from ReArq",
6995
+ "readOnly": true,
6996
+ "type": "string"
6997
+ },
6998
+ "job_retries": {
6999
+ "description": "Number of retries performed so far",
7000
+ "readOnly": true,
7001
+ "type": "integer"
7002
+ },
7003
+ "queue_name": {
7004
+ "description": "Queue where task was executed",
7005
+ "readOnly": true,
7006
+ "type": "string"
7007
+ },
7008
+ "start_time": {
7009
+ "description": "When task execution started (from JobResult.start_time)",
7010
+ "format": "date-time",
7011
+ "nullable": true,
7012
+ "readOnly": true,
7013
+ "type": "string"
7014
+ },
7015
+ "status": {
7016
+ "description": "Current task status\n\n* `deferred` - Deferred\n* `queued` - Queued\n* `in_progress` - In Progress\n* `success` - Success\n* `failed` - Failed\n* `expired` - Expired\n* `canceled` - Canceled",
7017
+ "enum": [
7018
+ "deferred",
7019
+ "queued",
7020
+ "in_progress",
7021
+ "success",
7022
+ "failed",
7023
+ "expired",
7024
+ "canceled"
7025
+ ],
7026
+ "readOnly": true,
7027
+ "type": "string",
7028
+ "x-spec-enum-id": "a47ca6eb6d34f1d6"
7029
+ },
7030
+ "status_display": {
7031
+ "readOnly": true,
7032
+ "type": "string"
7033
+ },
7034
+ "success": {
7035
+ "description": "Whether task completed successfully (null = not finished)",
7036
+ "nullable": true,
7037
+ "readOnly": true,
7038
+ "type": "boolean"
7039
+ },
7040
+ "task_name": {
7041
+ "description": "Name of the task function",
7042
+ "readOnly": true,
7043
+ "type": "string"
7044
+ }
7045
+ },
7046
+ "required": [
7047
+ "duration_ms",
7048
+ "enqueue_time",
7049
+ "finish_time",
7050
+ "id",
7051
+ "job_id",
7052
+ "job_retries",
7053
+ "queue_name",
7054
+ "start_time",
7055
+ "status",
7056
+ "status_display",
7057
+ "success",
7058
+ "task_name"
7059
+ ],
7060
+ "type": "object"
7061
+ },
7062
+ "TaskLogStats": {
7063
+ "description": "Statistics serializer for task metrics.\n\nNot tied to a model - used for aggregated data.",
7064
+ "properties": {
7065
+ "avg_duration_ms": {
7066
+ "description": "Average duration in milliseconds",
7067
+ "type": "integer"
7068
+ },
7069
+ "avg_duration_seconds": {
7070
+ "description": "Average duration in seconds",
7071
+ "format": "double",
7072
+ "type": "number"
7073
+ },
7074
+ "failed": {
7075
+ "description": "Number of failed executions",
7076
+ "type": "integer"
7077
+ },
7078
+ "in_progress": {
7079
+ "description": "Number of tasks currently running",
7080
+ "type": "integer"
7081
+ },
7082
+ "period_hours": {
7083
+ "description": "Statistics period in hours",
7084
+ "type": "integer"
7085
+ },
7086
+ "success_rate": {
7087
+ "description": "Success rate percentage",
7088
+ "format": "double",
7089
+ "type": "number"
7090
+ },
7091
+ "successful": {
7092
+ "description": "Number of successful executions",
7093
+ "type": "integer"
7094
+ },
7095
+ "total": {
7096
+ "description": "Total number of task executions",
7097
+ "type": "integer"
7098
+ }
7099
+ },
7100
+ "required": [
7101
+ "avg_duration_ms",
7102
+ "avg_duration_seconds",
7103
+ "failed",
7104
+ "in_progress",
7105
+ "success_rate",
7106
+ "successful",
7107
+ "total"
7108
+ ],
7109
+ "type": "object"
7110
+ },
7111
+ "TestEmailRequest": {
7112
+ "description": "Simple serializer for test email.",
7113
+ "properties": {
7114
+ "email": {
7115
+ "format": "email",
7116
+ "minLength": 1,
7117
+ "type": "string"
7118
+ },
7119
+ "message": {
7120
+ "default": "This is a test email from Django CFG Newsletter.",
7121
+ "minLength": 1,
7122
+ "type": "string"
7123
+ },
7124
+ "subject": {
7125
+ "default": "Django CFG Newsletter Test",
7126
+ "maxLength": 255,
7127
+ "minLength": 1,
7128
+ "type": "string"
7129
+ }
7130
+ },
7131
+ "required": [
7132
+ "email"
7133
+ ],
7134
+ "type": "object"
7135
+ },
7136
+ "Ticket": {
7137
+ "properties": {
7138
+ "created_at": {
7139
+ "format": "date-time",
7140
+ "readOnly": true,
7141
+ "type": "string"
7142
+ },
7143
+ "status": {
7144
+ "description": "* `open` - Open\n* `waiting_for_user` - Waiting for User\n* `waiting_for_admin` - Waiting for Admin\n* `resolved` - Resolved\n* `closed` - Closed",
7145
+ "enum": [
7146
+ "open",
7147
+ "waiting_for_user",
7148
+ "waiting_for_admin",
7149
+ "resolved",
7150
+ "closed"
7151
+ ],
7152
+ "type": "string",
7153
+ "x-spec-enum-id": "c21b48fabf2398aa"
7154
+ },
7155
+ "subject": {
7156
+ "maxLength": 255,
7157
+ "type": "string"
7158
+ },
7159
+ "unanswered_messages_count": {
7160
+ "description": "Get count of unanswered messages for this specific ticket.",
7161
+ "readOnly": true,
7162
+ "type": "integer"
7163
+ },
7164
+ "user": {
6835
7165
  "type": "integer"
6836
7166
  },
6837
7167
  "uuid": {
@@ -7343,72 +7673,6 @@ export const OPENAPI_SCHEMA = {
7343
7673
  "vectorized_chunks"
7344
7674
  ],
7345
7675
  "type": "object"
7346
- },
7347
- "WorkerAction": {
7348
- "description": "Serializer for worker management actions.",
7349
- "properties": {
7350
- "action": {
7351
- "description": "Action to perform on workers\n\n* `start` - start\n* `stop` - stop\n* `restart` - restart",
7352
- "enum": [
7353
- "start",
7354
- "stop",
7355
- "restart"
7356
- ],
7357
- "type": "string",
7358
- "x-spec-enum-id": "5d2b5c38703636f1"
7359
- },
7360
- "processes": {
7361
- "default": 1,
7362
- "description": "Number of worker processes",
7363
- "maximum": 10,
7364
- "minimum": 1,
7365
- "type": "integer"
7366
- },
7367
- "threads": {
7368
- "default": 2,
7369
- "description": "Number of threads per process",
7370
- "maximum": 20,
7371
- "minimum": 1,
7372
- "type": "integer"
7373
- }
7374
- },
7375
- "required": [
7376
- "action"
7377
- ],
7378
- "type": "object"
7379
- },
7380
- "WorkerActionRequest": {
7381
- "description": "Serializer for worker management actions.",
7382
- "properties": {
7383
- "action": {
7384
- "description": "Action to perform on workers\n\n* `start` - start\n* `stop` - stop\n* `restart` - restart",
7385
- "enum": [
7386
- "start",
7387
- "stop",
7388
- "restart"
7389
- ],
7390
- "type": "string",
7391
- "x-spec-enum-id": "5d2b5c38703636f1"
7392
- },
7393
- "processes": {
7394
- "default": 1,
7395
- "description": "Number of worker processes",
7396
- "maximum": 10,
7397
- "minimum": 1,
7398
- "type": "integer"
7399
- },
7400
- "threads": {
7401
- "default": 2,
7402
- "description": "Number of threads per process",
7403
- "maximum": 20,
7404
- "minimum": 1,
7405
- "type": "integer"
7406
- }
7407
- },
7408
- "required": [
7409
- "action"
7410
- ],
7411
- "type": "object"
7412
7676
  }
7413
7677
  },
7414
7678
  "securitySchemes": {
@@ -14566,216 +14830,289 @@ export const OPENAPI_SCHEMA = {
14566
14830
  "x-async-capable": false
14567
14831
  }
14568
14832
  },
14569
- "/cfg/tasks/api/clear-queues/": {
14570
- "post": {
14571
- "description": "Clear all tasks from all Dramatiq queues.",
14572
- "operationId": "cfg_tasks_api_clear_queues_create",
14573
- "requestBody": {
14574
- "content": {
14575
- "application/json": {
14576
- "schema": {
14577
- "$ref": "#/components/schemas/APIResponseRequest"
14578
- }
14579
- },
14580
- "application/x-www-form-urlencoded": {
14581
- "schema": {
14582
- "$ref": "#/components/schemas/APIResponseRequest"
14583
- }
14584
- },
14585
- "multipart/form-data": {
14586
- "schema": {
14587
- "$ref": "#/components/schemas/APIResponseRequest"
14588
- }
14833
+ "/cfg/tasks/logs/": {
14834
+ "get": {
14835
+ "description": "ViewSet for TaskLog monitoring.\n\nProvides read-only access to task execution logs with filtering,\nsearching, and statistics.\n\nEndpoints:\n GET /api/tasks/logs/ - List all task logs\n GET /api/tasks/logs/{id}/ - Get task log details\n GET /api/tasks/logs/stats/ - Get aggregated statistics\n GET /api/tasks/logs/timeline/ - Get task execution timeline\n GET /api/tasks/logs/overview/ - Get summary overview",
14836
+ "operationId": "cfg_tasks_logs_list",
14837
+ "parameters": [
14838
+ {
14839
+ "in": "query",
14840
+ "name": "created_after",
14841
+ "schema": {
14842
+ "format": "date-time",
14843
+ "type": "string"
14589
14844
  }
14590
14845
  },
14591
- "required": true
14592
- },
14593
- "responses": {
14594
- "200": {
14595
- "content": {
14596
- "application/json": {
14597
- "schema": {
14598
- "$ref": "#/components/schemas/APIResponse"
14599
- }
14600
- }
14846
+ {
14847
+ "in": "query",
14848
+ "name": "created_before",
14849
+ "schema": {
14850
+ "format": "date-time",
14851
+ "type": "string"
14852
+ }
14853
+ },
14854
+ {
14855
+ "in": "query",
14856
+ "name": "duration_max",
14857
+ "schema": {
14858
+ "type": "integer"
14859
+ }
14860
+ },
14861
+ {
14862
+ "in": "query",
14863
+ "name": "duration_min",
14864
+ "schema": {
14865
+ "type": "integer"
14866
+ }
14867
+ },
14868
+ {
14869
+ "in": "query",
14870
+ "name": "end_time",
14871
+ "schema": {
14872
+ "format": "date-time",
14873
+ "type": "string"
14874
+ }
14875
+ },
14876
+ {
14877
+ "in": "query",
14878
+ "name": "enqueue_after",
14879
+ "schema": {
14880
+ "format": "date-time",
14881
+ "type": "string"
14882
+ }
14883
+ },
14884
+ {
14885
+ "in": "query",
14886
+ "name": "enqueue_before",
14887
+ "schema": {
14888
+ "format": "date-time",
14889
+ "type": "string"
14890
+ }
14891
+ },
14892
+ {
14893
+ "in": "query",
14894
+ "name": "finish_after",
14895
+ "schema": {
14896
+ "format": "date-time",
14897
+ "type": "string"
14898
+ }
14899
+ },
14900
+ {
14901
+ "in": "query",
14902
+ "name": "finish_before",
14903
+ "schema": {
14904
+ "format": "date-time",
14905
+ "type": "string"
14906
+ }
14907
+ },
14908
+ {
14909
+ "in": "query",
14910
+ "name": "has_error",
14911
+ "schema": {
14912
+ "type": "boolean"
14913
+ }
14914
+ },
14915
+ {
14916
+ "in": "query",
14917
+ "name": "is_completed",
14918
+ "schema": {
14919
+ "type": "boolean"
14920
+ }
14921
+ },
14922
+ {
14923
+ "in": "query",
14924
+ "name": "is_failed",
14925
+ "schema": {
14926
+ "type": "boolean"
14927
+ }
14928
+ },
14929
+ {
14930
+ "in": "query",
14931
+ "name": "is_successful",
14932
+ "schema": {
14933
+ "type": "boolean"
14934
+ }
14935
+ },
14936
+ {
14937
+ "in": "query",
14938
+ "name": "job_id",
14939
+ "schema": {
14940
+ "type": "string"
14941
+ }
14942
+ },
14943
+ {
14944
+ "in": "query",
14945
+ "name": "job_retries_max",
14946
+ "schema": {
14947
+ "type": "integer"
14948
+ }
14949
+ },
14950
+ {
14951
+ "in": "query",
14952
+ "name": "job_retries_min",
14953
+ "schema": {
14954
+ "type": "integer"
14955
+ }
14956
+ },
14957
+ {
14958
+ "description": "Which field to use when ordering the results.",
14959
+ "in": "query",
14960
+ "name": "ordering",
14961
+ "required": false,
14962
+ "schema": {
14963
+ "type": "string"
14964
+ }
14965
+ },
14966
+ {
14967
+ "description": "A page number within the paginated result set.",
14968
+ "in": "query",
14969
+ "name": "page",
14970
+ "required": false,
14971
+ "schema": {
14972
+ "type": "integer"
14973
+ }
14974
+ },
14975
+ {
14976
+ "description": "Number of results to return per page.",
14977
+ "in": "query",
14978
+ "name": "page_size",
14979
+ "required": false,
14980
+ "schema": {
14981
+ "type": "integer"
14982
+ }
14983
+ },
14984
+ {
14985
+ "in": "query",
14986
+ "name": "queue_name",
14987
+ "schema": {
14988
+ "type": "string"
14989
+ }
14990
+ },
14991
+ {
14992
+ "description": "Multiple values may be separated by commas.",
14993
+ "explode": false,
14994
+ "in": "query",
14995
+ "name": "queue_name_in",
14996
+ "schema": {
14997
+ "items": {
14998
+ "type": "string"
14999
+ },
15000
+ "type": "array"
14601
15001
  },
14602
- "description": ""
14603
- }
14604
- },
14605
- "security": [
15002
+ "style": "form"
15003
+ },
15004
+ {
15005
+ "description": "A search term.",
15006
+ "in": "query",
15007
+ "name": "search",
15008
+ "required": false,
15009
+ "schema": {
15010
+ "type": "string"
15011
+ }
15012
+ },
15013
+ {
15014
+ "in": "query",
15015
+ "name": "start_after",
15016
+ "schema": {
15017
+ "format": "date-time",
15018
+ "type": "string"
15019
+ }
15020
+ },
14606
15021
  {
14607
- "cookieAuth": []
15022
+ "in": "query",
15023
+ "name": "start_before",
15024
+ "schema": {
15025
+ "format": "date-time",
15026
+ "type": "string"
15027
+ }
14608
15028
  },
14609
15029
  {
14610
- "basicAuth": []
14611
- }
14612
- ],
14613
- "tags": [
14614
- "tasks"
14615
- ],
14616
- "x-async-capable": false
14617
- }
14618
- },
14619
- "/cfg/tasks/api/clear/": {
14620
- "post": {
14621
- "description": "Clear all test data from Redis.",
14622
- "operationId": "cfg_tasks_api_clear_create",
14623
- "requestBody": {
14624
- "content": {
14625
- "application/json": {
14626
- "schema": {
14627
- "$ref": "#/components/schemas/APIResponseRequest"
14628
- }
14629
- },
14630
- "application/x-www-form-urlencoded": {
14631
- "schema": {
14632
- "$ref": "#/components/schemas/APIResponseRequest"
14633
- }
14634
- },
14635
- "multipart/form-data": {
14636
- "schema": {
14637
- "$ref": "#/components/schemas/APIResponseRequest"
14638
- }
15030
+ "in": "query",
15031
+ "name": "start_time",
15032
+ "schema": {
15033
+ "format": "date-time",
15034
+ "type": "string"
14639
15035
  }
14640
15036
  },
14641
- "required": true
14642
- },
14643
- "responses": {
14644
- "200": {
14645
- "content": {
14646
- "application/json": {
14647
- "schema": {
14648
- "$ref": "#/components/schemas/APIResponse"
14649
- }
14650
- }
14651
- },
14652
- "description": ""
14653
- }
14654
- },
14655
- "security": [
14656
15037
  {
14657
- "cookieAuth": []
15038
+ "in": "query",
15039
+ "name": "status",
15040
+ "schema": {
15041
+ "type": "string"
15042
+ }
14658
15043
  },
14659
15044
  {
14660
- "basicAuth": []
14661
- }
14662
- ],
14663
- "tags": [
14664
- "tasks"
14665
- ],
14666
- "x-async-capable": false
14667
- }
14668
- },
14669
- "/cfg/tasks/api/purge-failed/": {
14670
- "post": {
14671
- "description": "Purge all failed tasks from queues.",
14672
- "operationId": "cfg_tasks_api_purge_failed_create",
14673
- "requestBody": {
14674
- "content": {
14675
- "application/json": {
14676
- "schema": {
14677
- "$ref": "#/components/schemas/APIResponseRequest"
14678
- }
14679
- },
14680
- "application/x-www-form-urlencoded": {
14681
- "schema": {
14682
- "$ref": "#/components/schemas/APIResponseRequest"
14683
- }
15045
+ "description": "Multiple values may be separated by commas.",
15046
+ "explode": false,
15047
+ "in": "query",
15048
+ "name": "status_in",
15049
+ "schema": {
15050
+ "items": {
15051
+ "enum": [
15052
+ "canceled",
15053
+ "deferred",
15054
+ "expired",
15055
+ "failed",
15056
+ "in_progress",
15057
+ "queued",
15058
+ "success"
15059
+ ],
15060
+ "type": "string",
15061
+ "x-spec-enum-id": "a47ca6eb6d34f1d6"
15062
+ },
15063
+ "type": "array"
14684
15064
  },
14685
- "multipart/form-data": {
14686
- "schema": {
14687
- "$ref": "#/components/schemas/APIResponseRequest"
14688
- }
15065
+ "style": "form"
15066
+ },
15067
+ {
15068
+ "in": "query",
15069
+ "name": "success",
15070
+ "schema": {
15071
+ "type": "boolean"
14689
15072
  }
14690
15073
  },
14691
- "required": true
14692
- },
14693
- "responses": {
14694
- "200": {
14695
- "content": {
14696
- "application/json": {
14697
- "schema": {
14698
- "$ref": "#/components/schemas/APIResponse"
14699
- }
14700
- }
14701
- },
14702
- "description": ""
14703
- }
14704
- },
14705
- "security": [
14706
15074
  {
14707
- "cookieAuth": []
15075
+ "in": "query",
15076
+ "name": "task",
15077
+ "schema": {
15078
+ "type": "string"
15079
+ }
14708
15080
  },
14709
15081
  {
14710
- "basicAuth": []
14711
- }
14712
- ],
14713
- "tags": [
14714
- "tasks"
14715
- ],
14716
- "x-async-capable": false
14717
- }
14718
- },
14719
- "/cfg/tasks/api/queues/manage/": {
14720
- "post": {
14721
- "description": "Manage queue operations (clear, purge, etc.).",
14722
- "operationId": "cfg_tasks_api_queues_manage_create",
14723
- "requestBody": {
14724
- "content": {
14725
- "application/json": {
14726
- "schema": {
14727
- "$ref": "#/components/schemas/QueueActionRequest"
14728
- }
14729
- },
14730
- "application/x-www-form-urlencoded": {
14731
- "schema": {
14732
- "$ref": "#/components/schemas/QueueActionRequest"
14733
- }
14734
- },
14735
- "multipart/form-data": {
14736
- "schema": {
14737
- "$ref": "#/components/schemas/QueueActionRequest"
14738
- }
15082
+ "in": "query",
15083
+ "name": "task_name",
15084
+ "schema": {
15085
+ "type": "string"
14739
15086
  }
14740
15087
  },
14741
- "required": true
14742
- },
14743
- "responses": {
14744
- "200": {
14745
- "content": {
14746
- "application/json": {
14747
- "schema": {
14748
- "$ref": "#/components/schemas/QueueAction"
14749
- }
14750
- }
14751
- },
14752
- "description": ""
14753
- }
14754
- },
14755
- "security": [
14756
15088
  {
14757
- "cookieAuth": []
15089
+ "in": "query",
15090
+ "name": "task_name_exact",
15091
+ "schema": {
15092
+ "type": "string"
15093
+ }
14758
15094
  },
14759
15095
  {
14760
- "basicAuth": []
15096
+ "in": "query",
15097
+ "name": "worker",
15098
+ "schema": {
15099
+ "type": "string"
15100
+ }
15101
+ },
15102
+ {
15103
+ "in": "query",
15104
+ "name": "worker_id",
15105
+ "schema": {
15106
+ "type": "string"
15107
+ }
14761
15108
  }
14762
15109
  ],
14763
- "tags": [
14764
- "tasks"
14765
- ],
14766
- "x-async-capable": false
14767
- }
14768
- },
14769
- "/cfg/tasks/api/queues/status/": {
14770
- "get": {
14771
- "description": "Get current status of all queues.",
14772
- "operationId": "cfg_tasks_api_queues_status_retrieve",
14773
15110
  "responses": {
14774
15111
  "200": {
14775
15112
  "content": {
14776
15113
  "application/json": {
14777
15114
  "schema": {
14778
- "$ref": "#/components/schemas/QueueStatus"
15115
+ "$ref": "#/components/schemas/PaginatedTaskLogListList"
14779
15116
  }
14780
15117
  }
14781
15118
  },
@@ -14784,11 +15121,9 @@ export const OPENAPI_SCHEMA = {
14784
15121
  },
14785
15122
  "security": [
14786
15123
  {
14787
- "cookieAuth": []
15124
+ "jwtAuth": []
14788
15125
  },
14789
- {
14790
- "basicAuth": []
14791
- }
15126
+ {}
14792
15127
  ],
14793
15128
  "tags": [
14794
15129
  "tasks"
@@ -14796,36 +15131,16 @@ export const OPENAPI_SCHEMA = {
14796
15131
  "x-async-capable": false
14797
15132
  }
14798
15133
  },
14799
- "/cfg/tasks/api/simulate/": {
14800
- "post": {
14801
- "description": "Simulate test data for dashboard testing.",
14802
- "operationId": "cfg_tasks_api_simulate_create",
14803
- "requestBody": {
14804
- "content": {
14805
- "application/json": {
14806
- "schema": {
14807
- "$ref": "#/components/schemas/APIResponseRequest"
14808
- }
14809
- },
14810
- "application/x-www-form-urlencoded": {
14811
- "schema": {
14812
- "$ref": "#/components/schemas/APIResponseRequest"
14813
- }
14814
- },
14815
- "multipart/form-data": {
14816
- "schema": {
14817
- "$ref": "#/components/schemas/APIResponseRequest"
14818
- }
14819
- }
14820
- },
14821
- "required": true
14822
- },
15134
+ "/cfg/tasks/logs/overview/": {
15135
+ "get": {
15136
+ "description": "Get summary overview of task system.\n\nReturns:\n {\n \"total_tasks\": 1500,\n \"active_queues\": [\"default\", \"high\", \"knowledge\"],\n \"recent_failures\": 5,\n \"tasks_by_queue\": {\n \"default\": 800,\n \"high\": 500,\n \"knowledge\": 200\n },\n \"tasks_by_status\": {\n \"completed\": 1450,\n \"failed\": 45,\n \"in_progress\": 5\n }\n }",
15137
+ "operationId": "cfg_tasks_logs_overview_retrieve",
14823
15138
  "responses": {
14824
15139
  "200": {
14825
15140
  "content": {
14826
15141
  "application/json": {
14827
15142
  "schema": {
14828
- "$ref": "#/components/schemas/APIResponse"
15143
+ "$ref": "#/components/schemas/TaskLog"
14829
15144
  }
14830
15145
  }
14831
15146
  },
@@ -14834,11 +15149,9 @@ export const OPENAPI_SCHEMA = {
14834
15149
  },
14835
15150
  "security": [
14836
15151
  {
14837
- "cookieAuth": []
15152
+ "jwtAuth": []
14838
15153
  },
14839
- {
14840
- "basicAuth": []
14841
- }
15154
+ {}
14842
15155
  ],
14843
15156
  "tags": [
14844
15157
  "tasks"
@@ -14846,16 +15159,16 @@ export const OPENAPI_SCHEMA = {
14846
15159
  "x-async-capable": false
14847
15160
  }
14848
15161
  },
14849
- "/cfg/tasks/api/tasks/list/": {
15162
+ "/cfg/tasks/logs/stats/": {
14850
15163
  "get": {
14851
- "description": "Get paginated task list with filtering.",
14852
- "operationId": "cfg_tasks_api_tasks_list_retrieve",
15164
+ "description": "Get aggregated task statistics.\n\nQuery Parameters:\n period_hours (int): Statistics period in hours (default: 24)\n task_name (str): Filter by specific task name\n\nReturns:\n {\n \"total\": 150,\n \"successful\": 145,\n \"failed\": 5,\n \"in_progress\": 2,\n \"success_rate\": 96.67,\n \"avg_duration_ms\": 1250,\n \"avg_duration_seconds\": 1.25,\n \"period_hours\": 24\n }",
15165
+ "operationId": "cfg_tasks_logs_stats_retrieve",
14853
15166
  "responses": {
14854
15167
  "200": {
14855
15168
  "content": {
14856
15169
  "application/json": {
14857
15170
  "schema": {
14858
- "$ref": "#/components/schemas/APIResponse"
15171
+ "$ref": "#/components/schemas/TaskLogStats"
14859
15172
  }
14860
15173
  }
14861
15174
  },
@@ -14864,11 +15177,9 @@ export const OPENAPI_SCHEMA = {
14864
15177
  },
14865
15178
  "security": [
14866
15179
  {
14867
- "cookieAuth": []
15180
+ "jwtAuth": []
14868
15181
  },
14869
- {
14870
- "basicAuth": []
14871
- }
15182
+ {}
14872
15183
  ],
14873
15184
  "tags": [
14874
15185
  "tasks"
@@ -14876,16 +15187,16 @@ export const OPENAPI_SCHEMA = {
14876
15187
  "x-async-capable": false
14877
15188
  }
14878
15189
  },
14879
- "/cfg/tasks/api/tasks/stats/": {
15190
+ "/cfg/tasks/logs/timeline/": {
14880
15191
  "get": {
14881
- "description": "Get task execution statistics.",
14882
- "operationId": "cfg_tasks_api_tasks_stats_retrieve",
15192
+ "description": "Get task execution timeline grouped by time intervals.\n\nQuery Parameters:\n period_hours (int): Timeline period in hours (default: 24)\n interval (str): Grouping interval - \u0027hour\u0027, \u0027day\u0027 (default: \u0027hour\u0027)\n task_name (str): Filter by specific task name\n\nReturns:\n [\n {\n \"timestamp\": \"2025-10-30T10:00:00Z\",\n \"total\": 15,\n \"successful\": 14,\n \"failed\": 1,\n \"avg_duration_ms\": 1200\n },\n ...\n ]",
15193
+ "operationId": "cfg_tasks_logs_timeline_retrieve",
14883
15194
  "responses": {
14884
15195
  "200": {
14885
15196
  "content": {
14886
15197
  "application/json": {
14887
15198
  "schema": {
14888
- "$ref": "#/components/schemas/TaskStatistics"
15199
+ "$ref": "#/components/schemas/TaskLog"
14889
15200
  }
14890
15201
  }
14891
15202
  },
@@ -14894,11 +15205,9 @@ export const OPENAPI_SCHEMA = {
14894
15205
  },
14895
15206
  "security": [
14896
15207
  {
14897
- "cookieAuth": []
15208
+ "jwtAuth": []
14898
15209
  },
14899
- {
14900
- "basicAuth": []
14901
- }
15210
+ {}
14902
15211
  ],
14903
15212
  "tags": [
14904
15213
  "tasks"
@@ -14906,16 +15215,27 @@ export const OPENAPI_SCHEMA = {
14906
15215
  "x-async-capable": false
14907
15216
  }
14908
15217
  },
14909
- "/cfg/tasks/api/workers/list/": {
15218
+ "/cfg/tasks/logs/{id}/": {
14910
15219
  "get": {
14911
- "description": "Get detailed list of workers.",
14912
- "operationId": "cfg_tasks_api_workers_list_retrieve",
15220
+ "description": "ViewSet for TaskLog monitoring.\n\nProvides read-only access to task execution logs with filtering,\nsearching, and statistics.\n\nEndpoints:\n GET /api/tasks/logs/ - List all task logs\n GET /api/tasks/logs/{id}/ - Get task log details\n GET /api/tasks/logs/stats/ - Get aggregated statistics\n GET /api/tasks/logs/timeline/ - Get task execution timeline\n GET /api/tasks/logs/overview/ - Get summary overview",
15221
+ "operationId": "cfg_tasks_logs_retrieve",
15222
+ "parameters": [
15223
+ {
15224
+ "description": "A unique integer value identifying this Task Log.",
15225
+ "in": "path",
15226
+ "name": "id",
15227
+ "required": true,
15228
+ "schema": {
15229
+ "type": "integer"
15230
+ }
15231
+ }
15232
+ ],
14913
15233
  "responses": {
14914
15234
  "200": {
14915
15235
  "content": {
14916
15236
  "application/json": {
14917
15237
  "schema": {
14918
- "$ref": "#/components/schemas/APIResponse"
15238
+ "$ref": "#/components/schemas/TaskLogDetail"
14919
15239
  }
14920
15240
  }
14921
15241
  },
@@ -14924,11 +15244,9 @@ export const OPENAPI_SCHEMA = {
14924
15244
  },
14925
15245
  "security": [
14926
15246
  {
14927
- "cookieAuth": []
15247
+ "jwtAuth": []
14928
15248
  },
14929
- {
14930
- "basicAuth": []
14931
- }
15249
+ {}
14932
15250
  ],
14933
15251
  "tags": [
14934
15252
  "tasks"
@@ -14936,36 +15254,27 @@ export const OPENAPI_SCHEMA = {
14936
15254
  "x-async-capable": false
14937
15255
  }
14938
15256
  },
14939
- "/cfg/tasks/api/workers/manage/": {
14940
- "post": {
14941
- "description": "Manage worker operations.",
14942
- "operationId": "cfg_tasks_api_workers_manage_create",
14943
- "requestBody": {
14944
- "content": {
14945
- "application/json": {
14946
- "schema": {
14947
- "$ref": "#/components/schemas/WorkerActionRequest"
14948
- }
14949
- },
14950
- "application/x-www-form-urlencoded": {
14951
- "schema": {
14952
- "$ref": "#/components/schemas/WorkerActionRequest"
14953
- }
14954
- },
14955
- "multipart/form-data": {
14956
- "schema": {
14957
- "$ref": "#/components/schemas/WorkerActionRequest"
14958
- }
15257
+ "/cfg/tasks/logs/{id}/related/": {
15258
+ "get": {
15259
+ "description": "Get related task logs (same job_id or task_name).\n\nReturns tasks that share the same job_id or are retries of the same task.",
15260
+ "operationId": "cfg_tasks_logs_related_retrieve",
15261
+ "parameters": [
15262
+ {
15263
+ "description": "A unique integer value identifying this Task Log.",
15264
+ "in": "path",
15265
+ "name": "id",
15266
+ "required": true,
15267
+ "schema": {
15268
+ "type": "integer"
14959
15269
  }
14960
- },
14961
- "required": true
14962
- },
15270
+ }
15271
+ ],
14963
15272
  "responses": {
14964
15273
  "200": {
14965
15274
  "content": {
14966
15275
  "application/json": {
14967
15276
  "schema": {
14968
- "$ref": "#/components/schemas/WorkerAction"
15277
+ "$ref": "#/components/schemas/TaskLog"
14969
15278
  }
14970
15279
  }
14971
15280
  },
@@ -14974,11 +15283,9 @@ export const OPENAPI_SCHEMA = {
14974
15283
  },
14975
15284
  "security": [
14976
15285
  {
14977
- "cookieAuth": []
15286
+ "jwtAuth": []
14978
15287
  },
14979
- {
14980
- "basicAuth": []
14981
- }
15288
+ {}
14982
15289
  ],
14983
15290
  "tags": [
14984
15291
  "tasks"