From e4c142ff80fc7876b30a94220c69218e948e804e Mon Sep 17 00:00:00 2001 From: pattra Date: Tue, 8 Oct 2024 09:56:22 -0400 Subject: [PATCH] Support write-only inputs in CNI (#273) --- packages/spectral/package.json | 2 +- .../src/serverTypes/convertComponent.ts | 7 ++++++- .../src/serverTypes/convertIntegration.ts | 17 +++++++++++------ packages/spectral/src/types/Inputs.ts | 1 + 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/packages/spectral/package.json b/packages/spectral/package.json index 8db4b35..88703f1 100644 --- a/packages/spectral/package.json +++ b/packages/spectral/package.json @@ -1,6 +1,6 @@ { "name": "@prismatic-io/spectral", - "version": "9.2.0", + "version": "9.3.0", "description": "Utility library for building Prismatic components and code-native integrations", "keywords": ["prismatic"], "main": "dist/index.js", diff --git a/packages/spectral/src/serverTypes/convertComponent.ts b/packages/spectral/src/serverTypes/convertComponent.ts index ffd48b1..f9d0ca8 100644 --- a/packages/spectral/src/serverTypes/convertComponent.ts +++ b/packages/spectral/src/serverTypes/convertComponent.ts @@ -36,7 +36,12 @@ export const convertInput = ( collection === "keyvaluelist" && typeof label === "object" ? label.key : undefined; return { - ...omit(rest, ["onPremControlled", "permissionAndVisibilityType", "visibleToOrgDeployer"]), + ...omit(rest, [ + "onPremControlled", + "permissionAndVisibilityType", + "visibleToOrgDeployer", + "writeOnly", + ]), key, type, default: defaultValue ?? InputFieldDefaultMap[type], diff --git a/packages/spectral/src/serverTypes/convertIntegration.ts b/packages/spectral/src/serverTypes/convertIntegration.ts index 7915c99..5824f4d 100644 --- a/packages/spectral/src/serverTypes/convertIntegration.ts +++ b/packages/spectral/src/serverTypes/convertIntegration.ts @@ -596,12 +596,17 @@ export const convertConfigVar = ( return result; } - const meta = convertInputPermissionAndVisibility( - pick(input, ["permissionAndVisibilityType", "visibleToOrgDeployer"]) as { - permissionAndVisibilityType?: PermissionAndVisibilityType; - visibleToOrgDeployer?: boolean; - }, - ); + const meta: VisibilityAndPermissionValue & { writeOnly?: true } = + convertInputPermissionAndVisibility( + pick(input, ["permissionAndVisibilityType", "visibleToOrgDeployer"]) as { + permissionAndVisibilityType?: PermissionAndVisibilityType; + visibleToOrgDeployer?: boolean; + }, + ); + + if (input.writeOnly) { + meta.writeOnly = input.writeOnly; + } const defaultValue = input.collection ? (input.default || []).map((defaultValue) => { diff --git a/packages/spectral/src/types/Inputs.ts b/packages/spectral/src/types/Inputs.ts index e70ba0e..aa56b02 100644 --- a/packages/spectral/src/types/Inputs.ts +++ b/packages/spectral/src/types/Inputs.ts @@ -97,6 +97,7 @@ export type ConnectionInput = ( | BooleanInputField ) & { shown?: boolean; + writeOnly?: true; }; export type OnPremConnectionInput = {