@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.
- package/README.md +334 -0
- package/dist/api/client.d.ts +264 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/components/ActionMultiSelect.d.ts +25 -0
- package/dist/components/ActionMultiSelect.d.ts.map +1 -0
- package/dist/components/ActionToggle.d.ts +16 -0
- package/dist/components/ActionToggle.d.ts.map +1 -0
- package/dist/components/ActivityExpandedDetails.d.ts +21 -0
- package/dist/components/ActivityExpandedDetails.d.ts.map +1 -0
- package/dist/components/ActivityFeed.d.ts +60 -0
- package/dist/components/ActivityFeed.d.ts.map +1 -0
- package/dist/components/ActivityFeedFilters.d.ts +26 -0
- package/dist/components/ActivityFeedFilters.d.ts.map +1 -0
- package/dist/components/ActivityFeedItem.d.ts +39 -0
- package/dist/components/ActivityFeedItem.d.ts.map +1 -0
- package/dist/components/ActivityFeedItemSkeleton.d.ts +11 -0
- package/dist/components/ActivityFeedItemSkeleton.d.ts.map +1 -0
- package/dist/components/ActivityFeedSummary.d.ts +23 -0
- package/dist/components/ActivityFeedSummary.d.ts.map +1 -0
- package/dist/components/ApiErrorAlert.d.ts +10 -0
- package/dist/components/ApiErrorAlert.d.ts.map +1 -0
- package/dist/components/AuditEventViewer.d.ts +14 -0
- package/dist/components/AuditEventViewer.d.ts.map +1 -0
- package/dist/components/AuditLogExpandedDetails.d.ts +20 -0
- package/dist/components/AuditLogExpandedDetails.d.ts.map +1 -0
- package/dist/components/AuditLogFeedItem.d.ts +22 -0
- package/dist/components/AuditLogFeedItem.d.ts.map +1 -0
- package/dist/components/AuditLogFilters.d.ts +50 -0
- package/dist/components/AuditLogFilters.d.ts.map +1 -0
- package/dist/components/AuditLogQueryComponent.d.ts +18 -0
- package/dist/components/AuditLogQueryComponent.d.ts.map +1 -0
- package/dist/components/CelEditor.d.ts +31 -0
- package/dist/components/CelEditor.d.ts.map +1 -0
- package/dist/components/ChangeSourceToggle.d.ts +17 -0
- package/dist/components/ChangeSourceToggle.d.ts.map +1 -0
- package/dist/components/DateTimeRangePicker.d.ts +15 -0
- package/dist/components/DateTimeRangePicker.d.ts.map +1 -0
- package/dist/components/EventExpandedDetails.d.ts +17 -0
- package/dist/components/EventExpandedDetails.d.ts.map +1 -0
- package/dist/components/EventFeedItem.d.ts +29 -0
- package/dist/components/EventFeedItem.d.ts.map +1 -0
- package/dist/components/EventFeedItemSkeleton.d.ts +11 -0
- package/dist/components/EventFeedItemSkeleton.d.ts.map +1 -0
- package/dist/components/EventTypeToggle.d.ts +17 -0
- package/dist/components/EventTypeToggle.d.ts.map +1 -0
- package/dist/components/EventsFeed.d.ts +51 -0
- package/dist/components/EventsFeed.d.ts.map +1 -0
- package/dist/components/EventsFeedFilters.d.ts +28 -0
- package/dist/components/EventsFeedFilters.d.ts.map +1 -0
- package/dist/components/FilterBuilder.d.ts +12 -0
- package/dist/components/FilterBuilder.d.ts.map +1 -0
- package/dist/components/FilterBuilderWithAutocomplete.d.ts +12 -0
- package/dist/components/FilterBuilderWithAutocomplete.d.ts.map +1 -0
- package/dist/components/PolicyActivityView.d.ts +25 -0
- package/dist/components/PolicyActivityView.d.ts.map +1 -0
- package/dist/components/PolicyActivityViewSkeleton.d.ts +9 -0
- package/dist/components/PolicyActivityViewSkeleton.d.ts.map +1 -0
- package/dist/components/PolicyDetailView.d.ts +22 -0
- package/dist/components/PolicyDetailView.d.ts.map +1 -0
- package/dist/components/PolicyEditView.d.ts +22 -0
- package/dist/components/PolicyEditView.d.ts.map +1 -0
- package/dist/components/PolicyEditor.d.ts +24 -0
- package/dist/components/PolicyEditor.d.ts.map +1 -0
- package/dist/components/PolicyList.d.ts +23 -0
- package/dist/components/PolicyList.d.ts.map +1 -0
- package/dist/components/PolicyPreviewPanel.d.ts +23 -0
- package/dist/components/PolicyPreviewPanel.d.ts.map +1 -0
- package/dist/components/PolicyPreviewResult.d.ts +17 -0
- package/dist/components/PolicyPreviewResult.d.ts.map +1 -0
- package/dist/components/PolicyResourceForm.d.ts +19 -0
- package/dist/components/PolicyResourceForm.d.ts.map +1 -0
- package/dist/components/PolicyRuleEditor.d.ts +22 -0
- package/dist/components/PolicyRuleEditor.d.ts.map +1 -0
- package/dist/components/PolicyRuleEditorDialog.d.ts +30 -0
- package/dist/components/PolicyRuleEditorDialog.d.ts.map +1 -0
- package/dist/components/PolicyRuleList.d.ts +26 -0
- package/dist/components/PolicyRuleList.d.ts.map +1 -0
- package/dist/components/PolicyRuleListItem.d.ts +29 -0
- package/dist/components/PolicyRuleListItem.d.ts.map +1 -0
- package/dist/components/ReindexJobCreate.d.ts +21 -0
- package/dist/components/ReindexJobCreate.d.ts.map +1 -0
- package/dist/components/ReindexJobDetailView.d.ts +21 -0
- package/dist/components/ReindexJobDetailView.d.ts.map +1 -0
- package/dist/components/ReindexJobDialog.d.ts +21 -0
- package/dist/components/ReindexJobDialog.d.ts.map +1 -0
- package/dist/components/ReindexJobList.d.ts +21 -0
- package/dist/components/ReindexJobList.d.ts.map +1 -0
- package/dist/components/ResourceHistoryView.d.ts +54 -0
- package/dist/components/ResourceHistoryView.d.ts.map +1 -0
- package/dist/components/RulePreviewPanel.d.ts +23 -0
- package/dist/components/RulePreviewPanel.d.ts.map +1 -0
- package/dist/components/SampleInputTemplates.d.ts +26 -0
- package/dist/components/SampleInputTemplates.d.ts.map +1 -0
- package/dist/components/SimpleQueryBuilder.d.ts +12 -0
- package/dist/components/SimpleQueryBuilder.d.ts.map +1 -0
- package/dist/components/TenantBadge.d.ts +17 -0
- package/dist/components/TenantBadge.d.ts.map +1 -0
- package/dist/components/UserSelect.d.ts +24 -0
- package/dist/components/UserSelect.d.ts.map +1 -0
- package/dist/components/VerbToggle.d.ts +16 -0
- package/dist/components/VerbToggle.d.ts.map +1 -0
- package/dist/components/ui/add-filter-dropdown.d.ts +26 -0
- package/dist/components/ui/add-filter-dropdown.d.ts.map +1 -0
- package/dist/components/ui/alert.d.ts +9 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/combobox.d.ts +27 -0
- package/dist/components/ui/combobox.d.ts.map +1 -0
- package/dist/components/ui/dialog.d.ts +20 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/filter-chip.d.ts +37 -0
- package/dist/components/ui/filter-chip.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/label.d.ts +8 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/multi-combobox.d.ts +24 -0
- package/dist/components/ui/multi-combobox.d.ts.map +1 -0
- package/dist/components/ui/select.d.ts +14 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/sheet.d.ts +23 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/textarea.d.ts +6 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/time-range-dropdown.d.ts +29 -0
- package/dist/components/ui/time-range-dropdown.d.ts.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/hooks/useActivityFeed.d.ts +101 -0
- package/dist/hooks/useActivityFeed.d.ts.map +1 -0
- package/dist/hooks/useAuditLogFacets.d.ts +33 -0
- package/dist/hooks/useAuditLogFacets.d.ts.map +1 -0
- package/dist/hooks/useAuditLogQuery.d.ts +21 -0
- package/dist/hooks/useAuditLogQuery.d.ts.map +1 -0
- package/dist/hooks/useEventFacets.d.ts +30 -0
- package/dist/hooks/useEventFacets.d.ts.map +1 -0
- package/dist/hooks/useEventsFeed.d.ts +93 -0
- package/dist/hooks/useEventsFeed.d.ts.map +1 -0
- package/dist/hooks/useFacets.d.ts +29 -0
- package/dist/hooks/useFacets.d.ts.map +1 -0
- package/dist/hooks/usePolicyEditor.d.ts +71 -0
- package/dist/hooks/usePolicyEditor.d.ts.map +1 -0
- package/dist/hooks/usePolicyList.d.ts +35 -0
- package/dist/hooks/usePolicyList.d.ts.map +1 -0
- package/dist/hooks/usePolicyPreview.d.ts +72 -0
- package/dist/hooks/usePolicyPreview.d.ts.map +1 -0
- package/dist/hooks/useReindexJobs.d.ts +37 -0
- package/dist/hooks/useReindexJobs.d.ts.map +1 -0
- package/dist/index.d.ts +150 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +16224 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +16377 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/errors.d.ts +50 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/extractFieldPaths.d.ts +33 -0
- package/dist/lib/extractFieldPaths.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/types/activity.d.ts +366 -0
- package/dist/types/activity.d.ts.map +1 -0
- package/dist/types/index.d.ts +117 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/k8s-event.d.ts +224 -0
- package/dist/types/k8s-event.d.ts.map +1 -0
- package/dist/types/policy.d.ts +333 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/reindex.d.ts +102 -0
- package/dist/types/reindex.d.ts.map +1 -0
- 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 @@
|
|
|
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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"}
|