metis-desk/modules/resources/src/common/index.ts
David d2bf856c97 feat(global-operating-systems): implement global operating systems management features
- Add softwareReferenceHref helper function for generating resource links.
- Create useGlobalResourceEditor hook for managing global application resources.
- Implement useGlobalResourceForm hook for handling global resource forms.
- Introduce GlobalSoftwareCatalogProvider for context management of global applications.
- Develop GlobalOperatingSystemsPage to render global operating systems using the existing GlobalApplicationsPage.
- Add operating system form identity helpers for managing OS-specific fields.
- Create operating system specification labels for better localization.
- Implement OperatingSystemIdentityReview component for reviewing OS identities.
- Add OperatingSystemProductFields component for displaying OS product details.
- Write tests for resource characteristic control to ensure proper translation and value handling.
- Create a Python script for auditing global operating systems UI interactions.
- Add tests for expanded workstation profiles to ensure proper functionality and responsiveness.
2026-10-25 20:39:06 +01:00

53 lines
2.1 KiB
TypeScript

import { z } from "zod/v4";
import { FieldTypeSchema, ResourceDefinitionSchema } from "../api/domain/resource-definition";
export type { ResourceDefinitionSpec, ResourceFieldType } from "../api/domain/resource-definition";
export { FieldTypeSchema, ResourceDefinitionSchema };
export const CatalogParamsSchema = z.strictObject({
scope: z.union([z.literal("global"), z.uuid()]),
});
export const CatalogItemParamsSchema = CatalogParamsSchema.extend({ id: z.uuid() });
export const SaveDefinitionRequestSchema = z.strictObject({ values: ResourceDefinitionSchema });
export const AvailabilityRequestSchema = z.strictObject({ active: z.boolean().nullable() });
export const CatalogItemSchema = z.strictObject({
id: z.uuid(),
companyId: z.uuid().nullable(),
builtin: z.boolean(),
builtinKey: z.string().nullable().optional(),
active: z.boolean(),
effectiveActive: z.boolean(),
overridden: z.boolean(),
values: ResourceDefinitionSchema,
bindings: z.array(z.strictObject({ id: z.uuid(), fieldId: z.uuid(), required: z.boolean() })),
});
export const CatalogResponseSchema = z.strictObject({ items: z.array(CatalogItemSchema) });
export const SaveDefinitionResponseSchema = CatalogResponseSchema.extend({ savedId: z.uuid() });
export type CatalogItemDTO = z.infer<typeof CatalogItemSchema>;
export type CatalogResponseDTO = z.infer<typeof CatalogResponseSchema>;
export type SaveDefinitionResponseDTO = z.infer<typeof SaveDefinitionResponseSchema>;
export * from "./directory-domain-options";
export type { DirectoryDomainDTO } from "./directory-domains";
export { DirectoryDomainSchema } from "./directory-domains";
export * from "./dto/application-coincidences.dto";
export * from "./dto/request/resource-application.request.dto";
export * from "./dto/response/resource-application.response.dto";
export * from "./dto/shared/application-reference.dto";
export * from "./inventory";
export * from "./network-shares";
export * from "./operating-system-identity";
export { resourceTemplateCapability } from "./resource-capabilities";
export * from "./resource-client-contract";