@prefecthq/prefect-ui-library 3.11.13 → 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.
@@ -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;
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prefecthq/prefect-ui-library",
3
- "version": "3.11.13",
3
+ "version": "3.11.14",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -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
+ }
@@ -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 */
@@ -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)
@@ -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',