# v4 -------------------------------------------------------------------------------- title: "Overview" description: "Catalyst Web SDK is a set of tools and libraries that enable you to access Catalyst components and create web client applications" last_updated: "2026-09-29T06:07:16.270Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/overview/" service: "All Services" related: - JavaScript SDK (/en/sdk/javascript/v1/auth-config/node-consideration/) - Overview - Java SDK (/en/sdk/java/v1/overview/) - Overview - Python SDK (/en/sdk/python/v1/overview/) -------------------------------------------------------------------------------- # Web SDK Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. ## Overview The Catalyst Web SDK has the javascript methods which helps you to access the Catalyst Components from your client web application. ### Prerequisites * Catalyst CLI (Refer CLI Installation) * Catalyst project (Refer Catalyst Projects) * Any text editor(Xcode or Sublime) ### Authentication Catalyst provides a straightforward authentication mechanism for users to access the Catalyst REST APIs and our SDKs. In order to use the catalyst components from your client application, it is mandatory to integrate the authentication mechanism provided by Catalyst. <br> ### Initialize SDK Catalyst Authentication can be integrated with your application, by including the code snippet given below in your application. This script allows you to access the JavaScript methods of Catalyst Web SDK. This initializes the Web SDK and refers to an init.js file which will automatically populate the essential details of your project, such as the Project ID which is your project's unique ID and ZAID which is the project's key. Note: The request pattern /\_\_catalyst/ \* is reserved. You will not be able to include your own files in that location. These values are automatically populated based on the environment that you are working on. That is, if this script is called from the Development environment URL of your app, the appropriate ZAID value is populated. &lt;script src="https://static.zohocdn.com/catalyst/sdk/js/4.6.2/catalystWebSDK.js"&gt;&lt;/script&gt; &lt;script src="/__catalyst/sdk/init.js"&gt;&lt;/script&gt; &lt;script&gt; catalyst.auth.signIn("your element id here...."); &lt;/script&gt; You can build the sign-in form of your application as an iFrame using this code snippet. You must however add this code snippet in all of your pages. This initialization script is required in all pages because the scope of the catalyst object is limited to a single page. The code contains the line: catalyst.auth.signIn("Your elementID here"); . The elementID can be the ID of any HTML element or div element in your application's login page. You should replace this with the elementID of your application's login and implement this in the page that contains the user login. You can now create a division in the same page for your iFrame as: _&lt;div id="Your elementID here"&gt; &lt;/div&gt;_. This will span the iFrame for user login in the same page. For example, if your elementID is "login", your code will look like this: * In the Web SDK Initialisation script: _catalyst.auth.signIn("login");_ * In the body of your page: _&lt;div id="login"&gt;&lt;/div&gt;_ Note: You can also access an older version (v 1.0.0) of the web initialization script from the Embedded Authentication section in Authentication. Refer to the Embedded Authentication help page for details. <br> ### Manage Environment Variables You can manage the environment variables through code using the following Catalyst methods: * To set the environment variable: catalyst.setCatalystEnv(keyName,value) * To get the environment variable: catalyst.getCatalystEnv(key) * To delete the environment variable: catalyst.deleteCatalystEnv(key) <br> ### Instance Objects It is always effective to minimize the API access whenever not required. In case, you need an API reference which should not actually fire the API, but should refer the component in your code for subsequent access, then Catalyst WebSDK provides that facility. For example, the following code will not fire an API call to refer a specific file component. catalyst.file.folderId(folder_id).fileId(file_id); However, the following code will actually fire an API call to delete a file from a selected folder, catalyst.file.folderId(folder_id).fileId(file_id).delete(); Note: Promises are returned with a specified object after firing the actual API call. Therefore, .then() is handled only after the actual API calls. The API calls cannot be used with dummy objects that don't fire an API. <br> ### Responses and Exceptions All the responses are returned as JSON objects containing data, status codes, and status messages. A developer can track the responses easily from these objects. #### Exceptions The faulty behaviors of the application output are called exceptions or errors. The Catalyst Web SDK throws 3 types of errors called appET, ServerET, and DeveloperET. These errors define whether faulty behavior is caused by application code, server error, or something else. #### Code the Client Application 1. Open your system's terminal and create an empty resource directory. 2. Initialize catalyst and select the client option. 3. Select the project you created ,to deploy the client application. 4. A boiler plate client code will be generated as shown below. 5. Open it in your text editor, whose structure looks like the one shown below. Note: The location where the boiler plate code (client folder and catalyst.json) is generated, is the project's home location. The following table describes the list of files and their purposes in your resource directory, <table class="content-table"> <thead> <tr> <th class="w10p">S.No</th> <th class="w30p">Files/Packages</th> <th class="w60p">Purpose</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>client (folder)</td> <td>The folder that has the static files(js, css, html,etc) of your client application.</td> </tr> <tr> <td>2</td> <td>client-package.json</td> <td>A json file that has the configuration information of your client application</td> </tr> </tbody> </table> <br> ### Structure of client-package.json { "name": "SampleApp", "version": "1.0.0", "description": "This is my sample app", "homepage": "index.html", "login_redirect":"home.html" } Here are the attributes of client-package.json: <table class="content-table"> <thead> <tr> <th class="w30p">Key Name</th> <th class="w70p">Description</th> </tr> </thead> <tbody> <tr> <td>name</td> <td>Name of your client application</td> </tr> <tr> <td>version</td> <td>Version of your client application. Refer to <a href="/en/cloud-scale/help/web-client-hosting/introduction">Web Client Hosting help page</a> for detailed information about Client application version management.</td> </tr> <tr> <td>description</td> <td>A short description about the current version you are going to deploy.</td> </tr> <tr> <td>homepage</td> <td>The landing page of your application, say <strong>index.html</strong> .</td> </tr> <tr> <td>login_redirect</td> <td>The page to be redirected after the login page. It should be mandatory if you integrate Catalyst Authentication in your application. Refer to <a href="/en/cloud-scale/help/authentication/introduction">Authentication</a> and <a href="/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser">Authentication API</a> help pages for details.</td> </tr> </tbody> </table> You can code your web application's UI elements, java script files and CSS in the appropriate files given in the Client folder. <br> ### Deploy the Client Application You can deploy the client application using Catalyst CLI. Refer to the Deploy Resources help page for detailed help. 1. Open your system's terminal. 2. From the Project's home location, deploy your client app using the command: catalyst deploy --only client Note: You can also deploy the client using the catalyst web console. Once deployed , you will get an URL endpoint with which you can access your client application. <br /> ## Cloud Scale ### Authentication -------------------------------------------------------------------------------- title: "Get an Authentication Instance" description: "This page describes the method to fetch an authentication instance in your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.271Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/get-auth-instance/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get an Authentication Instance Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. The auth reference can be created to perform sign-in and sign-out operations.The following method will be used for this purpose and does not fire a server side call: //Get an Auth instance var auth = catalyst.auth; -------------------------------------------------------------------------------- title: "Get a Component Instance" description: "This page describes the method to fetch a component instance in your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.271Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/get-comp-instance/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get a Component Instance Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. The userManagement reference can be created using the following method which does not fire a server side call. //Get an UserManagement Instance var userManagement = catalyst.userManagement; -------------------------------------------------------------------------------- title: "Add New User" description: "This page describes the method to add a new user account to your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.271Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/add-new-user/" service: "Cloud Scale" related: - JavaScript SDK (/en/sdk/javascript/v1/cloudscale/authentication/add-user-to-org/) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Add New User Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. You can add end users to your Catalyst serverless applications, fetch their details, or manage their accounts easily. When a user has signed up to a Catalyst application, unique identification values like ZUID and userID are created for them. The user is also assigned to an organization by Catalyst. You can learn more about this from the Users help page. You can use the following code snippet to register a new user to access your Catalyst application. This registration process is handled using the signUp() method. The auth reference used in the code snippet below is defined in the auth instance page. You must provide the email address and last name to register of the user mandatorily while adding the user. Note: You will be able to add only 25 users in your application in the development environment. After you deploy your application to production, you can include any number of end-users in it. The JSON objects containing the registration details of a particular user are created as shown below. //Enter the first name, last name, email id, platform and the redirect url var data = { "first_name": "Jason", "last_name": "Chang", "email_id": "jason.c@zylker.com", "platform_type": "web", "redirect_url": "https://shipmenttracking.zylker.com/" }; This object is passed as an argument to the signUp() method. The promise returned here will be resolved to an object whose content key contains details of the registered user. //Register the user by passing the object This in turn returns a promise var auth = catalyst.auth; var signupPromise = auth.signUp(data); signupPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A sample response that you will receive for each version is shown below: { zaid: "1005634498", user_details: { zuid: "1005641290", zaaid: "1005641456", org_id: "1005641456", status: "ACTIVE", is_confirmed: false, email_id: "p.boylie@zylker.com", first_name: "loki", last_name: "Boyle", created_time: "Aug 12, 2021 12:33 PM", modified_time: "Aug 12, 2021 12:33 PM", invited_time: "Aug 12, 2021 12:33 PM", role_details: { role_name: "App User", role_id: "10103000000115016" }, user_type: "App User", source: "Email", user_id: "10103000000111308" }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type": "web", org_id: "10062221186" } { zaid: 1005634498, user_details: { zuid: 1005641433, zaaid: 1005641434, org_id: 1005641434, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 12, 2021 12:27 PM", modified_time: "Aug 12, 2021 12:27 PM", invited_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000007745, project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null } -------------------------------------------------------------------------------- title: "Reset Password" description: "This page describes the method to reset the password of a user account in your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.271Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/reset-password/" service: "Cloud Scale" related: - JavaScript SDK (/en/sdk/javascript/v1/overview/) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Reset Password Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. Once a user has been successfully registered, you can reset their password using the following code snippet. When the the forgotPassword() method is called, a reset password link will be generated and sent to the user's email address. Only the user's email address is a mandatory attribute. The userManagement reference used in the code snippet below is the component instance. JSON objects containing the registration details of a particular user are created as follows: //Create an object with the details such as email Id, platform and redirect url var data = { "email_id": "amelia.burrows@zylker.com", "platform_type": "web", "redirect_url": "https://catalyst.zoho.com" }; This object is passed as an argument to the forgotPassword() method. Note : The promise returned will be resolved to an object in which the content key contains a confirmation message. //Reset password by passing the details. This in turn returns a promise. var userManagement = catalyst.userManagement; var forgotPromise = userManagement.forgotPassword(data); forgotPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); -------------------------------------------------------------------------------- title: "Set New Password" description: "This page describes the method to set the password of the user after they complete the login process with Authentication." last_updated: "2026-09-29T06:07:16.271Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/set-new-password/" service: "Cloud Scale" related: - JavaScript SDK (/en/sdk/javascript/v1/overview/) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. This SDK snippet allows your end-user to reset their password after they have logged in to your applicaiton. It is mandatory that they input their oldPassword to change it. The auth reference used in the code snippet below is defined in the auth instance page. catalyst.auth.changePassword(oldPassword,newPassword) Note: This SDK snippet is only available if you install Web SDK 4.3.0 -------------------------------------------------------------------------------- title: "Get a User Object" description: "This page describes the method to fetch a user object instance in your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.271Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/get-user-object/" service: "Cloud Scale" related: - JavaScript SDK (/en/sdk/javascript/v1/overview/) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get a User Object Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. A user object can be created using the following method which does not fire a server side call. The userManagementreference used in the code snippet below is the component instance. //Get the user object passing the user id. var userManagement = catalyst.userManagement; var user = userManagement.userId(USER_ID); -------------------------------------------------------------------------------- title: "Get User Details" description: "This page describes the method to fetch a user account details in your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.272Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/get-user-details/" service: "Cloud Scale" related: - JavaScript SDK (/en/sdk/javascript/v1/overview/) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get User Details Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. Catalyst Authentication provides some methods to retrieve the details of the application users. You can obtain the user information of the current user, any user, or all users of the application. ### Get Current User Details The method getCurrentProjectUser() fetches the details of a user on whose scope the function is getting executed. The userManagement reference used in the code snippets is the component instance created earlier. The promise returned here will be resolved to an object in which the content key contains the details of the current user of the application. //Get the details of the current user var userManagement = catalyst.userManagement; var currentUserPromise = userManagement.getCurrentProjectUser(); currentUserPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); Additionally, you can also use the isUserAuthenticated() method which is an alternative to the getCurrentProjectUser() method. //Get the details of the current user var userManagement = catalyst.auth; var currentUserPromise = userManagement.isUserAuthenticated(); currentUserPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A sample response that you will receive for each version is shown below: { zuid: "10062169698", zaaid: "10062169862", org_id: "10062169862", status: "ACTIVE", is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", created_time: "Jul 05, 2023 10:30 AM", modified_time: "Jul 05, 2023 10:30 AM", invited_time: "Jul 05, 2023 10:30 AM", role_details: { role_name: "App Administrator", role_id: "10103000000115014" }, user_type: "App User", user_id: "10103000000115057", locale: "us|en_us|America/Los_Angeles", time_zone: "America/Los_Angeles" } { zuid: 1005641433, zaaid: 1005641434, org_id: 1005641434, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000007745, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } -------------------------------------------------------------------------------- title: "Third-party Authentication" description: "This page describes the methods required to enable third-party authentication in your Catalyst application" last_updated: "2026-09-29T06:07:16.272Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/third-party-custom-token/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Third-party Authentication Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. Cloud Scale's Authentication component allows you to implement a third-party authentication service of your preference for your Catalyst application. The authorization and validation of the end-user is handled by the third-party service, and the data is passed on to Catalyst. Before you associate a third-party authentication with your Catalyst application, you must ensure that you have first completed handling the third-party logic in the external service. You can configure the authentication with any third-party of your choice. Note: Since you are implementing a third-party authentication service, it is understood that the security infrastructure of your application is contingent on the efficiency of the third-party service that you have chosen. Next, you set up the third-party authentication that you configured in Catalyst by navigating to the Authentication component in *Cloud Scale* in the Catalyst console. The steps are explained in Set Up Third-party Authentication in Catalyst help page. This process involves the following steps that you must perform: ### Generate a Custom Server Token First, we generate a custom server token. When a user is re-directed from a third-party service after being authenticated, their credentials must be passed to an authentication function that you will need to code in Java, Node.js, or Python. This function will generate a Catalyst server-side token **JSON Web Token** token (JWT) which will then be passed to the client. Note: To enable a third-party authentication in your Catalyst application, you must ensure that you have enabled Public Signup in the console. ### Authenticate User Using JWT The below SDK will use the generated JWT or custom token to authenticate the end-user. You must incorporate this code into your web client logic, to enable third-party authentication. This is a sample code that uses a JWT to authenticate the user is given below. &lt;script src="https://static.zohocdn.com/catalyst/sdk/js/4.6.2/catalystWebSDK.js"&gt;&lt;/script&gt; &lt;script src="/__catalyst/sdk/init.js"&gt;&lt;/script&gt; &lt;script&gt; catalyst.auth.signinWithJwt(getCustomTokenCallback); function getCustomTokenCallback(){ return fetch("{domain}/server/{function_name}/execute") //function url to get the generated custom token .then(resp => resp.json() .then(resp => { return new Promise((resolve, reject) => { resolve({ client_id : "********", scopes : "ZOHOCATALYST.tables.rows.ALL,ZOHOCATALYST.cache.READ", jwt_token : "*********" }); }); })) } &lt;/script&gt; Note: The custom server token will have to be generated every single time the user logs in to your application using a third-party authentication service. ### Configure Addional Settings Finally, you can onfigure Customer User Validation or Authorized Domains as a part of *Whitelisting* and finish the set up. Catalyst will display a confirmation that a third-party authentication service has been enabled and your application’s authentication is being handled by it. -------------------------------------------------------------------------------- title: "Sign a User Out From The Application" description: "This page describes the method to sign out an user account from your Web application with sample code snippets" last_updated: "2026-09-29T06:07:16.272Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/sign-out-user/" service: "Cloud Scale" related: - JavaScript SDK (/en/sdk/javascript/v1/cloudscale/authentication/add-user-to-org/) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Sign a User Out From The Application Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. A user can log out from the application using the signOut() method where the redirect URL is passed as an argument.The auth reference used in the code snippet below is the auth instance. Note : This does not return a promise. //Configure the redirect url after successful logout var redirectURL = "https://catalyst.zoho.com"; //Use the redirect url and call the method to sign out  var auth = catalyst.auth; auth.signOut(redirectURL); -------------------------------------------------------------------------------- title: "Cross Domain Access" description: "This page describes the method to authenticte your backend and frontend servvices when they are hosted in different domains" last_updated: "2026-09-29T06:07:16.272Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/cross-domain-access/" service: "Cloud Scale" related: - JavaScript SDK (/en/sdk/javascript/v1/cloudscale/authentication/add-user-to-org/) - Authentication (/en/cloud-scale/help/authentication/introduction) - Cross Domain Access Help Doc (/en/cloud-scale/help/authentication/cross-domain-access/) -------------------------------------------------------------------------------- # Authenticate Backend Requirements for Frontend Services Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. The generateAuthToken() SDK method will generate the required token to validate backend invocation calls made from the frontend services; when the backend and front services are hosted in different domains. Notes:<br /> * You need to ensure that the backend and frontend services though hosted on different hosting services are part of the same Catalyst project. * You must ensure you have whitelisted the domains of the backend and frontend services using the CORS feature present in Catalyst Authentication. You can find out more about the CORS feature from this help documentation. * The generateAuthToken() SDK method is available from Web SDK version v4.6.1. var auth = catalyst.auth; auth.generateAuthToken().then((response) => { const token = response.access_token; // the required user token will be shared as value in the response }); ### Data Store -------------------------------------------------------------------------------- title: "Get a Component Instance" description: "This page describes the method to fetch component instance from the Data Store in your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.274Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/data-store/get-component-instance/" service: "Cloud Scale" related: - Data Store (/en/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Data Store Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. ### Get a Component Instance The datastore reference can be created by the following method which would not fire a server side call. //Get a datastore instance var datastore = catalyst.table; -------------------------------------------------------------------------------- title: "Get Table Instance" description: "This page describes the method to fetch the table instance using tableID and name from a table in the Data Store in your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.274Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/data-store/get-table-instance/" service: "Cloud Scale" related: - Data Store (/en/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Get a Table Object Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. A table object can be created by the following methods which would not fire a server-side call. The datastore reference used in the below code snippets is the component instance. ### Get a Table Instance Using TableID A tableobject can be created by referring to the table ID. //Get a table object using table ID var table = datastore.tableId('1510000000110121'); ### Get a Table Instance Using TableName Alternatively, a table object can be created by referring to the table name. Note : There is no promise involved in the above methods and the table object contains the methods accessible by the table. //Get a table object using the table name var table = datastore.tableId('SampleTable'); -------------------------------------------------------------------------------- title: "Get Table Metadata" description: "This page describes the method to fetch the meta data of a single table or multiple tables in your Web application with sample code snippets" last_updated: "2026-09-29T06:07:16.274Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/data-store/get-table-meta/" service: "Cloud Scale" related: - Get Table Metadata - API (/en/api/code-reference/cloud-scale/data-store/get-table-metadata/#GetTableMetadata) - Data Store (/en/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Get Table Metadata Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. You can obtain the metadata of the tables in the Catalyst Data Store. ### Get Metadata of All Tables You can fetch the details of all the tables in a Catalyst project using getAll() method. The datastore and table instances used in the code snippet below are the component instance and the table object respectively. This returns a promise which will be resolved to an object in which the content key contains the array of the meta details of all the tables. //Get metadata of all the tables in the project var datastore = catalyst.table; var allTablePromise = datastore.getAll(); allTablePromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A sample response that you will receive for each version is shown below: [ { "project_id":{ "project_name":"AlienCity", "id":"2136000000007733" }, "table_name":"AlienCity", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":"2136000000007781" }, "table_name":"CityDetails", "modified_by":{ "zuid":"66466723", "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":"2136000000006003" }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":"2136000000009090" } ] [ { "project_id":{ "project_name":"AlienCity", "id":2136000000007733 }, "table_name":"AlienCity", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":2136000000007781 }, "table_name":"CityDetails", "modified_by":{ "zuid":66466723, "is_confirmed":false, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type":"Admin", "user_id":2136000000006003 }, "modified_time":"Aug 13, 2021 01:47 PM", "table_id":2136000000009090 } ] -------------------------------------------------------------------------------- title: "Get Column Metadata" description: "This page describes the method to retrieve metadata of a single column or multiple columns from a table in the Data Store in your Web application with sample code snippets" last_updated: "2026-09-29T06:07:16.274Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/data-store/get-column-meta/" service: "Cloud Scale" related: - Get Column Metadata - API (/en/api/code-reference/cloud-scale/data-store/get-column-metadata/#GetColumnMetadata) - Data Store (/en/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Get Column Metadata Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. Column metadata details of a single column of a table in the Catalyst Data Store can be retrieved through the following methods. The table reference used in the below code snippets can either be a table instance or a table meta. ### Get a Column's Metadata by ID You can fetch a column's meta data of a particular table using getColumnDetails() method. //Get The Column Object using Columnid var datastore = catalyst.table; var table = datastore.tableId("SampleTable"); var column = table.columnId(COLUMN_ID); A sample response that you will receive for each version is shown below: { table_id: "2305000000007003", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", audit_consent: false, max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: false, column_id: "2305000000007725" } { table_id: 2305000000007003, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: false, column_id: 2305000000007725 } <br> ### Get a Column's Metadata by Name An alternative way to get the meta data of a column is, referring to the Column name. This returns the same response as that of the previous one. The column meta will not involve any further operations. Therefore the promise returned here is resolved to a JSON object. //Get The Column Object using Columnname var datastore = catalyst.table; var table = datastore.tableId('SampleTable'); var column = table.columnId(COLUMN_NAME); A sample response that you will receive for each version is shown below: { table_id: "2305000000007003", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", audit_consent: false, max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: false, column_id: "2305000000007725" } { table_id: 2305000000007003, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: false, column_id: 2305000000007725 } <br> ### Get Column Metadata Details To fetch the metadata details of a column, you must use any one of the column objects created in the previous steps which will return a promise. The promise returned will be resolved to an object in which the content key contains the column metadata details. //Get The column details which in turn returns a promise var datastore = catalyst.table; var table = datastore.tableId('SampleTable'); var column = table.columnId(COLUMN_NAME); var columnPromise = column.get(); columnPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A sample response that you will receive for each version is shown below: { table_id: "2305000000007003", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", audit_consent: false, max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: false, column_id: "2305000000007725" } { table_id: 2305000000007003, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: false, column_id: 2305000000007725 } <br> ### Get Metadata of All Columns In addition to getting the meta data of a single column, you can retrieve the meta data of all the columns of a particular table using getAllColumns()method. Note : The promise returned here is resolved into an array of column meta details. //Get all the columns in the table which in turn returns a promise var datastore = catalyst.table; var table = datastore.tableId('SampleTable'); var allcolumnPromise = table.getColumns(); allcolumnPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A sample response that you will receive for each version is shown below: [ { table_id: "2136000000007781", column_sequence: "1", column_name: "ROWID", category: 1, data_type: "bigint", audit_consent: false, max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: false, column_id: "2136000000007784" }, { table_id: "2136000000007781", column_sequence: "2", column_name: "CREATORID", category: 1, data_type: "bigint", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007786" }, { table_id: "2136000000007781", column_sequence: "3", column_name: "CREATEDTIME", category: 1, data_type: "datetime", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007788" }, { table_id: "2136000000007781", column_sequence: "4", column_name: "MODIFIEDTIME", category: 1, data_type: "datetime", max_length: "50", is_mandatory: false, decimal_digits: "2", is_unique: false, search_index_enabled: true, column_id: "2136000000007790" }, { table_id: "2136000000007781", column_sequence: "5", column_name: "CityName", category: 2, data_type: "varchar", max_length: "100", is_mandatory: false, decimal_digits: "2", is_unique: true, search_index_enabled: true, column_id: "2136000000008503" } ] [ { table_id: 2136000000007781, column_sequence: 1, column_name: "ROWID", category: 1, data_type: "bigint", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: false, column_id: 2136000000007784 }, { table_id: 2136000000007781, column_sequence: 2, column_name: "CREATORID", category: 1, data_type: "bigint", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: true, column_id: 2136000000007786 }, { table_id: 2136000000007781, column_sequence: 3, column_name: "CREATEDTIME", category: 1, data_type: "datetime", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: true, column_id: 2136000000007788 }, { table_id: 2136000000007781, column_sequence: 4, column_name: "MODIFIEDTIME", category: 1, data_type: "datetime", max_length: 50, is_mandatory: false, decimal_digits: 2, is_unique: false, search_index_enabled: true, column_id: 2136000000007790 }, { table_id: 2136000000007781, column_sequence: 5, column_name: "CityName", category: 2, data_type: "varchar", max_length: 100, is_mandatory: false, decimal_digits: 2, is_unique: true, search_index_enabled: true, column_id: 2136000000008503 } ] -------------------------------------------------------------------------------- title: "Insert Rows" description: "This page describes the method to insert a single row or rows in bulk from a table in the Data Store in your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.275Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/data-store/insert-rows/" service: "Cloud Scale" related: - Insert Rows - API (/en/api/code-reference/cloud-scale/data-store/insert-new-row/#InsertNewRow) - Data Store (/en/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Insert Rows Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. You can insert a new row of data or a record in a table in the Data Store by referring to the table's unique ID or name. You can also insert multiple rows in a table in the same operation. Note: 1. The table and the columns in it must already be created. You can create a table and the columns for it from the console. 2. You will be able to insert upto 5000 records in each table per project in the development environment. You can create upto 25,000 records overall in each project in the development environment. There are no upper limits for record creation in the production environment. You must construct an array containing the rows to be inserted in the table, and pass the array as an argument to the addRow() method as shown below. This inserts the rows in the table you refer to by its unique name or ID. The rows are specified in a {column name : column value} format. The promise returned here is resolved to an object, where the content key contains the array of the rows. The table reference used in the code below is the table object created earlier. //Create an array with the rows to be inserted var details = [ {"Name": "Heather Drake", "Age": 26}, {"Name": "Lucy Park", "Age": 34} ]; //Insert the rows by passing the array, which in turn returns a promise var datastore = catalyst.table; var table = datastore.tableId('EmpDetails'); //Provide the table ID or table name to insert the rows var insertPromise = table.addRow(details); //Pass the JSON array insertPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A sample response that you will receive is shown below. The response is the same for both versions. #### Web SDK [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-25 13:55:04:904", Name: "Heather Drake", Age: 26, CREATEDTIME: "2021-08-25 13:55:04:904", ROWID: 2136000000038008 }, { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-25 13:55:04:906", Name: "Lucy Park", Age: 34, CREATEDTIME: "2021-08-25 13:55:04:906", ROWID: 2136000000038010 } ] -------------------------------------------------------------------------------- title: "Update Rows" description: "This page describes the method to update a single row or rows in bulk in a table in the Data Store in your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.276Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/data-store/update-rows/" service: "Cloud Scale" related: - Update Rows - API (/en/api/code-reference/cloud-scale/data-store/update-row/#UpdateRow) - Data Store (/en/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Update Rows Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. If a single row or multiple rows are to be updated with one or more column values in a table, the following method is used. The table used in the below code snippet is the table object. Note : The promise returned here will be resolved to an object in which the content key contains an array of updated row details. //Create an object with the details to be updated referring to the corresponding ROWID var details = [ { "Name": "John Denver", "Age": 25, "ROWID": 1510000000085482}, { "Name": "Jill Scott", "Age": 39, "ROWID": 1510000000113707} ]; //Update The Row Object using details var datastore = catalyst.table; var table = datastore.tableId('SampleTable'); var updatePromise = table.updateRow(details); updatePromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A sample response that you will receive is shown below. The response is the same for both versions. #### Web SDK [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-24 13:22:14:718", CREATEDTIME: "2021-08-24 13:12:55:999", Name: "John Denver", Age: 25 ROWID: "2136000000034043" }, { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-24 13:22:14:728", CREATEDTIME: "2021-08-24 13:12:56:001", Name: "Jill Scott", Age: 39 ROWID: "2136000000034045" } ] -------------------------------------------------------------------------------- title: "Get Rows" description: "This page describes the method to fetch a single row or all the rows from a table in the Data Store in your Web application with sample code snippets" last_updated: "2026-09-29T06:07:16.276Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/data-store/get-rows/" service: "Cloud Scale" related: - Get Rows - API (/en/api/code-reference/cloud-scale/data-store/get-all-rows/#GetAllRows) - Data Store (/en/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Get Rows Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. You can retrieve single row or multiple rows of data from a table in the Catalyst Data Store. The table object used in these code snippets is defined in the component instance page. ### Get a Row Object Before you fetch a row from a table in the Data Store, you must first create a row object for it using the unique Row ID of the row as shown below. This will not fire a server-side call. //Create a row object using the Rowid var datastore = catalyst.table; var table = datastore.tableId("ShipmentTracking"); var row = table.rowId("12781121212121"); ### Get a Single Row You can now fetch a single row from a table using the get() method. You must pass the unique Row ID of the row to the row object that you created in the previous section, as shown below. The promise returned here will be resolved to a JSON row object, in which the content key contains a row object. //Fetch the row details by passing the row ID to the row object var datastore = catalyst.table; var table = datastore.tableId('ShipmentTracking'); var row = table.rowId("12781121212121"); var rowPromise = row.get(); rowPromise.then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A sample response that you will receive is shown below. The response is the same for all versions of Web SDK. { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-17 13:02:11:184", CREATEDTIME: "2021-08-16 16:29:10:499", CityName: "Pune", ROWID: "2136000000011011" } ### Get All Rows Through Pagination You can retrieve all the rows of data from a table in the Data Store by incorporating pagination in your code using the getPagedRows() function. Pagination allows you to fetch the rows of a table in batches or pages through iterations. This iteration is executed until all the rows fetched, which is validated by hasNext, as shown in the sample code below. You can refer to the table by its unique Table ID or name. For example, if you require the rows to be fetched in batches of 100 as individual pages, you can specify the count of the max_rows parameter as 100, as shown below. Note: The max_rows parameter is optional. The SDK call will return 200 rows in a single page by default if this value is not specified. Additionally, after each execution of the loop, you will receive a token string in the response data that authorizes the subsequent fetching of data. You must pass this token through the next_token parameter during the subsequent iteration, as shown below. During the first execution of the loop, the value for the next_token string is assigned as undefined. The next set of records are fetched through more_records in the response data. Note: Pagination has been made available from the Web SDK v3.1.0 update. This will not be available in the older versions of the Web SDK. { if (!hasNext) { return; } catalyst.table .tableId('userDetails') //Specify the Table ID or Table name of the table to fetch the records from .getPagedRows({ next_token, max_rows: 100 }) //Define the maximum rows to be fetched in a single page and pass it along with nextToken .then(resp => { console.log('rows : ', resp.content); //Fetch the rows from the table return getMyPagedRows(resp.more_records, resp.next_token); //Fetch the next set of records and the token string for the next iteration }) .catch((err) => { console.log(err.toString()); }); } A sample response that you will receive if there are more records available is shown below. The more_records parameter will be set to true in this case. #### Web SDK v3.1.0 { "status": 200, "content": [ { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:24:855", "name": "raj", "CREATEDTIME": "2022-01-11 18:18:24:855", "ROWID": "3359000000108111" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:25:117", "name": "raj", "CREATEDTIME": "2022-01-11 18:18:25:117", "ROWID": "3359000000108114" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:25:120", "name": "raj", "CREATEDTIME": "2022-01-11 18:18:25:120", "ROWID": "3359000000108117" } ], "message": "OK", "more_records": true, "next_token": "{{token}}" } A sample response that you will receive if there are no more records available is shown below. The more_records parameter will be set to false in this case. { "status": 200, "content": [ { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:556", "name": "raj99", "CREATEDTIME": "2022-01-11 18:18:43:556", "ROWID": "3359000000108410" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:557", "name": "raj98", "CREATEDTIME": "2022-01-11 18:18:43:557", "ROWID": "3359000000108413" }, { "CREATORID": "3359000000006003", "MODIFIEDTIME": "2022-01-11 18:18:43:568", "name": "raj96", "CREATEDTIME": "2022-01-11 18:18:43:568", "ROWID": "3359000000108417" } ], "message": "OK", "more_records": false } Note: We have deprecated support for the getAllRows() method that was available in the earlier versions of the Web SDK to fetch multiple rows of data from a table. Pagination is now available as an enhancement that enables you to fetch all rows, without any limitations on the number of rows fetched. The getAllRows() method will be removed from all future SDK versions. Please ensure that you upgrade your code accordingly. -------------------------------------------------------------------------------- title: "Delete a Row" description: "This page describes the method to delete a single row from a table in the Data Store in your Web application with sample code snippets" last_updated: "2026-09-29T06:07:16.277Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/data-store/delete-row/" service: "Cloud Scale" related: - Delete Row - API (/en/api/code-reference/cloud-scale/data-store/delete-row/#DeleteRow) - Data Store (/en/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Delete a Row Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. A single row can be deleted, but multiple rows cannot be deleted at a time. The _row_ used in the below code snippets is the row object. A row can be deleted from a table simply by passing the ROWID as a parameter to the delete() method. Note : The promise returned here will be resolved to an object in which the content key contains a deleted row object. //Delete the row which in turn returns a promise var datastore = catalyst.table; var table = datastore.tableId('SampleTable'); var row = table.rowId(ROW_ID); var rowPromise = row.delete(); rowPromise.then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); -------------------------------------------------------------------------------- title: "Bulk Delete Rows" description: "This page describes the method to delete rows in bulk from a table in the Data Store in your Web application with sample code snippets." last_updated: "2026-09-29T06:07:16.277Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/data-store/bulk-delete-rows/" service: "Cloud Scale" related: - Bulk Delete Rows - API (/en/api/code-reference/cloud-scale/data-store/bulk-delete-rows/#BulkDeleteRows) - Data Store (/en/cloud-scale/help/data-store/introduction) -------------------------------------------------------------------------------- # Bulk Delete Rows Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. Catalyst enables you to delete records or rows of data in bulk from a specific table in the Data Store. The table is referred by its unique ID or name. You can obtain the table ID from Data Store or from the URL when the table is opened in the console. The bulk delete operation can delete a maximum of 200 rows in a single operation. You can pass the unique ROWIDs of the rows to be deleted in an array as shown in the sample code below. You must include at least one ROWID, and can include upto 200 ROWIDs, in the code. The array is assigned to a variable which is passed to the deleteRows() function through deletePromise in the sample code. The table name or table ID must be passed to datastore.tableId(). The datastore reference used below is defined in the component instance page. var datastore = catalyst.table; //Pass the table ID or table name var table = datastore.tableId('EmpDetails'); //Declare the ROWIDs of the records to be deleted var rowIds =[1028000000171815, 1028000000171810, 1028000000171805, 1028000000171617, 1028000000171098]; //Pass the array of the ROWIDs to the deleteRows() function var deletePromise = table.deleteRows(rowIds); //Returns the promise and prints in the browser console deletePromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); ### Push Notifications -------------------------------------------------------------------------------- title: "Push Notifications" description: "Push notifications can be created using Catalyst Web SDK" last_updated: "2026-09-29T06:07:16.277Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/push-notifications/get-component-instance/" service: "Cloud Scale" related: - Mobile Device Management (/en/cloud-scale/help/mobile-device-management/introduction) - Push Notifications (/en/cloud-scale/help/push-notifications/introduction) - Push Notification - API (/en/api/code-reference/cloud-scale/push-notifications/web/enable-web-push-notifications/#EnableWebNotification) -------------------------------------------------------------------------------- # Push Notifications Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. Push notifications are remote notifications that an application provider can send to the users of their application, even when the application is not actively running on the user device. Catalyst provides you with an easy way to integrate push notifications into your Catalyst web and iOS applications. ### Get a Component Instance The notification instance can be created as shown below. Note: The promise returned here will be resolved to an object in which the content key contains the output of the executed function. // Get a notification instance var notification = catalyst.notification; -------------------------------------------------------------------------------- title: "Register a Client" description: "This Web SDK script allows you to register a client device to receive push notifications from your Catalyst web application." last_updated: "2026-09-29T06:07:16.277Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/push-notifications/register-client/" service: "Cloud Scale" related: - Push Notifications (/en/cloud-scale/help/push-notifications/introduction) - Push Notification - API (/en/api/code-reference/cloud-scale/push-notifications/web/send-web-push-notifications/#SendWebPushNotifications) -------------------------------------------------------------------------------- # Register a Client for Receiving Web Push Notifications Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. The enableNotification() method registers a client for receiving push notifications from your web application. The notification reference used in the code snippet below is the component instance created earlier. The enableNotification() method returns a promise which is resolved to an object. After resolving the promise, you can handle the notification message through the messagehandler. //Register the client var notification = catalyst.notification; notification.enableNotification().then((response) => { //Create a handler for the message when received catalyst.notification.messageHandler = (msg) => { //Action to be performed when the message is generated } }); You can then send push notifications to the registered client either from the Catalyst console, or through this API. ### Search -------------------------------------------------------------------------------- title: "Get a Component Instance" description: "Using Catalyst Web SDK you can create a search object." last_updated: "2026-09-29T06:07:16.279Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/search/get-component-instance/" service: "Cloud Scale" related: - Data Store (/en/cloud-scale/help/data-store/introduction) - Search (/en/cloud-scale/help/search-integration/introduction) - Search - API (/en/api/code-reference/cloud-scale/search/execute-search-query/#ExecuteSearchQuery) -------------------------------------------------------------------------------- # Search Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. ### Search for Data in Indexed Columns The search process specifies the pattern to be searched for when you search indexed columns of the tables. You can search for: * Data in multiple tables * Only data in search indexed columns To learn more about search, please refer to the information here. ### Get a Component Instance The search object can be created using the following method which does not fire a server side call. //Get a search object var search = catalyst.search; -------------------------------------------------------------------------------- title: "Search Data" description: "Using Catalyst Web SDK you can execute a method for searching for a particular pattern of data." last_updated: "2026-09-29T06:07:16.279Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/search/search-data/" service: "Cloud Scale" related: - Data Store (/en/cloud-scale/help/data-store/introduction) - Search (/en/cloud-scale/help/search-integration/introduction) - Search - API (/en/api/code-reference/cloud-scale/search/execute-search-query/#ExecuteSearchQuery) -------------------------------------------------------------------------------- # Search Data Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. Search executes a searchQuery() method for searching for a particular pattern of data. The search used in the code snippet is the component instance. ### Create a Search Configuration(JSON) The following code snippet creates a JSON object that contains the attributes of the pattern to be searched for in the indexed columns of the individual tables. //Create the Query Object to be used for searching //The Search key contains the patterns to be searched //The search_table_columns is a JSON object which contains the table name as key and an array of the columns to be searched as the value. var QUERY = { "search": "santh*", "search_table_columns": { "customerDetails" : ["indexC1"], "SampleTable" : ["indexC2"] } }; ### Execute Search The JSON object created in the previous section is passed as a parameter to the searchQuery() method which returns a promise. Note : The promise returned will be resolved to an object in which the content key contains the search results with the key as the table name and its value as the array of rows. //search the table by passing the query object which in turn returns a promise var search = catalyst.search; var searchPromise = search.searchQuery(QUERY); searchPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); A sample response that you will receive is shown below. The response is the same for both versions of Web SDK. { AlienCity: [ { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-13 13:49:19:475", CityName: "Dallas", CREATEDTIME: "2021-08-13 13:49:19:475", ROWID: "2136000000008508" } ] } ### Stratus -------------------------------------------------------------------------------- title: "Overview" description: "This page describes the web SDK method to perform operations in Stratus." last_updated: "2026-09-29T06:07:16.280Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/stratus/overview/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/en/cloud-scale/help/stratus/introduction) - Java SDK (/en/sdk/java/v1/cloud-scale/stratus/overview/) - JavaScript SDK Documentation (/en/sdk/javascript/v1/cloudscale/stratus/overview/) - Python SDK (/en/sdk/python/v1/cloud-scale/stratus/overview/) - iOS SDK (/en/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/en/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/en/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/en/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Overview Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. Cloud Scale Stratus is Catalyst's robust and powerful storage solution. You can store data of any format in the form of Objects in containers called Buckets. Each Bucket and every individual object in the bucket has a secure Object URL and Bucket URL. You can perform upload and download operations on objects and even provide custom permissions for each object. Note: * It is advised you enable CORS to whitelist your required application or AppSail service domain and use the following SDKs. * To use the Stratus SDK methods, you need to ensure you upgrade your Web SDK to v4.6.2. * You also need to upgrade the Catalyst CLI to v1.18.0-beta.5 The following table contains the list of all the Catalyst SDKs that can be used to perform Stratus operations through code. <table class="content-table"> <thead> <tr> <th class="w30p">Category</th> <th class="w70p">SDK Method</th> </tr> </thead> <tbody> <tr> <td>General Stratus Operations</td> <td> <ul> <li>Create Stratus Instance <ul> <li>Initialize Bucket Instance</li> </ul> </li> </ul> </td> </tr> <tr> <td>Bucket Operations</td> <td> <ul> <li>Check Object Availability <ul> <li>Check Object Availability Without VersionID</li> <li>Check Object Availability With VersionID</li> </ul> </li> <li>Download Object <ul> <li>Download Object Using Object Name</li> <li>Download a Particular Version of the Object</li> <li>Download Object With Process Callback</li> <li>Download a Particular Part of the Object</li> <li>Download Object Using a Signed URL <ul> <li>Using Asynchronous Functions</li> <li>Using Promises</li> <li>Using SignedURL with Options</li> </ul> </li> <li>Download a Cached Object Using Cached URL</li> </ul> </li> <li>Upload Object <ul> <li>Upload Object as File</li> <li>Upload Object as String</li> <li>Upload Object With Options</li> <li>Upload Object With Process Callback</li> <li>Upload Object With Its Meta Details</li> <li>Mutlipart Upload</li> <li>Upload an Object Wrapping all the Multipart Functionality</li> </ul> </li> <li>Delete Object <ul> <li>Delete Object With Object Name</li> <li>Delete Object With Object Name and VersionID</li> </ul> </li> </ul> </td> </tr> </tbody> </table> -------------------------------------------------------------------------------- title: "Create Stratus Instance" description: "This page describes the web SDK method to initialize Stratus instance." last_updated: "2026-09-29T06:07:16.281Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/stratus/initialize-stratus-instance/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/en/cloud-scale/help/stratus/introduction) - Java SDK (/en/sdk/java/v1/cloud-scale/stratus/create-stratus-instance/) - JavaScript SDK Documentation (/en/sdk/javascript/v1/cloudscale/stratus/create-instance/) - Python SDK (/en/sdk/python/v1/cloud-scale/stratus/create-stratus-instance/) - iOS SDK (/en/sdk/ios/v2/cloud-scale/stratus/create-bucket-instance/) - Android SDK (/en/sdk/android/v2/cloud-scale/stratus/create-bucket-instance/) - Flutter SDK (/en/sdk/flutter/v2/cloud-scale/stratus/initialize-stratus/) - REST API (/en/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Create Stratus Instance Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. You can get the stratus component reference as shown below. This will not fire a server-side call. We will refer to this component instance in various code snippets of working with Stratus. const stratus = catalyst.stratus ### Initialize Bucket Instance To perform bucket level operations, you need to initialize a bucket instance. We will refer to this component instance in various code snippets of working with Buckets in Stratus. const bucket = stratus.bucket("bucketName") -------------------------------------------------------------------------------- title: "Check Object Availability" description: "This page describes the web SDK method to check if an object is present in a bucket." last_updated: "2026-09-29T06:07:16.281Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/stratus/check-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/en/cloud-scale/help/stratus/introduction) - Java SDK (/en/sdk/java/v1/cloud-scale/stratus/check-bucket/) - JavaScript SDK Documentation (/en/sdk/javascript/v1/cloudscale/stratus/check-bucket-availability/) - Python SDK (/en/sdk/python/v1/cloud-scale/stratus/check-bucket/) - iOS SDK (/en/sdk/ios/v2/cloud-scale/stratus/overview/) - Android SDK (/en/sdk/android/v2/cloud-scale/stratus/overview/) - Flutter SDK (/en/sdk/flutter/v2/cloud-scale/stratus/overview/) - REST API (/en/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Check Object Availability Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. Using the headObject() SDK method, you can check the existence of an object in a bucket, and further check if the user has the relevant permissions to access the objects present in the bucket. The Bucket reference used in the below code snippet is the component instance. Possible responses when using this SDK: * If the bucket exists and if the user has the relevant permissions to access the objects in it, the response '**true**' will be returned. * If the bucket does not exist, or if the user does not have permission to access the objects in it, the response '**false**' will be returned. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>A Mandatory parameter. Will hold the complete name of the object along with it's path.</td> </tr> <tr> <td>options</td> <td>JSON Object</td> <td>An Optional parameter to hold the following parameters: <ul> <li>versionId: <ul> <li>An optional String parameter.</li> <li>If Versioning is enabled for your bucket then, this param will help you refer to a particular version using its unique Version ID.</li> </ul> </li> <li>throwErr: <ul> <li>An optional Boolean parameter.</li> <li>If you set this parameter as "true", then it will throw an error when the bucket is not found in the project.</li> <li>The default value is "false"</li> </ul> </li> </ul> </td> </tr> </tbody> </table> ### Check Object Availability Without VersionID The following SDK method will provide you with the topVersion (latest version) of the object in the bucket. // Check if an object is available const checkObjectAvailability = await bucket.headObject("key") ### Check Object Availability With VersionID The following SDK method will check the availability of a specific version of the object. the required version will be reffered by its unique versionId. // Check if certain version of an object is Available const options = { versionId: 'djkfhdiufy762', throwErr: false }; const checkObjectAvailability = await bucket.headObject("key", options) **Example Response** { "status": 200, "content": true | false, "message": "OK" } -------------------------------------------------------------------------------- title: "Download Object" description: "This page describes the web SDK method to retreive an object from Stratus." last_updated: "2026-09-29T06:07:16.282Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/stratus/download-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/en/cloud-scale/help/stratus/introduction) - Java SDK (/en/sdk/java/v1/cloud-scale/stratus/download-object/) - JavaScript SDK Documentation (/en/sdk/javascript/v1/cloudscale/stratus/download-object/) - Python SDK (/en/sdk/python/v1/cloud-scale/stratus/download-object/) - iOS SDK (/en/sdk/ios/v2/cloud-scale/stratus/download-object/) - Android SDK (/en/sdk/android/v2/cloud-scale/stratus/download-object/) - Flutter SDK (/en/sdk/flutter/v2/cloud-scale/stratus/download-object/) - REST API (/en/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Download Object Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. This SDK method can be used to download an object from the bucket. The response will be in **blob** format. The Stratus reference used in the below code snippet is the component instance. Expected responses with respect to Versioning status of the bucket: * If you do not pass the versionId, then you will get the **latest object**, along with the key you mention in the request. * If Versioning was enabled for a bucket, then disabled. By default, the principal first object will be returned. To ensure you download the latest version of this object, you need to pass the versionId param with the value "topVersion". * To retrieve a specific version, use the versionId query parameter with a valid version as a value. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>Will hold the name of the object</td> </tr> <tr> <td>options</td> <td>JSON Object</td> <td> <ul> <li>versionId: This is an optional String parameter. Will hold the unique version ID of the required object's version. </li> <li>range: This is an optional String parameter. The byte range of the required object. Will be used to get a specific part of the object.</li> <li>cached: This is an optional Boolean parameter. <ul> <li>Will be used to get cached version of the object</li> <li>Will only accept two values: "true" or "false"</li> <li>false will be the value, if this param is not used</li> <li>true will be the value, if Caching is enabled for your bucket and you pass this param. In this case, the object will be retrieved from the cached domain.</li> </ul> </li> <li>signed: This is an optional Boolean parameter. The default value is "false". Will make an api call to get a signed url. </li> <li>signedUrlFn: <ul> <li>This is an optional Function parameter.</li> <li>This is a Callback function that will return a signedurl api respone given in server SDK (Java, Node.js, and Python) to download a file.</li> <li>This function will only accept asynchronous functions and promises.</li> <li>When this function is used, Catalyst will pass the cached url and expiry time to it as parameters which can be used to generate a signed url.</li> </ul> </li> </ul> </td> </tr> <tr> <td>processCallback</td> <td>Function</td> <td>Callback function while downloading file</td> </tr> </tbody> </table> ### Download Object Using Object Name The following SDK snippet will allow you to download an object from a bucket in Stratus using its key. const getObject = await bucket.getObject("key"); const getObjectStart = getObject.start(); // to start the request const getObjectAbort = getObject.abort(); // to abort the request ### Download a Particular Version of the Object The following SDK snippet will allow you to download a particular version of the object from a bucket in Stratus using its key, and versionId. const options = { 'versionId': 'djkshr8374yiuhf48', // download a specific version of an object } const getObject = await bucket.getObject("key", options); const getObjectStart = getObject.start(); // to start the request const getObjectAbort = getObject.abort(); // to abort the request ### Download Object With Process Callback The following SDK snippet will allow you to download a particular object from a bucket in Stratus with process callback options. This SDK is best used when you wish to perform an additional function like logging, rendering load/buffer screens, etc. alongside the download operation. // process callback while an object is being downloaded const processCallback = () => { // Function to execute while the object is being fetched console.log("Downloading Object"); } const options = { 'versionId': 'djkshr8374yiuhf48' } const getObject = await bucket.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // to start the request const getObjectAbort = getObject.abort(); // to abort the request **Example Response** { "status": 200, "content": {Blob Data}, "message": "OK" } **Possible Exceptions** * **404**: Object or Bucket Not Found * **416**: Requested range not satisfiable ### Download a Particular Part of the Object In this section, we are going to go over an SDK method that will allow you to successfully download a required byte range of the object from Stratus to your local system. The Stratus reference used in the below code snippet is the component instance. This method functions in a manner where the object is split into multiple byte ranges using the start and end bytes range of the object. const processCallback = () => { // Function to execute while the object is being fetched console.log("Downloading Object"); } const options = { 'range': '0-2000' // start and end range of the object in bytes } const getObject = await stratus.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // to start the request const getObjectAbort = getObject.abort(); // to abort the request **Example Response** { "status": 206, "content": {Blob Data}, "message": "PARTIAL_CONTENT" } ### Download Object Using a Signed URL #### Using Asynchronous Functions // Download Object Using Signed Url // Using Asynchronous Function const processCallback = () => { // Function to execute while the object is being fetched console.log("Downloading Object"); } const options = { 'range': '0-2000' // start and end range of the object in bytes, 'signed': true, // to declare we will be using signed url to getObject from bucket. 'signedUrlFn' : async (functionData) => { console.log("Data : " + functionData); // Function Logic return { "signed_url": "" //signed url } } } const getObject = await stratus.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // to start the request const getObjectAbort = getObject.abort(); // to abort the request #### Using Promises // Using Promises const processCallback = () => { // Function to execute while the object is being fetched console.log("Downloading Object"); } const options = { 'range': '0-2000' // start and end range of the object in bytes, 'signed': true, // to declare we will be using signed url to getObject from bucket. 'signedUrlFn' : (functionData) => { return new Promise((resolve, reject) => { console.log("Data : " + functionData); // Function Logic resolve({ "signed_url" : "" }) }) } } const getObject = await stratus.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // to start the request const getObjectAbort = getObject.abort(); // to abort the request #### Using SignedURL with Options The following SDK method will allow you download an object using a signed URL, and to set an **expiry time** for the signed URL. // Download Object Using Signed Url and Expiry Time const processCallback = () => { // Function to execute while the object is being fetched console.log("Downloading Object"); } const options = { 'range': '0-2000' // start and end range of the object in bytes, 'signed': true, // to declare we will be using signed url to getObject from bucket. 'signedUrlFn' : async (functionData) => { console.log("Data : " + functionData); // Function Logic return { "signed_url": "" // Signed Url } }, "expiryInSeconds" : 3000 // In Seconds } const getObject = await stratus.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // to start the request const getObjectAbort = getObject.abort(); // to abort the request ### Download a Cached Object Using Cached URL The following SDK method will allow you to download a cached object using the Cached URL. // Cached URL const processCallback = () => { // Function to execute while the object is being fetched console.log("Downloading Object"); } const options = { 'range': '0-2000' // start and end range of the object in bytes, 'cached': true, // to declare we will be using cached url to getObject from bucket. } const getObject = await stratus.getObject("key", options, processCallback); const getObjectStart = getObject.start(); // to start the request const getObjectAbort = getObject.abort(); // to abort the request -------------------------------------------------------------------------------- title: "Upload Object" description: "This page describes the web SDK method to upload an object to a bucket." last_updated: "2026-09-29T06:07:16.283Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/stratus/upload-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/en/cloud-scale/help/stratus/introduction) - Upload Object Help Documentation (/en/cloud-scale/help/stratus/objects/upload-object/) - Java SDK (/en/sdk/java/v1/cloud-scale/stratus/upload-object/) - JavaScript SDK Documentation (/en/sdk/javascript/v1/cloudscale/stratus/upload-object/) - Python SDK (/en/sdk/python/v1/cloud-scale/stratus/upload-object/) - iOS SDK (/en/sdk/ios/v2/cloud-scale/stratus/upload-object/) - Android SDK (/en/sdk/android/v2/cloud-scale/stratus/upload-object/) - Flutter SDK (/en/sdk/flutter/v2/cloud-scale/stratus/upload-object/) - REST API (/en/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Upload Object Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. The SDK method listed in this section will allow you to upload objects to the bucket. The Stratus reference used in the below code snippet is the component instance. If you do not have Versioning enabled for your object, and if Stratus gets multiple write requests for the same object, the object will be continuously overwritten. The latest upload of the object will be the only object that is stored. However, with Versioning enabled, each upload will be considered a version of the object, and all of them will be stored in the bucket, each with a unique versionId. Note: The following characters including space are not supported when you create a path or an object: double quote, both angular brackets, hashtag, backward slash and pipe symbol. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>A Mandatory parameter. Will hold the complete name of the object along with it's path.</td> </tr> <tr> <td>File</td> <td>File | String</td> <td>A Mandatory parameter. The object that needs to be uploaded.</td> </tr> <tr> <td>options <td>JSON Object</td> <td> <ul> <li>overwrite: This is an optional String parameter. <ul> <li>If Versioning for your bucket is not enabled, then you need to use this option if you wish to overwrite a resource.</li> <li>Default value: false</li> </ul> </li> <li>ttl: This is an optional String | Number parameter. <ul> <li>You can set Time-to-Live (ttl) in seconds for an object.</li> <li>The value should be greater than or equal to 60 seconds.</li> </ul> </li> <li>type: This is an optional String parameter. <ul> <li>This paramater can be used to overwrite the content-type of the object.</li> <li>If you do not pass this parameter, then by default the value of type will be application/octet-stream</li> </ul> </li> <li>meta: This is an optional JSON Object parameter. It is used to add the meta details of an object that is being uploaded to a bucket. Default value is an empty JSON object </li> </ul> </td> <tr> <td>processCallback</td> <td>Function</td> <td>Callback function while downloading file</td> </tr> </tbody> </table> ### Upload Object as File The following SDk method will allow you to upload an object file to a bucket in Stratus. // Upload Object as File const file = document.getElementById("uploadedFiles").files[0] const putObject = await bucket.putObject("key", file); const putObjectStart = putObject.start(); // to start the request const putObjectAbort = putObject.abort(); // to abort the request ### Upload Object as String The following SDk method will allow you to upload a string object to a bucket in Stratus. // Upload Object as String const putObject = await bucket.putObject("key", "Content of the file"); const putObjectStart = putObject.start(); // to start the request const putObjectAbort = putObject.abort(); // to abort the request ### Upload Object With Options The following SDK method will allow you to upload any object to a bucket in Stratus. Using this SDK method you can implement the options parameter to provide type, overwrite, and ttl instructions. // Upload Object with options const options = { "overwrite": true, //To overwrite an existing object "ttl": 300, //After 300 seconds the object will be deleted from the bucket "type": "text/plain" // File type of the object being uploaded } const putObject = await bucket.putObject("key", "Content of the file", options); const putObjectStart = putObject.start(); // to start the request const putObjectAbort = putObject.abort(); // to abort the request ### Upload Object With Process Callback The following SDK snippet will allow you to upload a particular object to a bucket in Stratus with process callback options. This SDK is best used when you wish to perform an additional function like logging, rendering load/buffer screens, etc. alongside the upload operation. // Execute a function while object being uploaded const processCallback = () => { // Function to execute while the object is being uploaded console.log("Uploading Object"); } const options = { "overwrite": true, "ttl": 300, "type": "text/plain" } const putObject = await bucket.putObject("key", "Content of the file", options, processCallback); const putObjectStart = putObject.start(); // to start the request const putObjectAbort = putObject.abort(); // to abort the request ### Upload Object With Its Meta Details The following SDK snippet will allow you to upload a particular object along with its metadata to a bucket in Stratus. // Upload Object with meta const options = { "overwrite": true, "ttl": 300, "type": "text/plain" // File type of the uploading object "meta": { "object_meta_key" : "object_meta_value" } } const putObject = await bucket.putObject("key", "Content of the file", options); const putObjectStart = putObject.start(); // to start the request const putObjectAbort = putObject.abort(); // to abort the request **Example Response** { "status": 200, "content": true | false, //true: successfully uploaded and false: upload failure "message": "OK" } ### Mutlipart Upload When the Object that you need to upload is too large to upload, you can perform a multipart operation. The multipart operation will split the object into multiple parts and perform a quicker upload. In this SDK section, we are going to go over all the SDK methods that are available to perform multipart upload of objects in Stratus. #### Create Multipart Instance To perform multipart operations, you need to get a multipart object instance. We will refer to this component instance in various code snippets where we work with multipart operations being performed on objects stored in a bucket in Stratus. The Bucket reference used in the below code snippet is the component instance. const multipart = bucket.getMultipartInstance("key"); #### Initiate Multipart Upload **Initiate Multipart Upload Without Options** Using the following SDK method, Stratus will return an uploadId. This ID will allow us to upload multiple pats of the object. // initiate upload const initiateUpload = await multipart.initiateUpload(); **Initiate Multipart Upload With Options** Using the following SDK method, Stratus will return an uploadId. This ID will allow us to upload multiple pats of the object. Additionally, using this SDK method you can implement the options parameter to provide type instructions. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>type</td> <td>String</td> <td> <ul> <li>This parameter is a key in the options JSON Object parameter. <li>This paramater can be used to overwrite the content-type of the object.</li> <li>If you do not pass this parameter, then by default the value of type will be application/octet-stream</li> </ul> </td> </tr> </tbody> </table> // initiate upload with options const options = { type: "application/json" } const initiateUpload = await multipart.initiateUpload(options); **Example Response** { "status": 200, "content": { "bucket": "llm-development", "key": "a/cv", "upload_id": "01hyj639a9zfbg8j7q86nsrj6r" }, "message": "OK" } #### Upload a Part of the Object In the following SDK method, we are going to perform uploads of the individual parts of the object. Each part will have a distinct part ranging anywhere between **1 and 1000**. While this represents the ordering of the parts, these parts will not necessarily be uploaded in sequence. These parts will be combined in sequence once the upload of all the parts of the objects is complete. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>file</td> <td>File</td> <td>The object that needs to be uploaded.</td> </tr> <tr> <td>part</td> <td>Number</td> <td>Will contain the ordering of the parts that are being uploaded.</td> </tr> </tbody> </table> const partNumber = 1; const file = document.getElementById("uploadedFiles").files[0] const uploadPart = await multipart.uploadPart(file, partNumber) const uploadPartStart = uploadPart.start(); // to start the request const uploadPartAbort = uploadPart.abort(); // to abort the request **Example Response** { "status": 200, "content": true | false, //true: successfully uploaded and false: upload failure "message": "OK" } #### Complete Multipart Upload The following method allows us to terminate the multipart process once all the parts have been successfully uploaded. const completeUpload = await multipart.completeUpload() **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>options</td> <td>JSON Object</td> <td>meta: This is an optional JSON Object parameter. It is used to add the meta details of an object that is being uploaded to a bucket. Default value is an empty JSON object</td> </tr> </tbody> </table> **Example Response** { "status": 200, "content": true | false, //true: successfully uploaded and false: upload failure "message": "OK" } #### Get Upload Summary The following SDK method can be used to obtain an operational summary of all the uploaded parts. To view the summary, we will use the getUploadSummary() method. const getUploadSummary = await multipart.getUploadSummary(); **Example Response** { "bucket": "zcstratus12345-development", "key": "sasm.txt", "upload_id": "01hyfyeazrrstmt7k5fa7ej726", "status": "PENDING", "parts": [ { "part_number": 1, "size": 0, "uploaded_at": 1716374678999 }, { "part_number": 2, "size": 2797094, "uploaded_at": 1716374678576 }, { "part_number": 4, "size": 0, "uploaded_at": 1716374679136 } ] } ### Upload an Object Wrapping all the Multipart Functionality The following SDK method acts as a wrapper, where the entire multipart upload operation is carried out without employing multiple steps. Using this method, the object is split into multiple parts, uploaded to the bucket in multiple parts, and then combined once all the parts are uploaded. However, the following method is only recommended to be used in the following conditions: * The max_part_size of the object can be the entire file size. However, to ensure a quicker upload, we urge you to keep the max_part_size **100MB** or less. * The min_part_size of the object should be **5MB** or more. * The entire object's size should be **10GB** or less. Note: For object's that are larger than 10GB, we would recommend that you use the individual SDK methods to carry out the multipart upload operation successfully.<br /> **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>file</td> <td>File</td> <td>The object that needs to be uploaded.</td> </tr> <tr> <td>partSize</td> <td>Number</td> <td>Will contain the size of each part of the object that is being uploaded.</td> </tr> <tr> <td>options</td> <td>JSON Object</td> <td> type: This parameter is a key in this JSON object. <ul> <li>It is a String parameter.</li> This paramater can be used to overwrite the content-type of the object.</li> <li>If you do not pass this parameter, then the type of the file will be taken by default. If the file itself does not have a type, then by default the value of type will be application/octet-stream</li> <li>meta: This is an optional JSON Object parameter. It is used to add the meta details of an object that is being uploaded to a bucket. Default value is an empty JSON object </li> </ul> </td> </tr> </tbody> </table> **Upload an Object Wrapping all the Multipart Functionality Without Options** // upload object const partSize = 10; // in MB const file = document.getElementById("uploadedFiles").files[0] const uploadObject = await multipart.uploadObject(file, partSize); **Upload an Object Wrapping all the Multipart Functionality With Options** // upload object with options const partSize = 10; // in MB const file = document.getElementById("uploadedFiles").files[0] const options = { type: "application/json" // content type of the object to overwrite } const uploadObject = await multipart.uploadObject(file, partSize, options); **Example Response** { "status": 200, "content": true | false, //true: successfully uploaded and false: upload failure "message": "OK" } -------------------------------------------------------------------------------- title: "Delete Object" description: "This page describes the web SDK method to delete an object." last_updated: "2026-09-29T06:07:16.284Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/stratus/delete-object/" service: "Cloud Scale" related: - Stratus Component Help Documentation (/en/cloud-scale/help/stratus/introduction) - Delete an Object Help Documentation (/en/cloud-scale/help/stratus/objects/manage-object/delete-object/) - Java SDK (/en/sdk/java/v1/cloud-scale/stratus/delete-objects/) - JavaScript SDK Documentation (/en/sdk/javascript/v1/cloudscale/stratus/delete-object/) - Python SDK (/en/sdk/python/v1/cloud-scale/stratus/delete-objects/) - iOS SDK (/en/sdk/ios/v2/cloud-scale/stratus/delete-object/) - Android SDK (/en/sdk/android/v2/cloud-scale/stratus/delete-object/) - Flutter SDK (/en/sdk/flutter/v2/cloud-scale/stratus/delete-object/) - REST API (/en/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets) -------------------------------------------------------------------------------- # Delete Object Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. Using this SDK method, you can delete a particular object by passing the complete name of the object to the deleteObject() method. The Bucket reference used in the below code snippet is the component instance. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>A Mandatory parameter. Will hold the complete name of the object along with it's path.</td> </tr> <tr> <td>options</td> <td>JSON Object</td> <td> <ul> <li>versionId: An optional String parameter. If Versioning is enabled for your bucket then, this param will help you refer to a particular version using its unique Version ID. </li> <li>ttl: An optional String | Number parameter. You can set Time-to-Live (TTL) in seconds for an object. The value should be greater than or equal to 60 seconds. </li> </ul> </td> </tr> </tbody> </table> ### Delete Object With Object Name Using the following SDK method will delete the required object and all of its versions from the bucket. // Delete an object const deleteObject = await bucket.deleteObject("key"); ### Delete Object With Object Name and VersionID Using the following SDK method will delete a specific version of the object. // Delete a specific version of an object after ttl time const options = { versionId: "01hthq82gwxtfyz6d9j8eg6k2f", // Delete an object with the given versionId ttl: 100 // Time to live in seconds }; const deleteObject = await bucket.deleteObject("key", options); **Example Response** { "status": 200, "content": {}, "message": "Object deleted successfully." } **Possible Exception** * **404**: Object or Bucket Not Found ### ZCQL -------------------------------------------------------------------------------- title: "Get a Component Instance" description: "ZCQL is Catalyst's own query language that enables you to perform data retrieval operations in the Data Store." last_updated: "2026-09-29T06:07:16.287Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/zcql/get-component-instance/" service: "Cloud Scale" related: - Data Store (/en/cloud-scale/help/data-store/introduction) - ZCQL (/en/cloud-scale/help/zcql/introduction/) - Execute ZCQL - API (/en/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) -------------------------------------------------------------------------------- # ZCQL Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. ZCQL is Catalyst's own query language that enables you to perform data retrieval, insertion, updating, and deletion operations on the tables in the Catalyst Data Store. You can execute a variety of DML queries using ZCQL to obtain or manipulate data, and use various clauses and statements such as the SQL Join clauses, Groupby and OrderBy statements, and built-in SQL functions. ### Get a Component Instance The zcql reference can be created as shown below. This does not a fire server-side call. //Get a ZCQL instance var zcql = catalyst.ZCatalystQL; -------------------------------------------------------------------------------- title: "Execute ZCQL Query" description: "ZCQL is Catalyst's own query language that enables you to perform data retrieval operations in the Data Store." last_updated: "2026-09-29T06:07:16.287Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/zcql/execute-zcql-query/" service: "Cloud Scale" related: - Data Store (/en/cloud-scale/help/data-store/introduction) - ZCQL (/en/cloud-scale/help/zcql/introduction/) - Execute ZCQL - API (/en/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery) -------------------------------------------------------------------------------- # Execute ZCQL Query Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. ### Construct the Query You must construct a ZCQL query on the required data set before you execute it. A sample SELECT query is shown below: //Create a query to execute var query = 'SELECT * FROM ShipmentData'; ### Execute the Query The query object created in the step above is passed to the executeZCQLQuery() method. The zcql reference used here is the component instance defined earlier. This will return a promise which will be resolved to an object. The content key will contain the array of row objects. //Execute the query by passing it var zcql = catalyst.ZCatalystQL; var zcqlPromise = zcql.executeQuery(query); zcqlPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); Note: To use ZCQL V2 commands in your code, use the Catalyst methods listed here with the values listed below to set the appropriate environment variable:<br /> * Key: ZOHO_CATALYST_ZCQL_PARSER * Value: V2 A sample response that you will receive is shown below. The response is the same for both versions of Web SDK. [ { AlienCity: { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-13 13:49:19:475", CREATEDTIME: "2021-08-13 13:49:19:475", CityName: "Dallas", ROWID: "2136000000008508" } }, { AlienCity: { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-16 15:55:32:969", CREATEDTIME: "2021-08-16 15:55:32:969", CityName: "Houston", ROWID: "2136000000011002" } }, { AlienCity: { CREATORID: "2136000000006003", MODIFIEDTIME: "2021-08-16 17:03:01:507", CREATEDTIME: "2021-08-16 16:29:10:499", CityName: "Austin", ROWID: "2136000000011011" } } ] ## Serverless ### Functions -------------------------------------------------------------------------------- title: "Get a Component Instance" description: "Catalyst functions enable you to build custom functionalities in your application, automate tasks, or integrate with third-party services." last_updated: "2026-09-29T06:07:16.299Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/serverless/functions/get-component-instance/" service: "Serverless" related: - Functions (/en/serverless/help/functions/introduction) - Function - API (/en/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Functions Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. The Function group in Catalyst is created and defined through either Catalyst's Online editor or Command Line Interface (CLI). The functions in a function group can be executed in a testing environment as well as in the production environment. ### Get a Component Instance The functions reference can be created by the following method which would not fire a server side call. //Get a function instance var functions = catalyst.function; -------------------------------------------------------------------------------- title: "Get a Function Object" description: "Catalyst functions enable you to build custom functionalities in your application, automate tasks, or integrate with third-party services." last_updated: "2026-09-29T06:07:16.299Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/serverless/functions/get-function-object/" service: "Serverless" related: - Functions (/en/serverless/help/functions/introduction) - Function - API (/en/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Get a Function Object Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. A function object can be created by the following method which would not fire a server-side call. The unique function ID is passed as a parameter to the method. The **functions** used in the below code snippet is the component instance. //Get the function object by passsing the function ID var functions = catalyst.function; var functionObject = functions.functionId(FUNCTION_ID); -------------------------------------------------------------------------------- title: "Execute the Function" description: "Catalyst functions enable you to build custom functionalities in your application, automate tasks, or integrate with third-party services." last_updated: "2026-09-29T06:07:16.299Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/serverless/functions/execute-function/" service: "Serverless" related: - Functions (/en/serverless/help/functions/introduction) - Function - API (/en/api/code-reference/serverless/functions/execute-function/#ExecuteFunction) -------------------------------------------------------------------------------- # Execute the Function Note: This SDK is currently in deprecation. Migrate to JavaScript SDK now. A function can be executed by calling the execute() method in which the configuration (of type JSON) is passed as a parameter. The **function** object used in the code snippet is the function object. ### Create a Function Configuration Before executing a function, it is mandatory to set the configuration required for it. Here, the configuration specifies, the function arguments(as **args**) if any. //Create the config object used to execute the function. //The args is an JSONObject to pass values to the function as parameters. var config = { "args": {"name": "xxx"}, "method":"GET" }; The supported HTTP methods are: GET, PUT, POST, PATCH, and DELETE. The GET method is the default. If you use GET in your code, the function arguments are passed as query strings. If you use any of the other HTTP methods, the function arguments are passed in the request body. ### Execute Function The function can be executed by passing the **configuration** object as an argument to the execute() method. The promise returned here will be resolved to an object in which the content key contains the output of the executed function. //Execute the function by passing the config object var functions = catalyst.function; var functionObject = functions.functionId(FUNCTION_NAME); //can pass Function Id or Function Name as argument var functionPromise = functionObject.execute(config); functionPromise .then((response) => { response.json().then(responseBody => { console.log(responseBody); }); }) .catch((err) => { console.log(err); });