feat(nodes): add enable, disable, status to invocation cache

- New routes to clear, enable, disable and get the status of the cache
- Status includes hits, misses, size, max size, enabled
- Add client cache queries and mutations, abstracted into hooks
- Add invocation cache status area (next to queue status) w/ buttons
This commit is contained in:
psychedelicious
2023-09-21 18:57:52 +10:00
committed by Kent Keirsey
parent aa82f9360c
commit 7ac99d6bc3
22 changed files with 687 additions and 134 deletions

View File

@ -1,4 +1,5 @@
import { api } from '..';
import { paths } from '../schema';
import { AppConfig, AppVersion } from '../types';
export const appInfoApi = api.injectEndpoints({
@ -19,7 +20,45 @@ export const appInfoApi = api.injectEndpoints({
providesTags: ['AppConfig'],
keepUnusedDataFor: 86400000, // 1 day
}),
getInvocationCacheStatus: build.query<
paths['/api/v1/app/invocation_cache/status']['get']['responses']['200']['content']['application/json'],
void
>({
query: () => ({
url: `app/invocation_cache/status`,
method: 'GET',
}),
providesTags: ['InvocationCacheStatus'],
}),
clearInvocationCache: build.mutation<void, void>({
query: () => ({
url: `app/invocation_cache`,
method: 'DELETE',
}),
invalidatesTags: ['InvocationCacheStatus'],
}),
enableInvocationCache: build.mutation<void, void>({
query: () => ({
url: `app/invocation_cache/enable`,
method: 'PUT',
}),
invalidatesTags: ['InvocationCacheStatus'],
}),
disableInvocationCache: build.mutation<void, void>({
query: () => ({
url: `app/invocation_cache/disable`,
method: 'PUT',
}),
invalidatesTags: ['InvocationCacheStatus'],
}),
}),
});
export const { useGetAppVersionQuery, useGetAppConfigQuery } = appInfoApi;
export const {
useGetAppVersionQuery,
useGetAppConfigQuery,
useClearInvocationCacheMutation,
useDisableInvocationCacheMutation,
useEnableInvocationCacheMutation,
useGetInvocationCacheStatusQuery,
} = appInfoApi;