Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ajot/8252b64ec7f3b4601cf656acbfe9d704 to your computer and use it in GitHub Desktop.
Save ajot/8252b64ec7f3b4601cf656acbfe9d704 to your computer and use it in GitHub Desktop.
{"name":"2-Lego Average Number of Pieces (Shared)","description":null,"organizationId":275732,"isEnabled":false,"crontab":"0 0 * * *","timezone":"America/New_York","blockData":[{"top":48,"left":48,"uuid":"994490cc-9c93-4bd0-b12e-5e075758547e","comment":{"body":"This is the entry point for the workflow. ","visible":true,"pluginId":"startTrigger-comment"},"options":{"crontab":"0 0 * * *","timezone":"America/New_York","scheduleType":"interval"},"pluginId":"startTrigger","blockType":"schedule","editorType":"JavascriptQuery","environment":"production","isMinimized":false,"resourceName":"schedule","incomingOnSuccessEdges":[]},{"top":352,"left":2096,"uuid":"5789d836-cb1b-4016-8b6c-1301670da5f6","comment":{"body":"Include the URL for the image in an email configured using SendGrid","visible":true,"pluginId":"sendEmail-comment"},"pluginId":"sendEmail","blockType":"default","editorType":"OpenAPIQuery","environment":"production","resourceName":"6180d747-3abf-4092-8ad1-bd9db24364e7","incomingOnSuccessEdges":["b7355bd2-4dcf-4f4f-8b47-c20cb036dd58"]},{"top":352,"left":1584,"uuid":"b7355bd2-4dcf-4f4f-8b47-c20cb036dd58","comment":{"body":"Extract the S3 URL from the response sent by Amazon S3","visible":true,"pluginId":"getS3URL-comment"},"pluginId":"getS3URL","blockType":"code","dimensions":{"width":452,"height":338},"editorType":"PythonQuery","environment":"production","resourceName":"PythonQuery","incomingOnSuccessEdges":["b9ce1f9b-a95d-4f34-a1c8-53d7a333f992"]},{"top":352,"left":560,"uuid":"01d9890c-9bbd-45d8-90cd-e8f5c1c7e2cb","comment":{"body":"Analyze the data using Pandas, and generate a bar plot using Seaborn, and Matplotlib.","visible":true,"pluginId":"averageNumberOfPieces-comment"},"pluginId":"averageNumberOfPieces","blockType":"code","dimensions":{"width":510,"height":582},"editorType":"PythonQuery","environment":"production","resourceName":"PythonQuery","incomingOnSuccessEdges":["c36539a8-9754-4b8e-b714-da193738752b"]},{"top":352,"left":1120,"uuid":"b9ce1f9b-a95d-4f34-a1c8-53d7a333f992","comment":{"body":"Upload the image file to Amazon S3 Bucket","visible":true,"pluginId":"UploadToAmazonS3Bucket-comment"},"pluginId":"UploadToAmazonS3Bucket","blockType":"default","editorType":"S3Query","environment":"production","resourceName":"e0aa33e2-ff6e-47ec-b2b9-e383e32fef8b","incomingOnSuccessEdges":["01d9890c-9bbd-45d8-90cd-e8f5c1c7e2cb"]},{"top":352,"left":48,"uuid":"c36539a8-9754-4b8e-b714-da193738752b","comment":{"body":"Get the Lego sets data from Retool Database","visible":true,"pluginId":"getLegoSetsData-comment"},"pluginId":"getLegoSetsData2","blockType":"default","editorType":"SqlQueryUnified","environment":"production","resourceName":"e6126c69-42db-442e-bd1e-e3a838fcfc06","incomingOnSuccessEdges":["994490cc-9c93-4bd0-b12e-5e075758547e"]}],"templateData":"[\"~#iR\",[\"^ \",\"n\",\"appTemplate\",\"v\",[\"^ \",\"isFetching\",false,\"plugins\",[\"~#iOM\",[\"startTrigger\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"startTrigger\",\"type\",\"datasource\",\"subtype\",\"JavascriptQuery\",\"namespace\",null,\"resourceName\",\"JavascriptQuery\",\"resourceDisplayName\",null,\"template\",[\"^3\",[\"queryRefreshTime\",\"\",\"lastReceivedFromResourceAt\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"showFailureToaster\",true,\"query\",\"return undefined\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"privateParams\",[\"~#iL\",[]],\"runWhenPageLoadsDelay\",\"\",\"data\",null,\"importedQueryInputs\",[\"^3\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"queryRunTime\",null,\"changesetObject\",\"\",\"errorTransformer\",\"// The variable 'data' allows you to reference the request's data in the transformer. \\n// example: return data.find(element => element.isError)\\nreturn data.error\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^:\",[]],\"enableErrorTransformer\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^3\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"runWhenPageLoads\",false,\"transformer\",\"// type your code here\\n// example: return formatDataAsArray(data).filter(row => row.quantity > 20)\\nreturn data\",\"events\",[\"^:\",[]],\"queryTimeout\",\"10000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^:\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"style\",null,\"position2\",null,\"mobilePosition2\",null,\"mobileAppPosition\",null,\"tabIndex\",null,\"container\",\"\",\"createdAt\",\"~m1681759938931\",\"updatedAt\",\"~m1682100145615\",\"folder\",\"\",\"screen\",null]]],\"sendEmail\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"sendEmail\",\"^4\",\"datasource\",\"^5\",\"OpenAPIQuery\",\"^6\",null,\"^7\",\"6180d747-3abf-4092-8ad1-bd9db24364e7\",\"^8\",null,\"^9\",[\"^3\",[\"queryRefreshTime\",\"\",\"method\",\"post\",\"operationId\",\"POST_mail-send\",\"lastReceivedFromResourceAt\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"server\",\"https://api.sendgrid.com/v3\",\"offlineUserQueryInputs\",\"\",\"successMessage\",\"\",\"queryDisabled\",\"\",\"path\",\"/mail/send\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"autoPaginate\",false,\"showFailureToaster\",true,\"query\",\"\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"privateParams\",[\"^:\",[]],\"runWhenPageLoadsDelay\",\"\",\"parameters\",\"{\\\"body\\\":{\\\"content\\\":[{\\\"value\\\":\\\"<html><body><img src=\\\\\\\"{{getS3URL.data}}\\\\\\\" alt=\\\\\\\"Lego Sets Per Year\\\\\\\"></body></html>\\\",\\\"type\\\":\\\"text/html\\\"}],\\\"subject\\\":\\\"Lego Sets Per Year\\\",\\\"from\\\":{\\\"email\\\":\\\"YOUR_SENDER_EMAIL\\\"},\\\"personalizations\\\":[{\\\"to\\\":[{\\\"email\\\":\\\"TO_EMAIL\\\"}],\\\"from\\\":{\\\"email\\\":\\\"YOUR_SENDER_EMAIL\\\"}}]}}\",\"data\",null,\"specPathOverride\",\"\",\"importedQueryInputs\",[\"^3\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"requestBodyDynamicStates\",\"\",\"queryRunTime\",null,\"changesetObject\",\"\",\"requestBody\",null,\"errorTransformer\",\"// The variable 'data' allows you to reference the request's data in the transformer. \\n// example: return data.find(element => element.isError)\\nreturn data.error\",\"specBasePath\",\"https://api.sendgrid.com/v3\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^:\",[]],\"serverVariables\",null,\"enableErrorTransformer\",false,\"autoPaginateLimit\",500,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^3\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"parameterDynamicStates\",\"{\\\"body\\\":\\\"{\\\\\\\"content\\\\\\\":\\\\\\\"[{}]\\\\\\\",\\\\\\\"personalizations\\\\\\\":[{}]}\\\"}\",\"runWhenPageLoads\",false,\"transformer\",\"// type your code here\\n// example: return formatDataAsArray(data).filter(row => row.quantity > 20)\\nreturn data\",\"events\",[\"^:\",[]],\"queryTimeout\",\"120000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^:\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^;\",null,\"^<\",null,\"^=\",null,\"^>\",null,\"^?\",null,\"^@\",\"\",\"^A\",\"~m1681832623112\",\"^B\",\"~m1682619772246\",\"^C\",\"\",\"^D\",null]]],\"getS3URL\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"getS3URL\",\"^4\",\"datasource\",\"^5\",\"PythonQuery\",\"^6\",null,\"^7\",\"PythonQuery\",\"^8\",null,\"^9\",[\"^3\",[\"queryRefreshTime\",\"\",\"lastReceivedFromResourceAt\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"showFailureToaster\",true,\"query\",\"import urllib.parse\\n\\nurl = UploadToAmazonS3Bucket.data.signedUrl\\n\\nparsed_url = urllib.parse.urlparse(url)\\nresult_url = parsed_url.scheme + \\\"://\\\" + parsed_url.netloc + parsed_url.path\\n\\nreturn(result_url)\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"privateParams\",[\"^:\",[]],\"runWhenPageLoadsDelay\",\"\",\"data\",null,\"importedQueryInputs\",[\"^3\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"queryRunTime\",null,\"changesetObject\",\"\",\"errorTransformer\",\"// The variable 'data' allows you to reference the request's data in the transformer. \\n// example: return data.find(element => element.isError)\\nreturn data.error\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^:\",[]],\"enableErrorTransformer\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^3\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"runWhenPageLoads\",false,\"transformer\",\"// type your code here\\n// example: return formatDataAsArray(data).filter(row => row.quantity > 20)\\nreturn data\",\"events\",[\"^:\",[]],\"queryTimeout\",\"120000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^:\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^;\",null,\"^<\",null,\"^=\",null,\"^>\",null,\"^?\",null,\"^@\",\"\",\"^A\",\"~m1681832799757\",\"^B\",\"~m1681832988119\",\"^C\",\"\",\"^D\",null]]],\"averageNumberOfPieces\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"averageNumberOfPieces\",\"^4\",\"datasource\",\"^5\",\"PythonQuery\",\"^6\",null,\"^7\",\"PythonQuery\",\"^8\",null,\"^9\",[\"^3\",[\"queryRefreshTime\",\"\",\"lastReceivedFromResourceAt\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"showFailureToaster\",true,\"query\",\"import pandas as pd \\nimport seaborn as sns \\nimport matplotlib.pyplot as plt \\nimport io \\n\\n# create a pandas dataframe called lego_sets using the lego set data retrieved in the previous block\\nlego_sets = pd.DataFrame(getLegoSetsData.data) \\n\\n# group the dataset by year and calculate the mean of pieces per set for each year\\npieces_per_set_per_year = lego_sets.groupby('year')['num_parts'].mean().reset_index()\\n\\n# create a line plot of pieces per set over the years\\nplt.figure(figsize=(14, 6)) # set the figure size\\nsns.lineplot(x=\\\"year\\\", y=\\\"num_parts\\\", data=pieces_per_set_per_year) # set the x and y axis, and the data for the plot\\n\\n# add title and labels to the plot\\nplt.title(\\\"Average Number of Pieces per Set over the Years\\\") \\nplt.xlabel(\\\"Year\\\") \\nplt.ylabel(\\\"Average Number of Pieces per Set\\\") \\n\\n# rotate x-axis labels for better readability\\nplt.xticks(rotation=90) \\n\\n# display the plot\\nplt.show() \\n\\n# save the plot as a PNG image in a file buffer\\nfile_buffer = io.BytesIO() \\nplt.savefig(file_buffer, format='png') \\nfile_buffer.seek(0) \\n\\n# get the image data from the file buffer\\nimage_data = file_buffer.getvalue() \\n\\n# return the image data\\nreturn image_data\\n\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"privateParams\",[\"^:\",[]],\"runWhenPageLoadsDelay\",\"\",\"data\",null,\"importedQueryInputs\",[\"^3\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"queryRunTime\",null,\"changesetObject\",\"\",\"errorTransformer\",\"// The variable 'data' allows you to reference the request's data in the transformer. \\n// example: return data.find(element => element.isError)\\nreturn data.error\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^:\",[]],\"enableErrorTransformer\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^3\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"runWhenPageLoads\",false,\"transformer\",\"// type your code here\\n// example: return formatDataAsArray(data).filter(row => row.quantity > 20)\\nreturn data\",\"events\",[\"^:\",[]],\"queryTimeout\",\"120000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^:\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^;\",null,\"^<\",null,\"^=\",null,\"^>\",null,\"^?\",null,\"^@\",\"\",\"^A\",\"~m1681834592691\",\"^B\",\"~m1681834596385\",\"^C\",\"\",\"^D\",null]]],\"UploadToAmazonS3Bucket\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"UploadToAmazonS3Bucket\",\"^4\",\"datasource\",\"^5\",\"S3Query\",\"^6\",null,\"^7\",\"e0aa33e2-ff6e-47ec-b2b9-e383e32fef8b\",\"^8\",null,\"^9\",[\"^3\",[\"queryRefreshTime\",\"\",\"lastReceivedFromResourceAt\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"fileKey\",\"\",\"offlineUserQueryInputs\",\"\",\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"showFailureToaster\",true,\"delimiter\",\"\",\"query\",\"\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"tagSet\",\"\",\"uploadFileName\",\"lego6.png\",\"privateParams\",[\"^:\",[]],\"runWhenPageLoadsDelay\",\"\",\"data\",null,\"uploadData\",\"{{ averageNumberOfPieces.data}}\",\"importedQueryInputs\",[\"^3\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"queryRunTime\",null,\"actionType\",\"upload\",\"copySource\",\"\",\"changesetObject\",\"\",\"errorTransformer\",\"// The variable 'data' allows you to reference the request's data in the transformer. \\n// example: return data.find(element => element.isError)\\nreturn data.error\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"prefix\",\"\",\"changeset\",\"\",\"rawData\",null,\"signedOperationOptions\",\"\",\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^:\",[]],\"enableErrorTransformer\",false,\"showLatestVersionUpdatedWarning\",false,\"bucketName\",\"YOUR_S3_BUCKET_NAME\",\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^3\",[]],\"signedOperationName\",\"\",\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"uploadFileType\",\"image/png\",\"maxKeys\",\"\",\"useRawUploadFileType\",true,\"runWhenPageLoads\",false,\"transformer\",\"// type your code here\\n// example: return formatDataAsArray(data).filter(row => row.quantity > 20)\\nreturn data\",\"events\",[\"^:\",[]],\"queryTimeout\",\"120000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^:\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^;\",null,\"^<\",null,\"^=\",null,\"^>\",null,\"^?\",null,\"^@\",\"\",\"^A\",\"~m1681834832795\",\"^B\",\"~m1682619775921\",\"^C\",\"\",\"^D\",null]]],\"getLegoSetsData2\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"getLegoSetsData2\",\"^4\",\"datasource\",\"^5\",\"SqlQueryUnified\",\"^6\",null,\"^7\",\"e6126c69-42db-442e-bd1e-e3a838fcfc06\",\"^8\",null,\"^9\",[\"^3\",[\"queryRefreshTime\",\"\",\"records\",\"\",\"lastReceivedFromResourceAt\",null,\"databasePasswordOverride\",\"\",\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"showFailureToaster\",true,\"query\",\"select * from sets\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"privateParams\",[\"^:\",[]],\"runWhenPageLoadsDelay\",\"\",\"warningCodes\",[\"^:\",[]],\"data\",null,\"recordId\",\"\",\"importedQueryInputs\",[\"^3\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"dataArray\",[\"^:\",[]],\"cacheKeyTtl\",\"\",\"filterBy\",\"\",\"requestSentTimestamp\",null,\"databaseHostOverride\",\"\",\"metadata\",null,\"editorMode\",\"sql\",\"queryRunTime\",null,\"actionType\",\"\",\"changesetObject\",\"\",\"shouldUseLegacySql\",false,\"errorTransformer\",\"// The variable 'data' allows you to reference the request's data in the transformer. \\n// example: return data.find(element => element.isError)\\nreturn data.error\",\"finished\",null,\"databaseNameOverride\",\"\",\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^:\",[]],\"enableErrorTransformer\",false,\"enableBulkUpdates\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^3\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"bulkUpdatePrimaryKey\",\"\",\"runWhenPageLoads\",false,\"transformer\",\"// type your code here\\n// example: return formatDataAsArray(data).filter(row => row.quantity > 20)\\nreturn data\",\"events\",[\"^:\",[]],\"tableName\",\"\",\"queryTimeout\",\"120000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^:\",[]],\"databaseUsernameOverride\",\"\",\"shouldEnableBatchQuerying\",false,\"doNotThrowOnNoOp\",false,\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^;\",null,\"^<\",null,\"^=\",null,\"^>\",null,\"^?\",null,\"^@\",\"\",\"^A\",\"~m1681835276335\",\"^B\",\"~m1681835276335\",\"^C\",\"\",\"^D\",null]]]]],\"^A\",null,\"version\",\"2.118.2\",\"appThemeId\",null,\"appMaxWidth\",\"1560px\",\"preloadedAppJavaScript\",null,\"preloadedAppJSLinks\",[],\"testEntities\",[],\"tests\",[],\"appStyles\",\"\",\"responsiveLayoutDisabled\",false,\"loadingIndicatorsDisabled\",false,\"urlFragmentDefinitions\",[\"^:\",[]],\"pageLoadValueOverrides\",[\"^:\",[]],\"customDocumentTitle\",\"\",\"customDocumentTitleEnabled\",false,\"customShortcuts\",[],\"isGlobalWidget\",false,\"isMobileApp\",false,\"multiScreenMobileApp\",false,\"mobileAppSettings\",[\"^ \",\"mobileOfflineModeEnabled\",false,\"mobileOfflineModeDelaySync\",false,\"mobileOfflineModeBannerMode\",\"default\",\"displaySetting\",[\"^ \",\"landscapeMode\",false,\"tabletMode\",false]],\"folders\",[\"^:\",[]],\"queryStatusVisibility\",true,\"markdownLinkBehavior\",\"never\",\"inAppRetoolPillAppearance\",\"NO_OVERRIDE\",\"rootScreen\",null,\"instrumentationEnabled\",false,\"experimentalFeatures\",[\"^ \",\"sourceControlTemplateDehydration\",false],\"experimentalPerfFeatures\",[\"^ \",\"serverDepGraphEnabled\",false,\"useRuntimeV2\",false,\"runtimeV2OptOut\",false],\"experimentalStabilityFeatures\",[\"^ \",\"lockModelForUpdates\",false],\"experimentalDataTabEnabled\",false]]]","triggerWebhooks":[],"customLibraries":[{"version":"4.17.21","language":"javascript","variable":"_","codeString":"/* Edit library variable below */\n\nconst _ = require('lodash')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require('mathjs') */\n","libraryName":"lodash"},{"version":"2.1.0","language":"javascript","variable":"numbro","codeString":"/* Edit library variable below */\n\nconst numbro = require('numbro')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require('mathjs') */\n","libraryName":"numbro"},{"version":"5.3.2","language":"javascript","variable":"Papa","codeString":"/* Edit library variable below */\n\nconst Papa = require('papaparse')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require('mathjs') */\n","libraryName":"papaparse"},{"version":"0.5.23","language":"javascript","variable":"moment","codeString":"/* Edit library variable below */\n\nconst moment = require('moment-timezone')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require('mathjs') */\n","libraryName":"moment-timezone"},{"version":"3.4.0","language":"javascript","variable":"uuid","codeString":"/* Edit library variable below */\n\nconst uuid = require('uuid')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require('mathjs') */\n","libraryName":"uuid"}],"createdBy":414114,"protected":false}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment