@prefecthq/prefect-ui-library 3.11.12 → 3.11.14
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/dist/{RunsPageWithDefaultFilter-Dxd35vMW.mjs → RunsPageWithDefaultFilter-Cxr7Sys4.mjs} +2 -2
- package/dist/{RunsPageWithDefaultFilter-Dxd35vMW.mjs.map → RunsPageWithDefaultFilter-Cxr7Sys4.mjs.map} +1 -1
- package/dist/{WorkQueueToWorkPoolQueueRedirect-D_0zKHOK.mjs → WorkQueueToWorkPoolQueueRedirect-CvIP2Lps.mjs} +2 -2
- package/dist/{WorkQueueToWorkPoolQueueRedirect-D_0zKHOK.mjs.map → WorkQueueToWorkPoolQueueRedirect-CvIP2Lps.mjs.map} +1 -1
- package/dist/{index-3dEzawLM.mjs → index-Cz9ExVBS.mjs} +1023 -999
- package/dist/index-Cz9ExVBS.mjs.map +1 -0
- package/dist/prefect-ui-library.mjs +38 -37
- package/dist/prefect-ui-library.umd.js +74 -74
- package/dist/prefect-ui-library.umd.js.map +1 -1
- package/dist/types/src/compositions/index.d.ts +1 -0
- package/dist/types/src/compositions/useWorker.d.ts +5 -0
- package/dist/types/src/models/WorkPoolWorker.d.ts +2 -0
- package/dist/types/src/models/api/Filters.d.ts +1 -2
- package/dist/types/src/models/api/WorkPoolWorkerResponse.d.ts +1 -0
- package/dist/types/src/services/WorkspaceWorkPoolWorkersApi.d.ts +1 -0
- package/dist/types/src/services/can.d.ts +1 -1
- package/dist/types/src/types/SortOptionTypes.d.ts +4 -0
- package/package.json +2 -2
- package/src/compositions/index.ts +1 -0
- package/src/compositions/useWorker.ts +39 -0
- package/src/maps/filters.ts +3 -1
- package/src/maps/workPoolWorker.ts +1 -0
- package/src/mocks/worker.ts +1 -0
- package/src/models/WorkPoolWorker.ts +3 -0
- package/src/models/api/Filters.ts +1 -2
- package/src/models/api/WorkPoolWorkerResponse.ts +1 -0
- package/src/services/WorkspaceWorkPoolWorkersApi.ts +7 -0
- package/src/services/can.ts +2 -0
- package/src/types/SortOptionTypes.ts +2 -0
- package/dist/index-3dEzawLM.mjs.map +0 -1
|
@@ -54,6 +54,7 @@ export * from './useTaskRunsHistory';
|
|
|
54
54
|
export * from './useThemeTokens';
|
|
55
55
|
export * from './useVariable';
|
|
56
56
|
export * from './useVariables';
|
|
57
|
+
export * from './useWorker';
|
|
57
58
|
export * from './useWorkPool';
|
|
58
59
|
export * from './useWorkPoolById';
|
|
59
60
|
export * from './useWorkPoolLastPolled';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import { WorkspaceWorkPoolWorkersApi } from '../services';
|
|
3
|
+
import { UseEntitySubscription } from '../types/useEntitySubscription';
|
|
4
|
+
export type UseWorker = UseEntitySubscription<WorkspaceWorkPoolWorkersApi['getWorker'], 'worker'>;
|
|
5
|
+
export declare function useWorker(workPoolName: MaybeRefOrGetter<string | null | undefined>, workerId: MaybeRefOrGetter<string | null | undefined>): UseWorker;
|
|
@@ -7,6 +7,7 @@ export interface IWorkPoolWorker {
|
|
|
7
7
|
workPoolId: string;
|
|
8
8
|
lastHeartbeatTime: Date;
|
|
9
9
|
status: WorkPoolWorkerStatus;
|
|
10
|
+
clientVersion: string | null;
|
|
10
11
|
}
|
|
11
12
|
export declare class WorkPoolWorker implements IWorkPoolWorker {
|
|
12
13
|
readonly id: string;
|
|
@@ -17,6 +18,7 @@ export declare class WorkPoolWorker implements IWorkPoolWorker {
|
|
|
17
18
|
workPoolId: string;
|
|
18
19
|
lastHeartbeatTime: Date;
|
|
19
20
|
status: WorkPoolWorkerStatus;
|
|
21
|
+
clientVersion: string | null;
|
|
20
22
|
constructor(workPoolWorker: IWorkPoolWorker);
|
|
21
23
|
}
|
|
22
24
|
export type PaginatedWorkPoolWorkers = {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ServerWorkPoolWorkerStatus } from '../../models/WorkPoolWorkerStatus';
|
|
2
1
|
import { ArtifactSortValues, DeploymentSortValues, FlowRunSortValues, FlowSortValues, LogSortValues, TaskRunSortValues, VariableSortValues, WorkPoolWorkerSortValues } from '../../types/SortOptionTypes';
|
|
3
2
|
/** A list where results will be returned only if they match all the values in the list */
|
|
4
3
|
export type All = {
|
|
@@ -257,7 +256,7 @@ export type WorkersFilterRequest = {
|
|
|
257
256
|
operator?: OperationRequest;
|
|
258
257
|
last_heartbeat_time?: Before & After;
|
|
259
258
|
name?: Like;
|
|
260
|
-
status?:
|
|
259
|
+
status?: Any;
|
|
261
260
|
};
|
|
262
261
|
export type WorkPoolWorkersFilterRequest = {
|
|
263
262
|
workers?: WorkersFilterRequest;
|
|
@@ -8,6 +8,7 @@ export type WorkPoolWorkerResponse = {
|
|
|
8
8
|
work_pool_id: string;
|
|
9
9
|
last_heartbeat_time: DateString;
|
|
10
10
|
status: ServerWorkPoolWorkerStatus;
|
|
11
|
+
client_version?: string | null;
|
|
11
12
|
};
|
|
12
13
|
export type WorkPoolWorkerPaginationResponse = {
|
|
13
14
|
results: WorkPoolWorkerResponse[];
|
|
@@ -9,5 +9,6 @@ export declare class WorkspaceWorkPoolWorkersApi extends WorkspaceApi {
|
|
|
9
9
|
protected routePrefix: string;
|
|
10
10
|
getWorkers(workPoolName: string, filter?: WorkPoolWorkersFilter): Promise<WorkPoolWorker[]>;
|
|
11
11
|
getWorkersPaginated(workPoolName: string, filter?: WorkPoolWorkersPagination): Promise<PaginatedWorkPoolWorkers>;
|
|
12
|
+
getWorker(workPoolName: string, workerId: string): Promise<WorkPoolWorker>;
|
|
12
13
|
deleteWorker(arg: WorkerDeleteArg): Promise<void>;
|
|
13
14
|
}
|
|
@@ -2,7 +2,7 @@ import { InjectionKey } from 'vue';
|
|
|
2
2
|
import { MaybeRef } from '../types/reactivity';
|
|
3
3
|
export declare const workspaceFeatureFlags: readonly ["access:deploymentScheduleFlowRunInfraOverrides"];
|
|
4
4
|
export type WorkspaceFeatureFlag = typeof workspaceFeatureFlags[number];
|
|
5
|
-
export declare const workspacePermissions: readonly ["create:artifact", "create:automation", "create:block", "create:concurrency_limit", "create:deployment", "create:flow_run", "create:flow", "create:log", "create:notification_policy", "create:saved_search", "create:task_run", "create:variable", "create:work_queue", "create:work_pool_queue", "create:work_pool", "create:workspace_bot_access", "create:workspace_user_access", "delete:artifact", "delete:automation", "delete:block", "delete:concurrency_limit", "delete:deployment", "delete:flow_run", "delete:flow", "delete:notification_policy", "delete:saved_search", "delete:task_run", "delete:work_queue", "delete:work_pool_queue", "delete:work_pool", "delete:workspace_bot_access", "delete:workspace_user_access", "delete:variable", "read:artifact", "read:automation", "read:block", "read:concurrency_limit", "read:deployment", "read:flow_run", "read:flow", "read:log", "read:notification_policy", "read:saved_search", "read:task_run", "read:variable", "read:work_queue", "read:work_pool_queue", "read:work_pool", "read:workspace_bot_access", "read:workspace_settings", "read:workspace_user_access", "run:deployment", "update:automation", "update:block", "update:concurrency_limit", "update:deployment", "update:flow_run", "update:flow", "update:notification_policy", "update:task_run", "update:variable", "update:work_queue", "update:work_pool_queue", "update:work_pool", "update:workspace_bot_access", "update:workspace_settings", "update:workspace_user_access", "update:workspace"];
|
|
5
|
+
export declare const workspacePermissions: readonly ["create:artifact", "create:automation", "create:block", "create:concurrency_limit", "create:deployment", "create:flow_run", "create:flow", "create:log", "create:notification_policy", "create:saved_search", "create:task_run", "create:variable", "create:work_queue", "create:work_pool_queue", "create:work_pool", "create:workspace_bot_access", "create:workspace_user_access", "delete:artifact", "delete:automation", "delete:block", "delete:concurrency_limit", "delete:deployment", "delete:flow_run", "delete:flow", "delete:notification_policy", "delete:saved_search", "delete:task_run", "delete:work_queue", "delete:work_pool_queue", "delete:work_pool", "delete:worker", "delete:workspace_bot_access", "delete:workspace_user_access", "delete:variable", "read:artifact", "read:automation", "read:block", "read:concurrency_limit", "read:deployment", "read:flow_run", "read:flow", "read:log", "read:notification_policy", "read:saved_search", "read:task_run", "read:variable", "read:work_queue", "read:work_pool_queue", "read:work_pool", "read:worker", "read:workspace_bot_access", "read:workspace_settings", "read:workspace_user_access", "run:deployment", "update:automation", "update:block", "update:concurrency_limit", "update:deployment", "update:flow_run", "update:flow", "update:notification_policy", "update:task_run", "update:variable", "update:work_queue", "update:work_pool_queue", "update:work_pool", "update:workspace_bot_access", "update:workspace_settings", "update:workspace_user_access", "update:workspace"];
|
|
6
6
|
export type WorkspacePermission = typeof workspacePermissions[number];
|
|
7
7
|
export type PermissionValue = boolean | undefined;
|
|
8
8
|
export type PermissionVerb<T extends string> = T extends `${infer Action}:${string}` ? Action : never;
|
|
@@ -72,4 +72,8 @@ export type WorkPoolWorkerSortValues = typeof workPoolWorkerSortValues[number];
|
|
|
72
72
|
export declare const defaultWorkPoolWorkersSort: WorkPoolWorkerSortValues;
|
|
73
73
|
export declare function isWorkPoolWorkerSortValue(value: unknown): value is WorkPoolWorkerSortValues;
|
|
74
74
|
export declare function isWorkPoolWorkerSortValue(value: Ref<unknown>): value is Ref<WorkPoolWorkerSortValues>;
|
|
75
|
+
export type WorkPoolWorkerSortOptions = {
|
|
76
|
+
label: string;
|
|
77
|
+
value: WorkPoolWorkerSortValues;
|
|
78
|
+
}[];
|
|
75
79
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prefecthq/prefect-ui-library",
|
|
3
|
-
"version": "3.11.
|
|
3
|
+
"version": "3.11.14",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"tailwindcss": "3.4.14",
|
|
70
70
|
"tsc-alias": "1.8.10",
|
|
71
71
|
"typescript": "5.6.3",
|
|
72
|
-
"vite": "5.4.
|
|
72
|
+
"vite": "5.4.10",
|
|
73
73
|
"vite-svg-loader": "^5.1.0",
|
|
74
74
|
"vitest": "^2.1.4",
|
|
75
75
|
"vue-tsc": "^2.1.6"
|
|
@@ -54,6 +54,7 @@ export * from './useTaskRunsHistory'
|
|
|
54
54
|
export * from './useThemeTokens'
|
|
55
55
|
export * from './useVariable'
|
|
56
56
|
export * from './useVariables'
|
|
57
|
+
export * from './useWorker'
|
|
57
58
|
export * from './useWorkPool'
|
|
58
59
|
export * from './useWorkPoolById'
|
|
59
60
|
export * from './useWorkPoolLastPolled'
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useSubscriptionWithDependencies } from '@prefecthq/vue-compositions'
|
|
2
|
+
import { computed, MaybeRefOrGetter, toRef, toValue } from 'vue'
|
|
3
|
+
import { useCan } from '@/compositions/useCan'
|
|
4
|
+
import { useWorkspaceApi } from '@/compositions/useWorkspaceApi'
|
|
5
|
+
import { WorkspaceWorkPoolWorkersApi } from '@/services'
|
|
6
|
+
import { Getter } from '@/types/reactivity'
|
|
7
|
+
import { UseEntitySubscription } from '@/types/useEntitySubscription'
|
|
8
|
+
|
|
9
|
+
export type UseWorker = UseEntitySubscription<WorkspaceWorkPoolWorkersApi['getWorker'], 'worker'>
|
|
10
|
+
|
|
11
|
+
export function useWorker(workPoolName: MaybeRefOrGetter<string | null | undefined>, workerId: MaybeRefOrGetter<string | null | undefined>): UseWorker {
|
|
12
|
+
const api = useWorkspaceApi()
|
|
13
|
+
const can = useCan()
|
|
14
|
+
|
|
15
|
+
const getter: Getter<[string, string] | null> = () => {
|
|
16
|
+
if (!can.read.worker) {
|
|
17
|
+
return null
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const name = toValue(workPoolName)
|
|
21
|
+
const id = toValue(workerId)
|
|
22
|
+
|
|
23
|
+
if (!name || !id) {
|
|
24
|
+
return null
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return [name, id]
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const parameters = toRef(getter)
|
|
31
|
+
|
|
32
|
+
const subscription = useSubscriptionWithDependencies(api.workPoolWorkers.getWorker, parameters)
|
|
33
|
+
const worker = computed(() => subscription.response)
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
subscription,
|
|
37
|
+
worker,
|
|
38
|
+
}
|
|
39
|
+
}
|
package/src/maps/filters.ts
CHANGED
|
@@ -541,7 +541,9 @@ export const mapWorkersFilter: MapFunction<WorkersFilter, WorkersFilterRequest>
|
|
|
541
541
|
...toBefore(source.lastHeartbeatTimeBefore),
|
|
542
542
|
},
|
|
543
543
|
name: toLike(source.name),
|
|
544
|
-
status:
|
|
544
|
+
status: toAny(
|
|
545
|
+
source.status ? [this.map('WorkPoolWorkerStatus', source.status, 'ServerWorkPoolWorkerStatus')] : undefined,
|
|
546
|
+
),
|
|
545
547
|
})
|
|
546
548
|
}
|
|
547
549
|
|
|
@@ -11,6 +11,7 @@ export const mapWorkPoolWorkerResponseToWorkPoolWorker: MapFunction<WorkPoolWork
|
|
|
11
11
|
workPoolId: source.work_pool_id,
|
|
12
12
|
lastHeartbeatTime: this.map('string', source.last_heartbeat_time, 'Date'),
|
|
13
13
|
status: this.map('ServerWorkPoolWorkerStatus', source.status, 'WorkPoolWorkerStatus'),
|
|
14
|
+
clientVersion: source.client_version ? source.client_version : null,
|
|
14
15
|
})
|
|
15
16
|
}
|
|
16
17
|
|
package/src/mocks/worker.ts
CHANGED
|
@@ -10,6 +10,7 @@ export const randomWorker: MockFunction<WorkPoolWorker, [Partial<WorkPoolWorker>
|
|
|
10
10
|
name: this.create('noun'),
|
|
11
11
|
lastHeartbeatTime: this.create('date'),
|
|
12
12
|
status: this.create('workerStatus'),
|
|
13
|
+
clientVersion: this.create('string'),
|
|
13
14
|
...overrides,
|
|
14
15
|
})
|
|
15
16
|
}
|
|
@@ -8,6 +8,7 @@ export interface IWorkPoolWorker {
|
|
|
8
8
|
workPoolId: string,
|
|
9
9
|
lastHeartbeatTime: Date,
|
|
10
10
|
status: WorkPoolWorkerStatus,
|
|
11
|
+
clientVersion: string | null,
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
export class WorkPoolWorker implements IWorkPoolWorker {
|
|
@@ -19,6 +20,7 @@ export class WorkPoolWorker implements IWorkPoolWorker {
|
|
|
19
20
|
public workPoolId: string
|
|
20
21
|
public lastHeartbeatTime: Date
|
|
21
22
|
public status: WorkPoolWorkerStatus
|
|
23
|
+
public clientVersion: string | null
|
|
22
24
|
|
|
23
25
|
public constructor(workPoolWorker: IWorkPoolWorker) {
|
|
24
26
|
this.id = workPoolWorker.id
|
|
@@ -28,6 +30,7 @@ export class WorkPoolWorker implements IWorkPoolWorker {
|
|
|
28
30
|
this.workPoolId = workPoolWorker.workPoolId
|
|
29
31
|
this.lastHeartbeatTime = workPoolWorker.lastHeartbeatTime
|
|
30
32
|
this.status = workPoolWorker.status
|
|
33
|
+
this.clientVersion = workPoolWorker.clientVersion
|
|
31
34
|
}
|
|
32
35
|
}
|
|
33
36
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ServerWorkPoolWorkerStatus } from '@/models/WorkPoolWorkerStatus'
|
|
2
1
|
import { ArtifactSortValues, DeploymentSortValues, FlowRunSortValues, FlowSortValues, LogSortValues, TaskRunSortValues, VariableSortValues, WorkPoolWorkerSortValues } from '@/types/SortOptionTypes'
|
|
3
2
|
|
|
4
3
|
/** A list where results will be returned only if they match all the values in the list */
|
|
@@ -264,7 +263,7 @@ export type WorkersFilterRequest = {
|
|
|
264
263
|
operator?: OperationRequest,
|
|
265
264
|
last_heartbeat_time?: Before & After,
|
|
266
265
|
name?: Like,
|
|
267
|
-
status?:
|
|
266
|
+
status?: Any,
|
|
268
267
|
}
|
|
269
268
|
|
|
270
269
|
export type WorkPoolWorkersFilterRequest = {
|
|
@@ -26,6 +26,13 @@ export class WorkspaceWorkPoolWorkersApi extends WorkspaceApi {
|
|
|
26
26
|
return mapper.map('WorkPoolWorkersPaginationResponse', data, 'PaginatedWorkPoolWorkers')
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
public async getWorker(workPoolName: string, workerId: string): Promise<WorkPoolWorker> {
|
|
30
|
+
const encodedWorkPoolName = encodeURI(workPoolName)
|
|
31
|
+
const { data } = await this.get<WorkPoolWorkerResponse>(`/${encodedWorkPoolName}/workers/${workerId}`)
|
|
32
|
+
|
|
33
|
+
return mapper.map('WorkPoolWorkerResponse', data, 'WorkPoolWorker')
|
|
34
|
+
}
|
|
35
|
+
|
|
29
36
|
public deleteWorker(arg: WorkerDeleteArg): Promise<void> {
|
|
30
37
|
const encodedWorkPoolName = encodeURI(arg.workPoolName)
|
|
31
38
|
const encodedWorkerName = encodeURI(arg.workerName)
|
package/src/services/can.ts
CHANGED
|
@@ -36,6 +36,7 @@ export const workspacePermissions = [
|
|
|
36
36
|
'delete:work_queue',
|
|
37
37
|
'delete:work_pool_queue',
|
|
38
38
|
'delete:work_pool',
|
|
39
|
+
'delete:worker',
|
|
39
40
|
'delete:workspace_bot_access',
|
|
40
41
|
'delete:workspace_user_access',
|
|
41
42
|
'delete:variable',
|
|
@@ -54,6 +55,7 @@ export const workspacePermissions = [
|
|
|
54
55
|
'read:work_queue',
|
|
55
56
|
'read:work_pool_queue',
|
|
56
57
|
'read:work_pool',
|
|
58
|
+
'read:worker',
|
|
57
59
|
'read:workspace_bot_access',
|
|
58
60
|
'read:workspace_settings',
|
|
59
61
|
'read:workspace_user_access',
|
|
@@ -122,3 +122,5 @@ export function isWorkPoolWorkerSortValue(value: Ref<unknown>): value is Ref<Wor
|
|
|
122
122
|
export function isWorkPoolWorkerSortValue(value: MaybeRef<unknown>): value is MaybeRef<WorkPoolWorkerSortValues> {
|
|
123
123
|
return workPoolWorkerSortValues.includes(toValue(value) as WorkPoolWorkerSortValues)
|
|
124
124
|
}
|
|
125
|
+
|
|
126
|
+
export type WorkPoolWorkerSortOptions = { label: string, value: WorkPoolWorkerSortValues }[]
|