uploadChunkSize: getObjectPropertyValue()

in libs/designer/src/lib/core/actions/bjsworkflow/settings.ts [776:866]


      uploadChunkSize: getObjectPropertyValue(runtimeConfiguration, [
        Constants.SETTINGS.PROPERTY_NAMES.CONTENT_TRANSFER,
        Constants.SETTINGS.PROPERTY_NAMES.UPLOAD_CHUNK_SIZE,
      ]),
    };
  }
  if (isTrigger || workflowKind === WorkflowKind.STATELESS) {
    return undefined;
  }

  let isChunkTransferSupported = false;
  if (manifest) {
    const chunkingSetting = getOperationSettingFromManifest(manifest, 'chunking') as
      | OperationManifestSetting<UploadChunkMetadata>
      | undefined;
    isChunkTransferSupported = isSettingSupportedFromOperationManifest(chunkingSetting, isTrigger);
  } else if (equals(nodeType, Constants.NODE.TYPE.API_CONNECTION) && swagger && operationId) {
    isChunkTransferSupported = !!swagger.getOperationByOperationId(operationId)?.uploadChunkMetadata?.chunkTransferSupported;
  }

  return isChunkTransferSupported ? { transferMode: Constants.SETTINGS.TRANSFER_MODE.CHUNKED } : undefined;
};

export const isChunkedTransferModeSupported = (
  isTrigger: boolean,
  nodeType: string,
  manifest?: OperationManifest,
  swagger?: SwaggerParser,
  operationId?: string
): boolean => {
  if (manifest) {
    const chunkingSetting = getOperationSettingFromManifest(manifest, 'chunking') as
      | OperationManifestSetting<UploadChunkMetadata>
      | undefined;
    return isSettingSupportedFromOperationManifest(chunkingSetting, isTrigger);
  }
  if (isTrigger || !swagger || !operationId) {
    return false;
  }

  switch (nodeType.toLowerCase()) {
    case Constants.NODE.TYPE.API_CONNECTION:
      return !!swagger.getOperationByOperationId(operationId)?.uploadChunkMetadata?.chunkTransferSupported;

    case Constants.NODE.TYPE.HTTP:
      return true;

    default:
      return false;
  }
};

const getDownloadChunkSize = (definition?: LogicAppsV2.OperationDefinition): number | undefined => {
  return definition
    ? getObjectPropertyValue(getRuntimeConfiguration(definition), [
        Constants.SETTINGS.PROPERTY_NAMES.CONTENT_TRANSFER,
        Constants.SETTINGS.PROPERTY_NAMES.DOWNLOAD_CHUNK_SIZE,
      ])
    : undefined;
};

const getTrackedProperties = (isTrigger: boolean, manifest?: OperationManifest, definition?: LogicAppsV2.ActionDefinition): any => {
  const supported = areTrackedPropertiesSupported(isTrigger, manifest);
  return supported && definition ? getPropertyValue(definition as any, 'trackedProperties') : undefined;
};

const areTrackedPropertiesSupported = (isTrigger: boolean, manifest?: OperationManifest): boolean => {
  if (manifest) {
    const setting = getOperationSettingFromManifest(manifest, 'trackedProperties') as OperationManifestSetting<void> | undefined;
    return isSettingSupportedFromOperationManifest(setting, isTrigger);
  }

  return !isTrigger;
};

const getSecureInputsSetting = (definition?: LogicAppsV2.OperationDefinition): boolean => {
  if (definition) {
    const secureData = getObjectPropertyValue(getRuntimeConfiguration(definition), [Constants.SETTINGS.PROPERTY_NAMES.SECURE_DATA]);
    return secureData && secureData.properties.indexOf(Constants.SETTINGS.SECURE_DATA_PROPERTY_NAMES.INPUTS) > -1;
  }

  return false;
};

const isInputsPropertySupportedInSecureDataSetting = (nodeType: string, manifest?: OperationManifest): boolean => {
  // where to check if SUPPORT_OBFUSCATION feature is enabled?
  if (manifest) {
    const secureDataSetting = getOperationSettingFromManifest(manifest, 'secureData') as
      | OperationManifestSetting<SecureDataOptions>
      | undefined;
    if (secureDataSetting) {