diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..c069821 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Launch Program", + "skipFiles": [ + "/**" + ], + "program": "${workspaceFolder}/sigma-api-recipes/workbooks/update-owner.js" + } + ] +} \ No newline at end of file diff --git a/sigma-api-recipes/.env b/sigma-api-recipes/.env index 2ce7e41..103ab7d 100644 --- a/sigma-api-recipes/.env +++ b/sigma-api-recipes/.env @@ -21,6 +21,8 @@ baseURL=https://aws-api.sigmacomputing.com/v2 MEMBERID= NEW_MEMBER_TYPE= +# yRn1UFV8ngVWBM1Hgrl51h7MS8uow me + EMAIL= NEW_MEMBER_FIRST_NAME= diff --git a/sigma-api-recipes/workbooks/update-owner.js b/sigma-api-recipes/workbooks/update-owner.js new file mode 100644 index 0000000..07c91da --- /dev/null +++ b/sigma-api-recipes/workbooks/update-owner.js @@ -0,0 +1,43 @@ +// This script updates the ownership of a specified inode in Sigma using the "Update an inode" endpoint. + +// Load environment variables from a specific .env file for configuration +require('dotenv').config({ path: 'sigma-api-recipes/.env' }); + +// Import the function to obtain a bearer token from the authenticate-bearer module +const getBearerToken = require('../get-access-token'); + +// Import Axios for making HTTP requests +const axios = require('axios'); + +// Load use-case specific variables from environment variables +const baseURL = process.env.baseURL; // Base URL for the Sigma API +const memberid = process.env.MEMBERID; // New member ID to assign to the inode as owner +const workbookId = process.env.WORKBOOK_ID; // Workbook ID to be used as the urlId for the inode + +// Function to update the ownerId of a specified inode using the workbookId +async function updateInodeOwner(workbookId) { + const token = await getBearerToken(); + if (!token) { + console.error('Failed to obtain Bearer token.'); + return; + } + + try { + const response = await axios.patch( + `${baseURL}/files/${workbookId}`, + { ownerId: memberid }, // Use `ownerId` with `memberid` value from .env + { + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + } + } + ); + console.log('Inode updated successfully:', response.data); + } catch (error) { + console.error('Error updating inode:', error.response ? error.response.data : error); + } +} + +// Execute the update function +updateInodeOwner(workbookId);