kzhanok
October 29, 2025, 12:20pm
1
I am attempting to add new streaming analytics building blocks (such as the HTTP output), however i am unable to find any documentation that can assist me in this endeavour. Am i missing something crucial?
This might be good starting point:
[Extend the Analytics Builder with custom blocks]
Overview
The Analytics Builder is a powerful tool for domain experts to define analytics models in Cumulocity IoT. It comes with tons of pre-build blocks to do complex analytics. But sometimes the pre-build blocks are not sufficient and you need to extend it with your own block.
In this video we show you how!
Interested in attending future IoT Developer events?
Join the Cumulocity IoT Developers group and get notified of the even…
and if you prefer written documentation it is here:
# Contents
1. [Introduction](005-Intro.md)
2. [Developing blocks locally](007-DevEnvironment.md)
3. [Basic blocks](010-BasicBlocks.md)
4. [Naming and documenting blocks](020-NamingAndDoc.md)
5. [Building a block into an extension](030-BuildingExtensions.md)
6. [Testing blocks](035-Testing.md)
7. [Parameters, block startup and error handling](040-Parameters.md)
8. [Blocks with state](050-State.md)
9. [Timers](060-Timers.md)
10. [Partition values](070-Partitions.md)
11. [Dynamic types](080-DynamicTypes.md)
12. [The Value type](090-ValueType.md)
13. [Input and output blocks](100-InputAndOutput.md)
14. [Cumulocity-specific helpers](105-CumulocityHelper.md)
15. [Asynchronous validations](110-AsynchronousValidations.md)
16. [Migrating input and output blocks to the version 2 API](150-MigrateInputOutputBlocks.md)
17. [Update Cumulocity input blocks to receive from assets](151-MigrateInputBlocksForAssetInput.md)
18. [Update Cumulocity input blocks to receive from all input sources](152-MigrateInputBlocksForAllInputs.md)
19. [Sharing data across partitions and workers](160-SharingDataAcrossPartition.md)
This file has been truncated. show original
We also have a sample for the HttpOutput block.
/*
* Copyright (c) 2013-present Cumulocity GmbH, Duesseldorf, Germany and/or its affiliates and/or their licensors.
* Use, reproduction, transfer, publication or disclosure is prohibited except as specifically provided for in your License Agreement with Cumulocity GmbH
*/
package apamax.analyticsbuilder.samples;
using apama.analyticsbuilder.BlockBase;
using apama.analyticsbuilder.Activation;
using apama.analyticsbuilder.ABConstants;
using apama.analyticsbuilder.L10N;
using apama.analyticsbuilder.Value;
using apama.analyticsbuilder.TimerParams;
using com.softwareag.connectivity.httpclient.HttpTransport;
using com.softwareag.connectivity.httpclient.RequestType;
using com.softwareag.connectivity.httpclient.Request;
using com.softwareag.connectivity.httpclient.Response;
This file has been truncated. show original
And, finally, based on the example there’s another HTTP Output block that includes better handling of credentials for example:
/*
* $Copyright (c) 2013 - 2024 Cumulocity GmbH, Duesseldorf, Germany and/or its affiliates and/or their licensors.$
* Use, reproduction, transfer, publication or disclosure is prohibited except as specifically provided for in your License Agreement with Cumulocity GmbH
*/
package apamax.analyticsbuilder.samples;
using apama.analyticsbuilder.BlockBase;
using apama.analyticsbuilder.Activation;
using apama.analyticsbuilder.ABConstants;
using apama.analyticsbuilder.L10N;
using apama.analyticsbuilder.NameValue;
using apama.analyticsbuilder.Value;
using apama.analyticsbuilder.TimerParams;
using com.apama.cumulocity.Util;
using com.apama.cumulocity.TenantOption;
using com.apama.cumulocity.FindTenantOptions;
using com.apama.cumulocity.FindTenantOptionsResponse;
using com.apama.util.AnyExtractor;
This file has been truncated. show original