@datum-cloud/activity-ui 0.1.0

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 (184) hide show
  1. package/README.md +334 -0
  2. package/dist/api/client.d.ts +264 -0
  3. package/dist/api/client.d.ts.map +1 -0
  4. package/dist/components/ActionMultiSelect.d.ts +25 -0
  5. package/dist/components/ActionMultiSelect.d.ts.map +1 -0
  6. package/dist/components/ActionToggle.d.ts +16 -0
  7. package/dist/components/ActionToggle.d.ts.map +1 -0
  8. package/dist/components/ActivityExpandedDetails.d.ts +21 -0
  9. package/dist/components/ActivityExpandedDetails.d.ts.map +1 -0
  10. package/dist/components/ActivityFeed.d.ts +60 -0
  11. package/dist/components/ActivityFeed.d.ts.map +1 -0
  12. package/dist/components/ActivityFeedFilters.d.ts +26 -0
  13. package/dist/components/ActivityFeedFilters.d.ts.map +1 -0
  14. package/dist/components/ActivityFeedItem.d.ts +39 -0
  15. package/dist/components/ActivityFeedItem.d.ts.map +1 -0
  16. package/dist/components/ActivityFeedItemSkeleton.d.ts +11 -0
  17. package/dist/components/ActivityFeedItemSkeleton.d.ts.map +1 -0
  18. package/dist/components/ActivityFeedSummary.d.ts +23 -0
  19. package/dist/components/ActivityFeedSummary.d.ts.map +1 -0
  20. package/dist/components/ApiErrorAlert.d.ts +10 -0
  21. package/dist/components/ApiErrorAlert.d.ts.map +1 -0
  22. package/dist/components/AuditEventViewer.d.ts +14 -0
  23. package/dist/components/AuditEventViewer.d.ts.map +1 -0
  24. package/dist/components/AuditLogExpandedDetails.d.ts +20 -0
  25. package/dist/components/AuditLogExpandedDetails.d.ts.map +1 -0
  26. package/dist/components/AuditLogFeedItem.d.ts +22 -0
  27. package/dist/components/AuditLogFeedItem.d.ts.map +1 -0
  28. package/dist/components/AuditLogFilters.d.ts +50 -0
  29. package/dist/components/AuditLogFilters.d.ts.map +1 -0
  30. package/dist/components/AuditLogQueryComponent.d.ts +18 -0
  31. package/dist/components/AuditLogQueryComponent.d.ts.map +1 -0
  32. package/dist/components/CelEditor.d.ts +31 -0
  33. package/dist/components/CelEditor.d.ts.map +1 -0
  34. package/dist/components/ChangeSourceToggle.d.ts +17 -0
  35. package/dist/components/ChangeSourceToggle.d.ts.map +1 -0
  36. package/dist/components/DateTimeRangePicker.d.ts +15 -0
  37. package/dist/components/DateTimeRangePicker.d.ts.map +1 -0
  38. package/dist/components/EventExpandedDetails.d.ts +17 -0
  39. package/dist/components/EventExpandedDetails.d.ts.map +1 -0
  40. package/dist/components/EventFeedItem.d.ts +29 -0
  41. package/dist/components/EventFeedItem.d.ts.map +1 -0
  42. package/dist/components/EventFeedItemSkeleton.d.ts +11 -0
  43. package/dist/components/EventFeedItemSkeleton.d.ts.map +1 -0
  44. package/dist/components/EventTypeToggle.d.ts +17 -0
  45. package/dist/components/EventTypeToggle.d.ts.map +1 -0
  46. package/dist/components/EventsFeed.d.ts +51 -0
  47. package/dist/components/EventsFeed.d.ts.map +1 -0
  48. package/dist/components/EventsFeedFilters.d.ts +28 -0
  49. package/dist/components/EventsFeedFilters.d.ts.map +1 -0
  50. package/dist/components/FilterBuilder.d.ts +12 -0
  51. package/dist/components/FilterBuilder.d.ts.map +1 -0
  52. package/dist/components/FilterBuilderWithAutocomplete.d.ts +12 -0
  53. package/dist/components/FilterBuilderWithAutocomplete.d.ts.map +1 -0
  54. package/dist/components/PolicyActivityView.d.ts +25 -0
  55. package/dist/components/PolicyActivityView.d.ts.map +1 -0
  56. package/dist/components/PolicyActivityViewSkeleton.d.ts +9 -0
  57. package/dist/components/PolicyActivityViewSkeleton.d.ts.map +1 -0
  58. package/dist/components/PolicyDetailView.d.ts +22 -0
  59. package/dist/components/PolicyDetailView.d.ts.map +1 -0
  60. package/dist/components/PolicyEditView.d.ts +22 -0
  61. package/dist/components/PolicyEditView.d.ts.map +1 -0
  62. package/dist/components/PolicyEditor.d.ts +24 -0
  63. package/dist/components/PolicyEditor.d.ts.map +1 -0
  64. package/dist/components/PolicyList.d.ts +23 -0
  65. package/dist/components/PolicyList.d.ts.map +1 -0
  66. package/dist/components/PolicyPreviewPanel.d.ts +23 -0
  67. package/dist/components/PolicyPreviewPanel.d.ts.map +1 -0
  68. package/dist/components/PolicyPreviewResult.d.ts +17 -0
  69. package/dist/components/PolicyPreviewResult.d.ts.map +1 -0
  70. package/dist/components/PolicyResourceForm.d.ts +19 -0
  71. package/dist/components/PolicyResourceForm.d.ts.map +1 -0
  72. package/dist/components/PolicyRuleEditor.d.ts +22 -0
  73. package/dist/components/PolicyRuleEditor.d.ts.map +1 -0
  74. package/dist/components/PolicyRuleEditorDialog.d.ts +30 -0
  75. package/dist/components/PolicyRuleEditorDialog.d.ts.map +1 -0
  76. package/dist/components/PolicyRuleList.d.ts +26 -0
  77. package/dist/components/PolicyRuleList.d.ts.map +1 -0
  78. package/dist/components/PolicyRuleListItem.d.ts +29 -0
  79. package/dist/components/PolicyRuleListItem.d.ts.map +1 -0
  80. package/dist/components/ReindexJobCreate.d.ts +21 -0
  81. package/dist/components/ReindexJobCreate.d.ts.map +1 -0
  82. package/dist/components/ReindexJobDetailView.d.ts +21 -0
  83. package/dist/components/ReindexJobDetailView.d.ts.map +1 -0
  84. package/dist/components/ReindexJobDialog.d.ts +21 -0
  85. package/dist/components/ReindexJobDialog.d.ts.map +1 -0
  86. package/dist/components/ReindexJobList.d.ts +21 -0
  87. package/dist/components/ReindexJobList.d.ts.map +1 -0
  88. package/dist/components/ResourceHistoryView.d.ts +54 -0
  89. package/dist/components/ResourceHistoryView.d.ts.map +1 -0
  90. package/dist/components/RulePreviewPanel.d.ts +23 -0
  91. package/dist/components/RulePreviewPanel.d.ts.map +1 -0
  92. package/dist/components/SampleInputTemplates.d.ts +26 -0
  93. package/dist/components/SampleInputTemplates.d.ts.map +1 -0
  94. package/dist/components/SimpleQueryBuilder.d.ts +12 -0
  95. package/dist/components/SimpleQueryBuilder.d.ts.map +1 -0
  96. package/dist/components/TenantBadge.d.ts +17 -0
  97. package/dist/components/TenantBadge.d.ts.map +1 -0
  98. package/dist/components/UserSelect.d.ts +24 -0
  99. package/dist/components/UserSelect.d.ts.map +1 -0
  100. package/dist/components/VerbToggle.d.ts +16 -0
  101. package/dist/components/VerbToggle.d.ts.map +1 -0
  102. package/dist/components/ui/add-filter-dropdown.d.ts +26 -0
  103. package/dist/components/ui/add-filter-dropdown.d.ts.map +1 -0
  104. package/dist/components/ui/alert.d.ts +9 -0
  105. package/dist/components/ui/alert.d.ts.map +1 -0
  106. package/dist/components/ui/badge.d.ts +10 -0
  107. package/dist/components/ui/badge.d.ts.map +1 -0
  108. package/dist/components/ui/button.d.ts +12 -0
  109. package/dist/components/ui/button.d.ts.map +1 -0
  110. package/dist/components/ui/card.d.ts +9 -0
  111. package/dist/components/ui/card.d.ts.map +1 -0
  112. package/dist/components/ui/checkbox.d.ts +5 -0
  113. package/dist/components/ui/checkbox.d.ts.map +1 -0
  114. package/dist/components/ui/combobox.d.ts +27 -0
  115. package/dist/components/ui/combobox.d.ts.map +1 -0
  116. package/dist/components/ui/dialog.d.ts +20 -0
  117. package/dist/components/ui/dialog.d.ts.map +1 -0
  118. package/dist/components/ui/filter-chip.d.ts +37 -0
  119. package/dist/components/ui/filter-chip.d.ts.map +1 -0
  120. package/dist/components/ui/input.d.ts +6 -0
  121. package/dist/components/ui/input.d.ts.map +1 -0
  122. package/dist/components/ui/label.d.ts +8 -0
  123. package/dist/components/ui/label.d.ts.map +1 -0
  124. package/dist/components/ui/multi-combobox.d.ts +24 -0
  125. package/dist/components/ui/multi-combobox.d.ts.map +1 -0
  126. package/dist/components/ui/select.d.ts +14 -0
  127. package/dist/components/ui/select.d.ts.map +1 -0
  128. package/dist/components/ui/separator.d.ts +5 -0
  129. package/dist/components/ui/separator.d.ts.map +1 -0
  130. package/dist/components/ui/sheet.d.ts +23 -0
  131. package/dist/components/ui/sheet.d.ts.map +1 -0
  132. package/dist/components/ui/skeleton.d.ts +3 -0
  133. package/dist/components/ui/skeleton.d.ts.map +1 -0
  134. package/dist/components/ui/tabs.d.ts +8 -0
  135. package/dist/components/ui/tabs.d.ts.map +1 -0
  136. package/dist/components/ui/textarea.d.ts +6 -0
  137. package/dist/components/ui/textarea.d.ts.map +1 -0
  138. package/dist/components/ui/time-range-dropdown.d.ts +29 -0
  139. package/dist/components/ui/time-range-dropdown.d.ts.map +1 -0
  140. package/dist/components/ui/tooltip.d.ts +8 -0
  141. package/dist/components/ui/tooltip.d.ts.map +1 -0
  142. package/dist/hooks/useActivityFeed.d.ts +101 -0
  143. package/dist/hooks/useActivityFeed.d.ts.map +1 -0
  144. package/dist/hooks/useAuditLogFacets.d.ts +33 -0
  145. package/dist/hooks/useAuditLogFacets.d.ts.map +1 -0
  146. package/dist/hooks/useAuditLogQuery.d.ts +21 -0
  147. package/dist/hooks/useAuditLogQuery.d.ts.map +1 -0
  148. package/dist/hooks/useEventFacets.d.ts +30 -0
  149. package/dist/hooks/useEventFacets.d.ts.map +1 -0
  150. package/dist/hooks/useEventsFeed.d.ts +93 -0
  151. package/dist/hooks/useEventsFeed.d.ts.map +1 -0
  152. package/dist/hooks/useFacets.d.ts +29 -0
  153. package/dist/hooks/useFacets.d.ts.map +1 -0
  154. package/dist/hooks/usePolicyEditor.d.ts +71 -0
  155. package/dist/hooks/usePolicyEditor.d.ts.map +1 -0
  156. package/dist/hooks/usePolicyList.d.ts +35 -0
  157. package/dist/hooks/usePolicyList.d.ts.map +1 -0
  158. package/dist/hooks/usePolicyPreview.d.ts +72 -0
  159. package/dist/hooks/usePolicyPreview.d.ts.map +1 -0
  160. package/dist/hooks/useReindexJobs.d.ts +37 -0
  161. package/dist/hooks/useReindexJobs.d.ts.map +1 -0
  162. package/dist/index.d.ts +150 -0
  163. package/dist/index.d.ts.map +1 -0
  164. package/dist/index.esm.js +16224 -0
  165. package/dist/index.esm.js.map +1 -0
  166. package/dist/index.js +16377 -0
  167. package/dist/index.js.map +1 -0
  168. package/dist/lib/errors.d.ts +50 -0
  169. package/dist/lib/errors.d.ts.map +1 -0
  170. package/dist/lib/extractFieldPaths.d.ts +33 -0
  171. package/dist/lib/extractFieldPaths.d.ts.map +1 -0
  172. package/dist/lib/utils.d.ts +3 -0
  173. package/dist/lib/utils.d.ts.map +1 -0
  174. package/dist/types/activity.d.ts +366 -0
  175. package/dist/types/activity.d.ts.map +1 -0
  176. package/dist/types/index.d.ts +117 -0
  177. package/dist/types/index.d.ts.map +1 -0
  178. package/dist/types/k8s-event.d.ts +224 -0
  179. package/dist/types/k8s-event.d.ts.map +1 -0
  180. package/dist/types/policy.d.ts +333 -0
  181. package/dist/types/policy.d.ts.map +1 -0
  182. package/dist/types/reindex.d.ts +102 -0
  183. package/dist/types/reindex.d.ts.map +1 -0
  184. package/package.json +87 -0
@@ -0,0 +1,50 @@
1
+ export interface ApiErrorResponse {
2
+ requestId?: string;
3
+ code?: string;
4
+ error?: string;
5
+ reason?: string;
6
+ message?: string;
7
+ path?: string;
8
+ }
9
+ export declare class ApiError extends Error {
10
+ statusCode: number;
11
+ code?: string | undefined;
12
+ requestId?: string | undefined;
13
+ path?: string | undefined;
14
+ constructor(statusCode: number, code?: string | undefined, message?: string, requestId?: string | undefined, path?: string | undefined);
15
+ get friendlyTitle(): string;
16
+ get friendlyMessage(): string;
17
+ get suggestion(): string | null;
18
+ get severity(): 'warning' | 'error';
19
+ }
20
+ /**
21
+ * Represents a network error (connection refused, DNS failure, etc.)
22
+ */
23
+ export declare class NetworkError extends Error {
24
+ constructor(message?: string);
25
+ get friendlyTitle(): string;
26
+ get friendlyMessage(): string;
27
+ get suggestion(): string | null;
28
+ get severity(): 'warning' | 'error';
29
+ }
30
+ export declare function parseApiError(status: number, body: string): ApiError;
31
+ /**
32
+ * Represents a watch stream error (connection lost, stream closed, etc.)
33
+ */
34
+ export declare class StreamError extends Error {
35
+ cause?: Error | undefined;
36
+ constructor(message?: string, cause?: Error | undefined);
37
+ get friendlyTitle(): string;
38
+ get friendlyMessage(): string;
39
+ get suggestion(): string | null;
40
+ get severity(): 'warning' | 'error';
41
+ }
42
+ /**
43
+ * Default error formatter that uses the friendly error properties if available,
44
+ * otherwise falls back to the error message.
45
+ */
46
+ export declare function defaultErrorFormatter(error: Error): {
47
+ message: string;
48
+ technical?: string;
49
+ };
50
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,QAAS,SAAQ,KAAK;IAExB,UAAU,EAAE,MAAM;IAClB,IAAI,CAAC,EAAE,MAAM;IAEb,SAAS,CAAC,EAAE,MAAM;IAClB,IAAI,CAAC,EAAE,MAAM;gBAJb,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,YAAA,EACpB,OAAO,CAAC,EAAE,MAAM,EACT,SAAS,CAAC,EAAE,MAAM,YAAA,EAClB,IAAI,CAAC,EAAE,MAAM,YAAA;IAMtB,IAAI,aAAa,IAAI,MAAM,CAuB1B;IAED,IAAI,eAAe,IAAI,MAAM,CAuB5B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,IAAI,QAAQ,IAAI,SAAS,GAAG,OAAO,CAWlC;CACF;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,CAAC,EAAE,MAAM;IAK5B,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,IAAI,QAAQ,IAAI,SAAS,GAAG,OAAO,CAElC;CACF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAapE;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACC,KAAK,CAAC,EAAE,KAAK;gBAAtC,OAAO,CAAC,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,KAAK,YAAA;IAKlD,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,IAAI,QAAQ,IAAI,SAAS,GAAG,OAAO,CAElC;CACF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAqB3F"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Utility for extracting field paths from JSON objects
3
+ * Used to populate autocomplete suggestions in CEL editors
4
+ */
5
+ /**
6
+ * Recursively extract all field paths from a JSON object
7
+ *
8
+ * @param obj - The object to extract paths from
9
+ * @param prefix - Current path prefix (for recursion)
10
+ * @param maxDepth - Maximum nesting depth to traverse (default: 5)
11
+ * @returns Array of CEL-compatible field paths (using bracket notation for special keys)
12
+ *
13
+ * @example
14
+ * extractFieldPaths({ objectRef: { name: "foo" }, annotations: { "k8s.io/key": "val" } })
15
+ * // Returns: ["objectRef.name", 'annotations["k8s.io/key"]']
16
+ */
17
+ export declare function extractFieldPaths(obj: unknown, prefix?: string, maxDepth?: number): string[];
18
+ /**
19
+ * Extract field paths from multiple objects and return unique sorted paths
20
+ *
21
+ * @param objects - Array of objects to extract paths from
22
+ * @param maxDepth - Maximum nesting depth to traverse (default: 5)
23
+ * @returns Sorted array of unique field paths
24
+ *
25
+ * @example
26
+ * extractFieldPathsFromMany([
27
+ * { verb: "create", objectRef: { name: "foo" } },
28
+ * { verb: "update", objectRef: { namespace: "bar" } }
29
+ * ])
30
+ * // Returns: ["objectRef.name", "objectRef.namespace", "verb"]
31
+ */
32
+ export declare function extractFieldPathsFromMany(objects: unknown[], maxDepth?: number): string[];
33
+ //# sourceMappingURL=extractFieldPaths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractFieldPaths.d.ts","sourceRoot":"","sources":["../../src/lib/extractFieldPaths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,MAAM,SAAK,EACX,QAAQ,SAAI,GACX,MAAM,EAAE,CA+DV;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAAE,EAClB,QAAQ,SAAI,GACX,MAAM,EAAE,CASV"}
@@ -0,0 +1,3 @@
1
+ import { type ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
@@ -0,0 +1,366 @@
1
+ /**
2
+ * TypeScript types for the Activity API (activity.miloapis.com/v1alpha1)
3
+ * Based on the Activity Stream System enhancement specification
4
+ */
5
+ import type { ReactNode } from 'react';
6
+ import type { ObjectMeta } from './index';
7
+ /**
8
+ * Change source classification for activities
9
+ * - human: User actions, service accounts with `initiated-by: user` annotation
10
+ * - system: Controller reconciliation, operator actions, scheduled jobs
11
+ */
12
+ export type ChangeSource = 'human' | 'system';
13
+ /**
14
+ * Actor types in the activity system
15
+ */
16
+ export type ActorType = 'user' | 'machine account' | 'controller';
17
+ /**
18
+ * Origin types for activity records
19
+ */
20
+ export type OriginType = 'audit' | 'event';
21
+ /**
22
+ * Tenant scope levels
23
+ */
24
+ export type TenantType = 'platform' | 'organization' | 'project' | 'user';
25
+ /**
26
+ * Resource reference for linking to resources in the portal
27
+ */
28
+ export interface ResourceRef {
29
+ apiGroup: string;
30
+ apiVersion?: string;
31
+ kind: string;
32
+ name: string;
33
+ namespace?: string;
34
+ uid?: string;
35
+ }
36
+ /**
37
+ * Context for resolving resource links
38
+ * Contains optional tenant information for multi-tenant portal navigation
39
+ */
40
+ export interface ResourceLinkContext {
41
+ /** Current tenant context for scoped navigation */
42
+ tenant?: Tenant;
43
+ }
44
+ /**
45
+ * Actor who performed the action
46
+ */
47
+ export interface Actor {
48
+ type: ActorType;
49
+ name: string;
50
+ uid: string;
51
+ email?: string;
52
+ }
53
+ /**
54
+ * Linkable entity in the summary for portal rendering
55
+ */
56
+ export interface ActivityLink {
57
+ /** Text substring in summary that should be linked */
58
+ marker: string;
59
+ /** The resource to link to when the marker is clicked */
60
+ resource: ResourceRef;
61
+ }
62
+ /**
63
+ * Tenant scope for multi-tenant isolation
64
+ */
65
+ export interface Tenant {
66
+ type: TenantType;
67
+ name: string;
68
+ /** Unique identifier - required for user-scoped tenants where routes use ID instead of name */
69
+ id?: string;
70
+ }
71
+ /**
72
+ * Field-level change with old and new values
73
+ */
74
+ export interface FieldChange {
75
+ field: string;
76
+ old?: string;
77
+ new?: string;
78
+ }
79
+ /**
80
+ * Origin of the activity record for correlation
81
+ */
82
+ export interface ActivityOrigin {
83
+ /** Source type: "audit" or "event" */
84
+ type: OriginType;
85
+ /** Correlation ID (auditID or event.metadata.uid) */
86
+ id: string;
87
+ }
88
+ /**
89
+ * Activity spec containing the translated activity data
90
+ */
91
+ export interface ActivitySpec {
92
+ /** Human-readable description generated from ActivityPolicy templates */
93
+ summary: string;
94
+ /** Who initiated the change: "human" or "system" */
95
+ changeSource: ChangeSource;
96
+ /** The actor who performed the action */
97
+ actor: Actor;
98
+ /** The resource that was affected by this activity */
99
+ resource: ResourceRef;
100
+ /** Linkable entities in the summary for portal rendering */
101
+ links?: ActivityLink[];
102
+ /** Tenant scope for multi-tenant isolation */
103
+ tenant?: Tenant;
104
+ /** Field-level changes with old and new values */
105
+ changes?: FieldChange[];
106
+ /** Origin of this activity record for correlation */
107
+ origin: ActivityOrigin;
108
+ }
109
+ /**
110
+ * Activity resource representing a single translated activity record
111
+ */
112
+ export interface Activity {
113
+ apiVersion: 'activity.miloapis.com/v1alpha1';
114
+ kind: 'Activity';
115
+ metadata: ObjectMeta;
116
+ spec: ActivitySpec;
117
+ }
118
+ /**
119
+ * Activity list response with pagination
120
+ */
121
+ export interface ActivityList {
122
+ apiVersion: 'activity.miloapis.com/v1alpha1';
123
+ kind: 'ActivityList';
124
+ metadata?: {
125
+ continue?: string;
126
+ resourceVersion?: string;
127
+ };
128
+ items: Activity[];
129
+ }
130
+ /**
131
+ * Query parameters for listing activities
132
+ */
133
+ export interface ActivityListParams {
134
+ /** CEL expression to filter activities */
135
+ filter?: string;
136
+ /** Filter by field values (Kubernetes standard) */
137
+ fieldSelector?: string;
138
+ /** Filter by labels */
139
+ labelSelector?: string;
140
+ /** Full-text search on activity summaries */
141
+ search?: string;
142
+ /** Start of time range (RFC3339 or relative like "now-24h") */
143
+ start?: string;
144
+ /** End of time range (RFC3339 or relative, default: now) */
145
+ end?: string;
146
+ /** Maximum results (1-1000, default 100) */
147
+ limit?: number;
148
+ /** Pagination cursor */
149
+ continue?: string;
150
+ /** Watch for changes */
151
+ watch?: boolean;
152
+ /** Start Watch from this version */
153
+ resourceVersion?: string;
154
+ }
155
+ /**
156
+ * Facet specification for querying distinct values
157
+ */
158
+ export interface FacetSpec {
159
+ /** Field path to get distinct values for */
160
+ field: string;
161
+ /** Maximum values to return (1-100, default 20) */
162
+ limit?: number;
163
+ }
164
+ /**
165
+ * Facet value with count
166
+ */
167
+ export interface FacetValue {
168
+ value: string;
169
+ count: number;
170
+ }
171
+ /**
172
+ * Facet result containing distinct values for a field
173
+ */
174
+ export interface FacetResult {
175
+ field: string;
176
+ values: FacetValue[];
177
+ }
178
+ /**
179
+ * Activity facet query request spec
180
+ */
181
+ export interface ActivityFacetQuerySpec {
182
+ /** Time range for the facet query */
183
+ timeRange?: {
184
+ start?: string;
185
+ end?: string;
186
+ };
187
+ /** CEL expression to filter activities before computing facets */
188
+ filter?: string;
189
+ /** List of facets to query (1-10 facets) */
190
+ facets: FacetSpec[];
191
+ }
192
+ /**
193
+ * Activity facet query status with results
194
+ */
195
+ export interface ActivityFacetQueryStatus {
196
+ facets: FacetResult[];
197
+ }
198
+ /**
199
+ * Activity facet query resource
200
+ */
201
+ export interface ActivityFacetQuery {
202
+ apiVersion: 'activity.miloapis.com/v1alpha1';
203
+ kind: 'ActivityFacetQuery';
204
+ spec: ActivityFacetQuerySpec;
205
+ status?: ActivityFacetQueryStatus;
206
+ }
207
+ /**
208
+ * Audit log facet query request spec
209
+ * Used to query distinct values from audit logs (API groups, resources, etc.)
210
+ */
211
+ export interface AuditLogFacetsQuerySpec {
212
+ /** Time range for the facet query */
213
+ timeRange?: {
214
+ start?: string;
215
+ end?: string;
216
+ };
217
+ /** CEL expression to filter audit logs before computing facets */
218
+ filter?: string;
219
+ /** List of facets to query (1-10 facets) */
220
+ facets: FacetSpec[];
221
+ }
222
+ /**
223
+ * Audit log facet query status with results
224
+ */
225
+ export interface AuditLogFacetsQueryStatus {
226
+ facets: FacetResult[];
227
+ }
228
+ /**
229
+ * Audit log facet query resource
230
+ * Used to discover available API groups and resources from actual audit log data
231
+ */
232
+ export interface AuditLogFacetsQuery {
233
+ apiVersion: 'activity.miloapis.com/v1alpha1';
234
+ kind: 'AuditLogFacetsQuery';
235
+ spec: AuditLogFacetsQuerySpec;
236
+ status?: AuditLogFacetsQueryStatus;
237
+ }
238
+ /**
239
+ * Activity filter fields for autocomplete and help
240
+ */
241
+ export interface ActivityFilterField {
242
+ name: string;
243
+ type: 'string' | 'enum' | 'timestamp';
244
+ description: string;
245
+ enumValues?: string[];
246
+ examples?: string[];
247
+ }
248
+ /**
249
+ * Available filter fields for activities
250
+ */
251
+ /**
252
+ * ActivityQuery spec for querying historical activities
253
+ */
254
+ export interface ActivityQuerySpec {
255
+ /** Start of time range (required) */
256
+ startTime: string;
257
+ /** End of time range (required) */
258
+ endTime: string;
259
+ /** Full-text search on summaries */
260
+ search?: string;
261
+ /** CEL filter expression (primary filtering mechanism) */
262
+ filter?: string;
263
+ /** Max results per page (default 100, max 1000) */
264
+ limit?: number;
265
+ /** Pagination cursor */
266
+ continue?: string;
267
+ }
268
+ /**
269
+ * ActivityQuery status with results
270
+ */
271
+ export interface ActivityQueryStatus {
272
+ /** Matching activities, newest first */
273
+ results?: Activity[];
274
+ /** Pagination cursor for next page */
275
+ continue?: string;
276
+ /** Resolved start time (RFC3339) */
277
+ effectiveStartTime?: string;
278
+ /** Resolved end time (RFC3339) */
279
+ effectiveEndTime?: string;
280
+ }
281
+ /**
282
+ * ActivityQuery resource for historical queries
283
+ */
284
+ export interface ActivityQuery {
285
+ apiVersion: 'activity.miloapis.com/v1alpha1';
286
+ kind: 'ActivityQuery';
287
+ metadata?: {
288
+ name?: string;
289
+ };
290
+ spec: ActivityQuerySpec;
291
+ status?: ActivityQueryStatus;
292
+ }
293
+ /**
294
+ * Watch event types from Kubernetes watch API
295
+ */
296
+ export type WatchEventType = 'ADDED' | 'MODIFIED' | 'DELETED' | 'BOOKMARK' | 'ERROR';
297
+ /**
298
+ * Watch event from the Kubernetes watch API
299
+ */
300
+ export interface WatchEvent<T = Activity> {
301
+ type: WatchEventType;
302
+ object: T;
303
+ }
304
+ /**
305
+ * Status error returned in watch ERROR events
306
+ */
307
+ export interface WatchErrorStatus {
308
+ apiVersion: 'v1';
309
+ kind: 'Status';
310
+ status: 'Failure';
311
+ message: string;
312
+ reason?: string;
313
+ code: number;
314
+ }
315
+ /**
316
+ * Function that resolves a ResourceRef to a navigation URL
317
+ * Returns a URL string to navigate to when the resource link is clicked
318
+ */
319
+ export type ResourceLinkResolver = (resource: ResourceRef, context?: ResourceLinkContext) => string | undefined;
320
+ /**
321
+ * Default resource link resolver that navigates to resource history
322
+ * Uses UID if available, otherwise falls back to apiGroup, kind, namespace, name
323
+ */
324
+ export declare function defaultResourceLinkResolver(resource: ResourceRef, context?: ResourceLinkContext): string;
325
+ /**
326
+ * Function that resolves a Tenant to a navigation URL
327
+ * Returns a URL string to navigate to when the tenant link is clicked, or undefined to not render as a link
328
+ */
329
+ export type TenantLinkResolver = (tenant: Tenant) => string | undefined;
330
+ /**
331
+ * Custom renderer for tenant badges
332
+ * Allows full customization of how tenants are displayed in the activity feed
333
+ */
334
+ export type TenantRenderer = (tenant: Tenant) => ReactNode;
335
+ /**
336
+ * Effective time range after query resolution
337
+ * Contains the actual start and end times used by the query (ISO 8601 format)
338
+ */
339
+ export interface EffectiveTimeRange {
340
+ /** Resolved start time in ISO 8601 format (e.g., "2026-02-19T10:00:00Z") */
341
+ startTime: string;
342
+ /** Resolved end time in ISO 8601 format (e.g., "2026-02-26T10:00:00Z") */
343
+ endTime: string;
344
+ }
345
+ /**
346
+ * Callback invoked when a query resolves its effective time range
347
+ * Used by parent components to display or sync the actual time range used
348
+ */
349
+ export type EffectiveTimeRangeCallback = (timeRange: EffectiveTimeRange) => void;
350
+ /**
351
+ * Formatted error for display to users
352
+ * Contains a user-friendly message and optional technical details
353
+ */
354
+ export interface FormattedError {
355
+ /** User-friendly error message */
356
+ message: string;
357
+ /** Technical details for advanced users */
358
+ technical?: string;
359
+ }
360
+ /**
361
+ * Function that formats errors for display
362
+ * Allows clients to customize error messaging
363
+ */
364
+ export type ErrorFormatter = (error: Error) => FormattedError;
365
+ export declare const ACTIVITY_FILTER_FIELDS: ActivityFilterField[];
366
+ //# sourceMappingURL=activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/types/activity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * TypeScript types for the Activity API (activity.miloapis.com/v1alpha1)
3
+ * Based on Kubernetes audit events and custom query resources
4
+ */
5
+ export interface ObjectReference {
6
+ resource?: string;
7
+ namespace?: string;
8
+ name?: string;
9
+ uid?: string;
10
+ apiGroup?: string;
11
+ apiVersion?: string;
12
+ resourceVersion?: string;
13
+ subresource?: string;
14
+ }
15
+ export interface UserInfo {
16
+ username?: string;
17
+ uid?: string;
18
+ groups?: string[];
19
+ extra?: Record<string, string[]>;
20
+ }
21
+ export interface Event {
22
+ level?: string;
23
+ auditID?: string;
24
+ stage?: string;
25
+ requestURI?: string;
26
+ verb?: string;
27
+ user?: UserInfo;
28
+ impersonatedUser?: UserInfo;
29
+ sourceIPs?: string[];
30
+ userAgent?: string;
31
+ objectRef?: ObjectReference;
32
+ responseStatus?: {
33
+ metadata?: Record<string, unknown>;
34
+ status?: string;
35
+ message?: string;
36
+ reason?: string;
37
+ code?: number;
38
+ };
39
+ requestObject?: unknown;
40
+ responseObject?: unknown;
41
+ requestReceivedTimestamp?: string;
42
+ stageTimestamp?: string;
43
+ annotations?: Record<string, string>;
44
+ }
45
+ export type QueryPhase = 'Pending' | 'Running' | 'Completed' | 'Failed';
46
+ export interface AuditLogQuerySpec {
47
+ /**
48
+ * CEL expression for filtering audit events
49
+ * Available fields:
50
+ * - timestamp: time.Time
51
+ * - ns: string (namespace)
52
+ * - verb: string
53
+ * - resource: string
54
+ * - user: string
55
+ * - level: string
56
+ * - stage: string
57
+ * - uid: string
58
+ * - requestURI: string
59
+ * - sourceIPs: []string
60
+ */
61
+ filter?: string;
62
+ /**
63
+ * Maximum number of results (default: 100, max: 1000)
64
+ */
65
+ limit?: number;
66
+ /**
67
+ * Cursor for pagination (copy from previous query's status.continue)
68
+ */
69
+ continue?: string;
70
+ /**
71
+ * Start time for the query (ISO 8601 timestamp)
72
+ * Required by the API
73
+ */
74
+ startTime?: string;
75
+ /**
76
+ * End time for the query (ISO 8601 timestamp)
77
+ * Required by the API
78
+ */
79
+ endTime?: string;
80
+ }
81
+ export interface AuditLogQueryStatus {
82
+ phase?: QueryPhase;
83
+ results?: Event[];
84
+ /** Pagination cursor - copy to spec.continue to get the next page */
85
+ continue?: string;
86
+ message?: string;
87
+ }
88
+ export interface ObjectMeta {
89
+ name?: string;
90
+ namespace?: string;
91
+ uid?: string;
92
+ resourceVersion?: string;
93
+ creationTimestamp?: string;
94
+ labels?: Record<string, string>;
95
+ annotations?: Record<string, string>;
96
+ }
97
+ export interface AuditLogQuery {
98
+ apiVersion: 'activity.miloapis.com/v1alpha1';
99
+ kind: 'AuditLogQuery';
100
+ metadata?: ObjectMeta;
101
+ spec: AuditLogQuerySpec;
102
+ status?: AuditLogQueryStatus;
103
+ }
104
+ export interface AuditLog {
105
+ apiVersion: 'activity.miloapis.com/v1alpha1';
106
+ kind: 'AuditLog';
107
+ metadata?: ObjectMeta;
108
+ event: Event;
109
+ }
110
+ export interface FilterField {
111
+ name: string;
112
+ type: 'string' | 'timestamp' | 'array' | 'number';
113
+ description: string;
114
+ examples?: string[];
115
+ }
116
+ export declare const FILTER_FIELDS: FilterField[];
117
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}