Construct complex UI without writing a single line of code using the Page Designer and our 380+ out-of-the-box components and actions. Pages contain metadata about UI controls and layouts and associated triggers and actions. For example, button labels and acts to perform on button clicks.
Real-time Analysis & Auto Fix Suggestions
Analyze and validate pages in real-time as you work on them, receive suggestions for fixes and easily apply them with a single click.
Collaborative Development
Facilitate real-time collaboration during the development of a page. Let functional users access the same page, track changes, and provide immediate feedback to the page creator and developer.
Change History
Track every update made to a page through built-in versioning and auditing. Easily access all previous changes and restore to any earlier version with minimal clicks.
Custom Components
Create your own React Component using the MUI Component library if you cannot find what you need among the existing 380+ components and actions. Use custom components in the Page Designer just like standard components, with built-in version management and change history. Install specific versions in one application and different versions in another application.
DataSource
A metadata layer that sits between the source object (Database tables, Cloud systems APIs) and UI components. The UI components interact with the source object through the DataSource. It contains all field information about the source object and allows for extended functionality through scripting. DataSource handles CRUD operations against database tables seamlessly without any coding. Enhance business functionality by adding filters before fetching data and validations before posting any changes from the user by using modern ES2020 javascript.
External DataSource
Transform the DataSource filters and data from CloudIO's structure into the external Cloud System's structure, such as Salesforce, by using External DataSource.
Cloud DataSource
Utilize Cloud DataSource to integrate any simple REST API without the complexity of using External DataSource.
Cloud Functions
Small code units that can be invoked from the UI or scheduled to run at a given interval or at a specific day and time using CRON expression. Create Cloud Functions as reusable modules imported into other functions or used in the backend through scripting such as Workflows, DataSources, etc.
Test Automation
With the built-in test automation framework, you can record all the UI interactions (clicks & data entry) and replay on demand or scheduled.
Sample Test Script Used for the above Test Automation
On-Premise Agents can be used to connect to the data within your corporate firewall securely without having to open any inbound port through the firewall.
Other Services
Blob Storage
There is built-in integration with Azure Blob Storage & AWS S3 Storage service. You can configure the Storage of your choice at the Application level. Various processes like File Uploads, CSV Import, and Patch Uploads use the configured Storage for processing and storing BLOB data.
CSV Export / Import
Data displayed on the UI, e.g., Data Grid, can be exported in CSV format. Also, use an existing CSV file to import and auto-generate a DataSource (with a backing database table) based on the CSV data.
Email / Messaging
The platform provides built-in APIs for sending emails and posting messages to Microsoft Teams, Slack & Facebook Workplace.
Data Encryption
You can keep the sensitive part of your application data encrypted. By simply choosing the field attribute type as Encrypted String, the platform will take care of encrypting the data while storing in the source database or cloud system and decrypt it before displaying the data to the user on the UI. You can also do the same on demand using the built-in APIs.
File Attachment
You can use the built-in File Attachment component to upload files with inbuilt versioning support. This service uses the configured Blob Storage service to store the files in either Azure Blob or S3.
Health Check
Prometheus Metrics that can be fed into your existing monitoring system for Health Checks & Alerts.
GET/v1/metrics
# HELP io_api_request_duration_seconds The API request latencies in seconds.# TYPE io_api_request_duration_seconds histogramio_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.005"} 10
io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.01"} 10
io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.025"} 10
io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.05"} 10
io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.1"} 10io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.25"} 10
io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.5"} 10io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="1"} 10io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="2.5"} 10io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="5"} 10io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="10"} 10io_api_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="+Inf"} 10
io_api_request_duration_seconds_sum{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200"} 0.046232549io_api_request_duration_seconds_count{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200"} 10# HELP io_api_requests_total Number ofAPI requests made.# TYPE io_api_requests_total counterio_api_requests_total{app="cloudio",instance_id="dev_rust",org="cloudio"} 10# HELP io_api_response_size_bytes The API response sizes in bytes.# TYPE io_api_response_size_bytes histogramio_api_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="1024"} 0io_api_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="5120"} 0io_api_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="10240"} 0io_api_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="25600"} 0io_api_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="51200"} 10io_api_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="102400"} 10io_api_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="1024000"} 10io_api_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="10240000"} 10io_api_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="+Inf"} 10io_api_response_size_bytes_sum{app="cloudio",instance_id="dev_rust",org="cloudio"} 361630io_api_response_size_bytes_count{app="cloudio",instance_id="dev_rust",org="cloudio"} 10# HELP io_db_active_connections The active database connection size# TYPE io_db_active_connections gaugeio_db_active_connections{app="cloudio",instance_id="dev_rust",org="cloudio",readonly="false"} 0io_db_active_connections{app="cloudio",instance_id="dev_rust",org="cloudio",readonly="true"} 0io_db_active_connections{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",readonly="false"} 0io_db_active_connections{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",readonly="true"} 0io_db_active_connections{app="my-application",instance_id="dev_rust",org="cloudio",readonly="false"} 0io_db_active_connections{app="pr",instance_id="dev_rust",org="cloudio",readonly="false"} 0io_db_active_connections{app="spaces",instance_id="dev_rust",org="cloudio",readonly="false"} 0io_db_active_connections{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",readonly="false"} 0io_db_active_connections{app="xcelerateiot",instance_id="dev_rust",org="cloudio",readonly="false"} 0# HELP io_index_html_requests_total Number ofindex.html requests made.# TYPE io_index_html_requests_total counterio_index_html_requests_total{instance_id="dev_rust",org="cloudio"} 35# HELP io_ws_active_sessions The active websocket connection size# TYPE io_ws_active_sessions gaugeio_ws_active_sessions{instance_id="dev_rust",org="cloudio"} 2# HELP io_ws_request_duration_seconds The websocket request latencies in seconds.# TYPE io_ws_request_duration_seconds histogramio_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.005"} 0io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.01"} 0io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.025"} 527
io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.05"} 534
io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.1"} 535io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.25"} 535
io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.5"} 536io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="1"} 537io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="2.5"} 537io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="5"} 537io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="10"} 537io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200",le="+Inf"} 537
io_ws_request_duration_seconds_sum{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200"} 10.531006300999998
io_ws_request_duration_seconds_count{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="200"} 537io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="0.005"} 0io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="0.01"} 0io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="0.025"} 2io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="0.05"} 2io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="0.1"} 2io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="0.25"} 2io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="0.5"} 2io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="1"} 2io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="2.5"} 2io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="5"} 2io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="10"} 2io_ws_request_duration_seconds_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400",le="+Inf"} 2io_ws_request_duration_seconds_sum{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400"} 0.030714902io_ws_request_duration_seconds_count{app="cloudio",instance_id="dev_rust",org="cloudio",statuscode="400"} 2io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.005"} 0
io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.01"} 0
io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.025"} 26
io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.05"} 31
io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.1"} 31
io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.25"} 31
io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.5"} 31
io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="1"} 31io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="2.5"} 31
io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="5"} 31io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="10"} 31
io_ws_request_duration_seconds_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200",le="+Inf"} 31
io_ws_request_duration_seconds_sum{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200"} 0.575535969io_ws_request_duration_seconds_count{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",statuscode="200"} 31io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.005"} 0
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.01"} 0
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.025"} 37
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.05"} 38
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.1"} 40
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.25"} 40
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.5"} 40
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="1"} 40
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="2.5"} 40
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="5"} 40
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="10"} 40
io_ws_request_duration_seconds_bucket{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200",le="+Inf"} 40
io_ws_request_duration_seconds_sum{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200"} 0.8097220920000003
io_ws_request_duration_seconds_count{app="my-application",instance_id="dev_rust",org="cloudio",statuscode="200"} 40io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.005"} 0io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.01"} 0io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.025"} 654io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.05"} 666io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.1"} 668io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.25"} 668io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.5"} 668io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="1"} 668io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="2.5"} 668io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="5"} 668io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="10"} 668io_ws_request_duration_seconds_bucket{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200",le="+Inf"} 668io_ws_request_duration_seconds_sum{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200"} 11.492725862000007io_ws_request_duration_seconds_count{app="pr",instance_id="dev_rust",org="cloudio",statuscode="200"} 668io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.005"} 0io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.01"} 0io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.025"} 43io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.05"} 44io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.1"} 44io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.25"} 44io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.5"} 44io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="1"} 44io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="2.5"} 44io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="5"} 44io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="10"} 44io_ws_request_duration_seconds_bucket{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200",le="+Inf"} 44io_ws_request_duration_seconds_sum{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200"} 0.7740629250000002
io_ws_request_duration_seconds_count{app="spaces",instance_id="dev_rust",org="cloudio",statuscode="200"} 44io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.005"} 0
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.01"} 0
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.025"} 386
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.05"} 414
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.1"} 415
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.25"} 415
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.5"} 415
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="1"} 416
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="2.5"} 416
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="5"} 416
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="10"} 416
io_ws_request_duration_seconds_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200",le="+Inf"} 416
io_ws_request_duration_seconds_sum{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200"} 8.404691122000003
io_ws_request_duration_seconds_count{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",statuscode="200"} 416
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.005"} 0
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.01"} 0
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.025"} 99
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.05"} 104
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.1"} 107
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.25"} 107
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="0.5"} 107
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="1"} 107
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="2.5"} 107
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="5"} 107
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="10"} 107
io_ws_request_duration_seconds_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200",le="+Inf"} 107
io_ws_request_duration_seconds_sum{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200"} 2.0467860519999994
io_ws_request_duration_seconds_count{app="xcelerateiot",instance_id="dev_rust",org="cloudio",statuscode="200"} 107# HELP io_ws_requests_total Number of websocket requests made.# TYPE io_ws_requests_total counterio_ws_requests_total{app="SignIn",instance_id="dev_rust",org="cloudio"} 26io_ws_requests_total{app="cloudio",instance_id="dev_rust",org="cloudio"} 520io_ws_requests_total{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio"} 31io_ws_requests_total{app="my-application",instance_id="dev_rust",org="cloudio"} 40io_ws_requests_total{app="pr",instance_id="dev_rust",org="cloudio"} 668io_ws_requests_total{app="spaces",instance_id="dev_rust",org="cloudio"} 40io_ws_requests_total{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio"} 415io_ws_requests_total{app="xcelerateiot",instance_id="dev_rust",org="cloudio"} 105# HELP io_ws_response_size_bytes The websocket response sizes in bytes.# TYPE io_ws_response_size_bytes histogramio_ws_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="1024"} 464io_ws_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="10240"} 518io_ws_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="51200"} 530io_ws_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="102400"} 530io_ws_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="1024000"} 537io_ws_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="10240000"} 539io_ws_response_size_bytes_bucket{app="cloudio",instance_id="dev_rust",org="cloudio",le="+Inf"} 539io_ws_response_size_bytes_sum{app="cloudio",instance_id="dev_rust",org="cloudio"} 4107772io_ws_response_size_bytes_count{app="cloudio",instance_id="dev_rust",org="cloudio"} 539io_ws_response_size_bytes_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",le="1024"} 17io_ws_response_size_bytes_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",le="10240"} 26io_ws_response_size_bytes_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",le="51200"} 31io_ws_response_size_bytes_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",le="102400"} 31io_ws_response_size_bytes_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",le="1024000"} 31io_ws_response_size_bytes_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",le="10240000"} 31io_ws_response_size_bytes_bucket{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio",le="+Inf"} 31io_ws_response_size_bytes_sum{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio"} 154100io_ws_response_size_bytes_count{app="hsbc-baa-s",instance_id="dev_rust",org="cloudio"} 31io_ws_response_size_bytes_bucket{app="my-application",instance_id="dev_rust",org="cloudio",le="1024"} 30io_ws_response_size_bytes_bucket{app="my-application",instance_id="dev_rust",org="cloudio",le="10240"} 32io_ws_response_size_bytes_bucket{app="my-application",instance_id="dev_rust",org="cloudio",le="51200"} 39io_ws_response_size_bytes_bucket{app="my-application",instance_id="dev_rust",org="cloudio",le="102400"} 39io_ws_response_size_bytes_bucket{app="my-application",instance_id="dev_rust",org="cloudio",le="1024000"} 39io_ws_response_size_bytes_bucket{app="my-application",instance_id="dev_rust",org="cloudio",le="10240000"} 40io_ws_response_size_bytes_bucket{app="my-application",instance_id="dev_rust",org="cloudio",le="+Inf"} 40io_ws_response_size_bytes_sum{app="my-application",instance_id="dev_rust",org="cloudio"} 8937050io_ws_response_size_bytes_count{app="my-application",instance_id="dev_rust",org="cloudio"} 40io_ws_response_size_bytes_bucket{app="pr",instance_id="dev_rust",org="cloudio",le="1024"} 598io_ws_response_size_bytes_bucket{app="pr",instance_id="dev_rust",org="cloudio",le="10240"} 633io_ws_response_size_bytes_bucket{app="pr",instance_id="dev_rust",org="cloudio",le="51200"} 654io_ws_response_size_bytes_bucket{app="pr",instance_id="dev_rust",org="cloudio",le="102400"} 658io_ws_response_size_bytes_bucket{app="pr",instance_id="dev_rust",org="cloudio",le="1024000"} 666io_ws_response_size_bytes_bucket{app="pr",instance_id="dev_rust",org="cloudio",le="10240000"} 668io_ws_response_size_bytes_bucket{app="pr",instance_id="dev_rust",org="cloudio",le="+Inf"} 668io_ws_response_size_bytes_sum{app="pr",instance_id="dev_rust",org="cloudio"} 20441794io_ws_response_size_bytes_count{app="pr",instance_id="dev_rust",org="cloudio"} 668io_ws_response_size_bytes_bucket{app="spaces",instance_id="dev_rust",org="cloudio",le="1024"} 41io_ws_response_size_bytes_bucket{app="spaces",instance_id="dev_rust",org="cloudio",le="10240"} 42io_ws_response_size_bytes_bucket{app="spaces",instance_id="dev_rust",org="cloudio",le="51200"} 43io_ws_response_size_bytes_bucket{app="spaces",instance_id="dev_rust",org="cloudio",le="102400"} 44io_ws_response_size_bytes_bucket{app="spaces",instance_id="dev_rust",org="cloudio",le="1024000"} 44io_ws_response_size_bytes_bucket{app="spaces",instance_id="dev_rust",org="cloudio",le="10240000"} 44io_ws_response_size_bytes_bucket{app="spaces",instance_id="dev_rust",org="cloudio",le="+Inf"} 44io_ws_response_size_bytes_sum{app="spaces",instance_id="dev_rust",org="cloudio"} 82990io_ws_response_size_bytes_count{app="spaces",instance_id="dev_rust",org="cloudio"} 44io_ws_response_size_bytes_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",le="1024"} 257io_ws_response_size_bytes_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",le="10240"} 387io_ws_response_size_bytes_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",le="51200"} 412io_ws_response_size_bytes_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",le="102400"} 414io_ws_response_size_bytes_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",le="1024000"} 416io_ws_response_size_bytes_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",le="10240000"} 416io_ws_response_size_bytes_bucket{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio",le="+Inf"} 416io_ws_response_size_bytes_sum{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio"} 1546765io_ws_response_size_bytes_count{app="ticketing-system-4-0",instance_id="dev_rust",org="cloudio"} 416io_ws_response_size_bytes_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",le="1024"} 61io_ws_response_size_bytes_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",le="10240"} 91io_ws_response_size_bytes_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",le="51200"} 104io_ws_response_size_bytes_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",le="102400"} 107io_ws_response_size_bytes_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",le="1024000"} 107io_ws_response_size_bytes_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",le="10240000"} 107io_ws_response_size_bytes_bucket{app="xcelerateiot",instance_id="dev_rust",org="cloudio",le="+Inf"} 107io_ws_response_size_bytes_sum{app="xcelerateiot",instance_id="dev_rust",org="cloudio"} 769953io_ws_response_size_bytes_count{app="xcelerateiot",instance_id="dev_rust",org="cloudio"} 107# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.# TYPE process_cpu_seconds_total counterprocess_cpu_seconds_total 675.1# HELP process_max_fds Maximum number of open file descriptors.# TYPE process_max_fds gaugeprocess_max_fds 262144# HELP process_open_fds Number of open file descriptors.# TYPE process_open_fds gaugeprocess_open_fds 141# HELP process_resident_memory_bytes Resident memory size in bytes.# TYPE process_resident_memory_bytes gaugeprocess_resident_memory_bytes 186347520# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.# TYPE process_start_time_seconds gaugeprocess_start_time_seconds 1648183663.8# HELP process_threads Number ofOS threads in the process.# TYPE process_threads gaugeprocess_threads 68# HELP process_virtual_memory_bytes Virtual memory size in bytes.# TYPE process_virtual_memory_bytes gaugeprocess_virtual_memory_bytes 6681526272
Key Vaults
There is built-in integration with Azure Key Vault and AWS KMS. You can use the built-in APIs to store & fetch sensitive information like API keys and client secrets securely using either Azure Key Vault and AWS KMS services.
Logging
Logger API can be used for debugging purposes within any of the server-side scripts. The messages that are logged using this API can be viewed in real-time using Debug Console on the browser and they are also stored on the server for later analysis.
Lookups
The platform provides a built-in Lookup Management Framework that you can leverage to define lookup values to be used in your application.
OAuth / SSO
There is built-in support for OAuth 2 services like Auth0, and Google Auth API, that you can leverage to configure SSO for your application instead of using the built-in Authentication provided by the platform.
Patch Management
Patch Management can be used to migrate your application metadata from one instance to another. You can download the complete Application patch or a partial patch with cherry-picked objects, which can then be source controlled and uploaded into the target system for code migration.
Profile Values
You can define profile options (similar to ENV variables) and specify values at various levels via. User, Role, Application & Organization.
Redis Cache
Redis is used for caching metadata for superior performance. You can use the Redis cache to store application data as needed using the built-in cache APIs.
Role Based Access
You can define various Roles at the Application level and assign them to respective users. DataSources can then be assigned to different roles with different permissions via. Read, Insert, Update, Delete, Audit & Export.
Schedule Jobs
You can create Cloud Functions and schedule them to run at a specific date and time or regular interval using CRON expression.
Workflow Engine
The CloudIO workflow engine is highly scalable and flexible. You can extend the workflow engine by adding your custom Workflow Nodes in the language of your choice.
There is also a built-in way of defining custom workflow nodes using Javascript as shown below.